数据总量 40 亿+,报表分析数据 10 亿+,TiDB 在中通的落地与进化

作者:luzizhuo

原文来源: https://tidb.net/blog/3da1aed9

本文根据中通快递数据智能部基础架构负责人朱友志在【PingCAP DevCon 2021】上的演讲整理而成。

  • 视频回顾: https://www.bilibili.com/video/BV1f3411678v
  • 讲义下载: 中通快递-朱友志-TiDB 在中通的落地.pdf (1.8 MB)

本文介绍了 TiDB 从 2017 年至今中通落地的情况。 从满足超大规模数据量的处理,到实时多维分析能力的增强,再到平台功能的完善 ……TiDB 通过愈发完备的 HTAP 能力打造一站式的数据生态,助力中通数字化转型升级。

中通快递成立于 2002 年,是一家以快递为主体,以国际、快运、云仓、商业、冷链、金融、智能、星联、传媒为辅的综合物流服务品牌。2020年,中通完成业务量 170 亿件,市场占有份额达到 20.4%。中通科技是中通快递旗下的互联网物流科技平台,拥有一支千余人规模的研发团队,秉承“互联网 + 物流”的理念,与公司的战略、业务紧密衔接, 为中通生态圈业务打造全场景、全链路的数字化工具,为用户提供卓越的科技产品和优质的服务体验

整个快递的生命周期、转运周期可以用五个字来概括—— 收、发、到、派、签

image

而支撑整个快递生命周期的平台就是中通大数据平台。 中通从离线到实时的数据兼容再到数仓,有着一套比较完善的大数据平台体系。ETL 建模也会依托该大数据平台,最终通过大数据平台对外提供数据应用的支持以及基于离线 OLAP 分析的支持,整个数据建模的频率可以支持到半小时级别。在这个完善的大数据平台基础上,中通开始更多地思考 如何增强实时多维分析能力

image

中通与 TiDB 的结缘是在 2017 年调研分库分表场景时开始的。当时中通分库分表达到 16000 张表,业务上已经无法再继续扩展下去。2018 年底,中通开始测试 TiDB 2.0,主要关注的是大数据量的存储,以及分析性能。2019 年年初,中通上线了生产应用的支持。目前生产上稳定的版本是 TiDB 3.0.14 。2020 年底,中通开始测试 TiFlash,目标期望有两点 :一是提高时效,二是降低硬件使用情况

1.0 时代——满足需求

1.0 是 满足需求 的时代,业务需求主要包含以下几点:

image

  1. 业务发展非常快,数据量非常大,每笔订单更新有 5-6 次,操作有峰值;
  2. 做过调研的技术方案,很难支撑多维分析的需求;
  3. 业务方对数据分析的周期要求比较长;
  4. 对分析时效要求也很高;
  5. 单机性能瓶颈,包括单点故障、风险高,这些也是在业务上不能忍受的;
  6. 除此之外,QPS 也很高,应用要求毫秒级响应。

技术需求方面,中通需要打通多个业务场景 + 多个业务指标;需要 强一致的分布式事务 ,在原有业务模式下切换的代价很小;还需要 对整个分析计算工程化 ,下线原来的存储过程;能够 支持高并发的读写、更新 ;能够支持 在线的维护 ,保证单点的故障对业务是没有影响;同时,还要 与现有的大数据技术生态紧密结合 在一起,做到分钟级的统计分析;最后是中通一直在探索的,即要建立 100 + 列以上的大宽表, 基于这张宽表,要做到多维度的查询分析

目前 TiDB 在中通应用的一些落地场景


(目前 TiDB 在中通应用的一些落地场景)

01 时效系统应用场景

其中,时效系统是中通原有的一套系统,现在已经进行了重构。这套系统原来的存储和计算主要是依赖 Oracle 设计的,计算依赖存储过程。这套架构也比较简单,一边是消息的接入,一边是负载。

image

随着业务体量的增长,这一套架构的性能已经逐渐出现瓶颈。在对这套系统进行架构升级时,中通把整个存储迁移到 TiDB 上,整个计算迁移到 TiSpark。消息接入依赖于 Spark Link,通过消息队列最终到 TiDB。TiSpark 会提供分钟级的一些计算,轻度汇总会到 Hive,中度汇总会到 MySQL。基于 Hive,通过 Presto 对外提供应用的服务。 相较原来关系型数据库的分表,无论是 OLTP 还是 OLAP 都极大地降低了开发的工作量,并且和现有的大数据生态技术栈相融合。

