您的位置:首页 >市场行情 >

DorisDB在格洛博电商系统的应用实践

2022-01-06 12:56:43 来源:

  

(原标题:DorisDB在格洛博电商系统的应用实践)

  重庆格洛博电子商务有限公司是一家专注于跨境贸易B2C电子商务公司。格洛博早期主营互联网行业海外流量服务及流量变现,2018年初开始主力运营综合类商城网站,以客户需求为导向,以诚信之道为根本,以优质服务为使命,以物惠全球为愿景,为全球用户提供多元化的互动式购物体验,全方位打造B2C跨境电子商务综合体。

  格洛博数据技术团队基于DorisDB建立一个实时分析系统。生产环境引入DorisDB后,查询速度得到明显提升,较DorisDB上线倍以上。

  业务痛点及技术挑战

  格洛博作为一家自研电商平台的电子商务公司,自主研发了广告效果分析系统、订单管理系统、供应商管理系统、采购管理系统、仓储管理系统、物流管理系统等,多个系统各类明细数据筛选条件较多,实时数据自定义多维度分析报表较多,包括广告数据分析、销售订单分析、供应商分析、采购订单分析、库存分析、物流分析等等。

  目前公司业务需求在技术实施过程中,由于业务增长较快,团队研发能力无法快速跟上,大量业务依托于MySQL实现,主要存在技术难点如下:

  1。数据量大:业务明细数据较多,总体达10亿数据以上;

  2。多表join:各类多维度分析报表较多,涉及多个大表join;

  3。实时分析:业务依据广告效果投放,实时分析订单变化,及时调整广告预算;

  4。实时监控:动态监控下单流程行为,实时分析系统异常;

  5。日志数据:日志类与业务类数据同时存在于一体,没有区分冷热数据,导致MySQL性能下降。

  基于以上技术难点,我们期望寻找到可替代MySQL的数据库,或建立一个OLAP实时分析系统,提供一套快速、稳定的实时数据服务。

  技术选型

  为解决实时分析的时效性,同时又能保证数据快速写入查询,先后调研了TiDB、ClickHouse、DorisDB,汇总如下:

  •TiDB:一款定位于在线事务处理/在线分析处理(HTAP)的融合数据库产品,可替换MySQL,但生产环境要求配置较高,同时替换现有的MySQL数据库成本高。

  •ClickHouse:一款开源的OLAP列式分析系统,可单独部署不影响现有架构,面向大宽表,支持MySQL外表,但无法支持好多表join,同时现有的业务SQL也需要一定部分改写,运维相对复杂。

  •DorisDB:一款基于Apache开源基金会顶级项目Apache Doris开发的新一代极速MPP分析型数据库,可单独部署不影响现有架构,可多表join,实时数据查询分析快,现有业务SQL基本无需改写,支持MySQL外表,运维简单,同时支持高并发、冷热数据分离。

  综上所述,决定使用DorisDB建立一个实时分析系统。

  数据同步

src=https://nimg.ws.126.net/?url=https%3A%2F%2Fcrawl.ws.126.net%2Fnbot2%2Fimg%2F3d2d80e5b66cb0dd5947197812499849.png&thumbnail=660x2147483647&quality=80&type=jpg

  如上图所示,我们使用Canal+Kafka方式实时将MySQL同步到DorisDB。Canal是阿里巴巴开源的一个Mysql binlog同步工具,通过Canal我们可以把Mysql的数据同步到Kafka,在Kafka中数据是用Json的格式生成的,然后用DorisDB的Routine Load方式消费Kafka数据同步到DorisDB。历史数据通过创建MySQL外部表,使用INSERT SELECT方式导入到DorisDB。

  冷热数据存储

  实际使用DorisDB过程中,我们采用SSD/NVME+HDD实现冷热数据分离存储,SSD/NVME存储今年数据,HDD存储往年数据。同时DorisDB也支持冷热数据自动迁移的功能,相关建表参数可参考storage_medium、storage_cooldown_time等。

  DorisDB在各场景中应用

  1。自定义多维度分析:业务人员自定义各种维度时,系统自动化动态多表join,通过查询DorisDB快速响应查询结果;

  2。多条件明细数据查询:实现了时间跨度范围大的订单数据、物流数据快速查询;

  3。定时导出明细数据:实现了时间跨度范围大的明细数据快速导出;

  4。日志数据存储:利用DorisDB动态分区特性,大量操作日志存储于DorisDB,解决了日志类与业务类数据同时存储在MySQL导致的性能下降问题。

  DorisDB上线效果

  未使用DorisDB前,我们一直使用MySQL处理所有数据,包括了实时数据分析,技术部门经常收到业务部门的系统提速诉求,上线DorisDB后,提速诉求已基本没有,上线前后SQL查询对比结果如下表:

  