1.0 时代中通的数据库系统架构


(1.0 时代中通的数据库系统架构)

迁移带来的收益有很多:第一是 容量的增长 ,原来的数据中心有三倍的富余,已有系统数据存储周期增加到三倍以上;第二,在 可扩展性 方面,支持在线横向扩展,运维可以随时上下计算和存储节点,应用的感知很小;第三,满足了 高性能的 OLTP 业务需求,查询性能虽略有降低的,但是符合业务需求;第四,数据库单点压力没有了, OLTP 和 OLAP 实现“分离” ,互不干扰;第五, 支持了更多维度的分析需求 ;第六,整体架构看起来比原来更清晰, 可维护性增强 ,系统的可扩展性也增强了许多。

02 大宽表应用场景

image

另一个场景是中通一直在做的宽表的建设与摸索 。其实之前中通测过很多系统,包括 Hbase、Kudu。Kudu 的写入性能还是很不错的,但是其社区活跃度在国内一般。同时,中通使用 impala 作为 OLAP 查询引擎,但主流使用的是 Presto,兼容性有待考虑,也很难满足所有业务场景需求。此外,中通的业务特性要求系统能够快速地计算分析几十亿的数据,并能同步到离线的集群里与 T+1 数据做融合,还要能提供给数据产品和数据服务直连拉取明细数据。最后是海量数据的处理,中通有很多消息源的接入,需要针对每一票进行全链路路由和时效的预测,定位到每一票的转运环节,数据量很大,对时效的要求也很高。

中通的大宽表建设


(中通的大宽表建设)

目前,宽表已经建设有 150 多个字段。数据来源于 10 多个 Topic 。主要的项目接入是通过 Flink 和 Spark ,打通了各个业务产生的数据,汇总到 TiDB 形成业务宽表。额外一部分,依赖于 TiSpark,从业务宽表输出分析结果,同步 3 亿条数据到 Hive。此外,还提供了十分钟级别的实时数据建设和离线 T+1 的整合。

中通目前的集群规模


(中通目前的集群规模)

在使用过程中,中通也遇到了一些问题,总结起来就是 量变引起质变 。第一,热点问题。索引热点在目前情况下表现较为突出,因为中通的业务量规模十分大,操作存在高峰,在大时候该热点问题表现特别明显。第二,内存碎片化问题。在之前的低版本里,在稳定运行了一段时间后,因为有业务特性和大量的更新和删除,导致内存碎片化比较严重,这个在反馈给了 TiDB 后,已经修复了这个问题。第三,着重介绍一个参数——TiFlash 读取 index 的参数。通过测试,当读取的数据量/总数据量大于 1/10 的时候,建议该参数关闭。为什么这么说?因为 Test 数可能会变少,但是单位 Test 过渡的时间会变长。

03 运维监控

image

使用 TiDB 后会发现它的监控指标特别丰富,使用了流行的 Prometheus + Grafana ,多而全 。之前,中通因为在支持线上业务的同时,还会有开发人员来查数据,遇到了 SQL 把 TiKV Server 拉挂的情况。针对这个问题以及监控的问题,中通进行了一些开发定制。第一,兼容线上特殊帐号的慢 SQL,会自动杀掉,并通知到相应的应用负责人。第二,中通开发了支持 Spark SQL 去查询 TiDB 的工具,并发和安全性在开发的过程中得到一些保障。此外,中通还会把一些额外的核心指标,接入到自研的监控体系。核心的告警会电话通知到相关的值班人员。

image

去年双十一期间,中通订单量突破 8.2 亿,整个业务规模突破 7.6 亿,双十一当天的 QPS 峰值达到 35 万 +。整个双十一期间,数据的更新体量达到了数千亿级别,整个集群上运行的 TiSpark 任务是 100 多个,支持的在线应用 7 个。 整个分析的时效在 10 分钟以下达到了 98% ,整个分析的数据周期达到 7-15 天。

2.0 时代——HTAP 提升

2.0 时代的主要特点是 HTAP 的提升 。中通应用 HTAP 主要来自于业务方需求的升级:

image

基于业务方的需求,中通在 2.0 时代进行了一次架构再升级。首先, 引入了 TiFlash 和 TiCDC 。这带来的收益其实是增强了时效,部分分析进入了分钟级级别,降低了 Spark 集群资源的使用情况。

2.0 时代中通的数据系统架构


(2.0 时代中通的数据系统架构)

下图是 TiSpark 和 TiFlash 的对比,中通线上有两套集群,一个基于 3.0,一个基于 5.0。简单地对比一下 3.0 和 5.0 的情况:3.0 主要的分析是基于 TiSpark,5.0 是基于 TiFlash 。目前 3.0 集群有 137 个物理节点, 5.0 有 97 个节点。整个运行的周期中,3.0 是 5 - 15 分钟,基于 5.0 的 TiFlash 已经做到 1-2 分钟,整个 TiKV 的负载降低是比较明显的。另外, 在 3.0 上 Spark 的资源大概有 60 台,而在 5.0 上,线上的加上在测试的,大概有 10 台就足够了。

image

在整个测试周期中,生产的集群是 3.0 ,4.0 的测试周期其实是非常短的。在测试时,业务的场景有一些维表 Join 的情况,当时 4.0 对 MPP 没有支持,对一些函数的支持可能也不是那么完善,测试结果不是很理想。对 HTAP 的测试主要是在 5.0 阶段,5.0 已经支持 MPP ,对函数的支持也越来越丰富。目前中通生产上应用的版本是 TiDB 5.1 。

image

上图右侧是整个 5.0 集群在 618 期间的负载情况。在刚刚结束的 618 中, 5.0 上线的一些任务已经在支持 618 移动端的大促看板。中通有 6 个核心的指标是基于 TiFlash 计算的。 集群响应整体平稳,报表达到了分钟级以内的时效。 整体的数据体量在 40 亿 - 50 亿 +,报表分析数据达到 10 亿 +。

3.0 时代——展望未来

3.0 时代主要是对未来的一些展望:

image

第一是监控 。提到监控,由于中通的集群比较大,所以面临的问题和遇到的问题可能会多一点。大集群的实例多,指标加载慢,排查问题的效率得不到保障。监控虽然很全,但是出了问题的时候无法快速定位到问题;

第二是解决 执行计划 偶发不准的问题。这种偶发不准有时候会影响到一些线上的负载相互影响,拉高集群的指标,导致业务相互影响。

第三是实现 自动清理 。目前中通数据的清理是通过自己写成 SQL 清理的,但是过期数据清理比较麻烦。希望之后可以支持旧数据自动 TTL。

第四,随着 5.0 列式存储 的引入,中通计划把 TiSpark 的任务逐渐全部切到 TiFlash 上面,期望达成提高时效和降低硬件成本的目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66854.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海量数据处理:在100亿个数中找出top 10000

经典的TOP K问题,借助堆排序进行 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好…

数据特征分析

数据特征分析主要包括分布分析、对比分析、统计量分析、周期性分析、贡献度分析、相关性分析几种分析。 分布分析 分布分析的最终成果是形成能体现数据的图表 分布分析主要有两种类型:对定量数据的分布分析和对定性数据的分布分析 对定量数据的分布分析 要形成一个图表的话…

国货之光,处女座的福音!最详细华强北洛达1562M悦虎版二代蓝牙耳机评测

2016年,随着苹果发布初代AirPods,原来一直不愠不火的蓝牙耳机市场一时大热,“真无线蓝牙耳机”(简称TWS,True Wireless Stereo)开始走进人们的视野。随着各大手机厂商(奸商)取消手机上的3.5mm耳机插口,真无线蓝牙耳机加速普及,直至今天变成人们手中不可或缺的电子产品…

DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》软考考试简介及其知识点架构总结、课程讲解目录(立项-整体-范围-进度-成本-质量-人力资源-沟通-干系人-风险-采购等)

DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》软考考试简介及其知识点架构总结、课程讲解目录(立项-整体-范围-进度-成本-质量-人力资源-沟通-干系人-风险-采购等) 目录 术语简称简介 计算机软件资格考试【软考】的简介及其知识点架构总…

DL之RNN:基于RNN实现模仿贴吧留言

DL之RNN:基于RNN实现模仿贴吧留言 目录 输出结果 代码设计 输出结果 更新…… 代码设计 注:CPU上跑的较慢,建议GPU运行代码

CSDN:2020年度CSDN博客之星评选竞赛——180号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!

CSDN:2020年度CSDN博客之星评选竞赛——180号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩! 导读:新的一年,改革春风吹满地,新的一年要争气! 博…

使用BottomNavigationView底部导航栏、添加数量角标提醒

度娘了一圈发现基本上都是TabLayout或者其他的导航栏添加角标,所以写这篇博客记录下来。 先来看下实现的效果图: 代码也是很简单的 BottomNavigationMenuView中的每一个Tab就是一个FrameLayout,所以我们可以在上面随意添加View、这样也就可以…