src=https://nimg.ws.126.net/?url=https%3A%2F%2Fcrawl.ws.126.net%2Fnbot2%2Fimg%2Fe169bbc40b34f0989ad7c4bcd6f4f6e8.png&thumbnail=660x2147483647&quality=80&type=jpg

  综上表所述,在引入DorisDB后,查询速度得到明显提升,目前生成环境使用至少10倍以上。

  遇到问题及解决方案

  1。SQL查询GROUP BY:由于MySQL的sql_mode去掉了ONLY_FULL_GROUP_BY,转移DorisDB测试过程中存在查询报错“SELECT list is not in GROUP BY clause and contains nonaggregated column”,修改已有SQL即可解决;

  2。varchar长度问题:MySQL的长度以字符数计算,而DorisDB以字节计算,处理方案则是在生成创建DorisDB的SQL时,长度设置为原基础上的2倍;

  3。es外部表字符串部分显示为null:DorisDB创建Elasticsearch外部表时,属性参数enable_docvalue_scan默认为true,将其设置为false即可;

  4。动态创建分区不支持时间戳int型字段:DorisDB动态创建分区支持date、datetime字段,目前我们将时间戳int型字段修改为datetime字段存储,当然可以另外增加一列处理。

  作者:林元猛,重庆格洛博技术负责人,负责产品技术实现、系统架构设计等

相关阅读
热门新闻
蚂蚁庄园今日答案:在哪个星球上能看到太阳“西升东落”?

蚂蚁庄园今日答案:在哪个星球上能看到太阳“西升东落”?

  11月5日蚂蚁庄园今日答案更新。。在哪个星球上能看到太阳西升东落?这个问题答对即可获得一份180g小鸡宝宝饲料作为奖励。下面,让我们一起

2022-11-05 10:37
iphone14plus屏幕亮度怎么设置息屏显示开关在哪

iphone14plus屏幕亮度怎么设置息屏显示开关在哪

  iphone14plus搭载iOS16系统,我们可以开启常亮的息屏显示功能,这样就可以直接在手机屏幕上看到各种消息。那么iphone14plus息屏显示开关在

2022-11-04 12:39
中国空间站“T”字基本构型组装完成

中国空间站“T”字基本构型组装完成

  据中国载人航天工程办公室消息,北京时间2022年11月3日9时32分,空间站梦天实验舱顺利完成转位。转位期间,梦天实验舱先完成相关状态设置

2022-11-04 11:56
电信研究院余晓晖:通信业正在重复IT发展规律

电信研究院余晓晖:通信业正在重复IT发展规律

网易科技讯 10月22日消息,在2008中国国际通信展举行的ICT中国高层论坛上,信息产业部电信研究院 副总工程师余晓辉总结了国内电信业正在经历

2022-11-04 09:11
淘宝双十一拍照锦鲤怎么玩拍照锦鲤开奖时间玩法攻略

淘宝双十一拍照锦鲤怎么玩拍照锦鲤开奖时间玩法攻略

  11月3-11日,淘宝拍照推出的锦鲤活动,每天有9万人中奖,预计共有双十一将诞生100万拍照锦鲤哦,还不赶快参与起来。那么双十一拍照锦鲤玩

2022-11-03 17:21
微信电脑版3.8.0更新内容新增3项十分实用的功能

微信电脑版3.8.0更新内容新增3项十分实用的功能

  根据腾讯2022年第二季度财报,截止今年6月30日,微信及WeChat合并月活跃账户数12。991亿。截稿前应该已经破13亿了。  作为社交、工作、

2022-11-03 16:40