CSDN:2019年度CSDN博客之星评选竞赛——105号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!

CSDN:2019年度CSDN博客之星评选竞赛——105号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩! 导读:新的一年,改革春风吹满地,新的一年要争气! 博…

DayDayUp:《复仇者联盟4:终局之战》娱乐闲谈——当灭霸碰上一个处女座的程序猿

DayDayUp:《复仇者联盟4:终局之战》娱乐之谈——当灭霸碰上一个处女座的程序猿 目录 《复联4》简介 《复联4》相关—片段 《复联4》相关—网友搞笑图片 《复联4》相关—娱乐闲谈 《复联4》简介 《复仇者联盟4:终局之战》(Aven…

嫁人当嫁处女男 - 解构处女座男人

2019独角兽企业重金招聘Python工程师标准>>> 解构处女座男人 想要对那位处女座的男人、善于吹毛求疵的分析大师示爱吗?嗯,在你开始诱惑这位处女男之前,你得先搞懂几件事。抛开偏见,本文将告诉你所有关于处女男的一切细节。 “偏见者的心灵,就像眼睛的瞳孔,你给…

DayDayUp:我是CSDN开发者生态联盟成员“一个处女座的程序猿”:渡己是一种能力,渡人是一种格局

DayDayUp:我是CSDN开发者生态联盟成员“一个处女座的程序猿”:渡己是一种能力,渡人是一种格局 目录 CSDN开发者生态联盟成员简介 个人2020年度工作总结 CSDN开发者生态联盟成员简介 问:请简单自我介绍(公司姓名职位…

CSDN TOP1“一个处女座的程序猿“如何通过写作成为百万粉丝博主

文章目录 如何通过写作成为百万粉丝博主 前言 一、什么内容是受欢迎的写作内容? 二、介绍一些经典的技术文章逻辑框架设计? 三、如何系统地输出技术内容? 四、技术创作给我带来的变化和成长 五、现场问题答疑(Q&A) 六、最后 如…

关于软件界面设计、控件颜色搭配、一些实用建议(偷懒技巧)总结——针对C# WinForm/WPF技术

之前的文章讲了很多控件包的用法,我们做C#WinForm工程师的,基本都是做上位机的,很多都是公司没有专门的设计团队,界面做成什么样,基本全凭自己审美。 但我们只是个程序员,又不懂设计,不可能在界…

装修到底要不要请设计师?

例如想把自己的家装修的漂亮一点,或者遇到了自己实在无法解决的装修问题,例如想划分出一些房间或者某些功能没有解决好。都可以找设计师 但如果是比较大型的空间,例如酒店或办公室,自己没有太多的想法来指导施工队,那么…

上海人设提示访问接口出错

我自己苹果手机,更新了系统导致CA证书没有了,“上海人设”App 业务经办打不开,提示访问接口出错,我试着卸载重装,然后重新领取CA证书,问题解决,希望可以帮助到大家。 也可以不用卸载重置&#x…

李彦宏15年前专利曝光 Google模仿百度?

8月9日晚间消息,位于弗吉尼亚州的美国专利局总部档案库的一角,存放着几页看似毫不起眼的纸张。但如果拿出去拍卖的话,这几页纸将价值连城。因为其上记载着的,或将是全球最值钱的技术专利之一,正是它,催生并…

8月20科技资讯|李彦宏内部信曝光;三大运营商否认 4G 降速;ThinkPHP 6.0 RC4 版本发布

「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道。风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流。 「CSDN 极客头条」&a…

算力至上?AI芯片大对决

作者 | 老石谈芯的老石 来源 | 老石谈芯(ID:laoshi_tanxin) 头图 | CSDN 下载自东方IC 目前,全世界超过90%的数据都是在过去的两三年之内产生的。随着人工智能、自动驾驶、5G、云计算等各种技术的不断发展,海量数据都…

GPU是AI时代的算力核心

人工智能(Artificial Intelligence),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 它起源于20世纪五六十年代,经过半个多世纪的演变,经历了符号主义、连接主义和行为主体三次浪潮的相互交织发…

AI + 算力 = “最强龙头”?

随着人工智能技术的飞速发展,“AI算力”的结合应用已成为科技行业的热点话题,甚至诞生出“AI算力最强龙头“的网络热门等式。该组合不仅可以提高计算效率,还可以为各行各业带来更强大的数据处理和分析能力,从而推动创新和增长。 …