数据库传统行业数据架构发展变化
背景介绍
传统行业在本文中是指在国内有一定体量,较为基础的一些行业企业,此类企业有几个特征:企业体量较大业务变化不大客户群体大客户数量变化不大
此类行业近几年随着数据中台、人工智能、数字孪生等等概念的不断洗刷,也因为本身业务发展的实际需要,数据体量连年增长。
随着国内开源软件生态逐步成熟,面向传统行业的软件企业交付的数据架构,也以开源软件为主构建,逐步的发展变化。本文主要介绍在开源的背景下,传统行业数据架构近几年的发展变化,以及每一步的掣肘和突破,作者总结下来感觉有一定的代表性,希望分享出来能够提供一些思路。数据架构的发展变化
作者所经历的数据架构分三个阶段:单一数据库集群、TP和AP分离、大数据的引入,现在正在经历HTAP+云原生这一阶段。单一数据库集群
作者所经历的单一数据库集群阶段,大约是在18年开始的,现在也会在项目开始阶段较多的采用。架构图如下:
单一数据库并不是指就一个数据库实例,而且整个架构的主体采用了一个数据库产品,例如架构图中是以Mysql官方分发版本为主体,通过MHA方案,搭建的高可用Mysql集群,为了应对数据的增长,中间加了一个数据库访问代理,我们采用的是mycat,分库分表、读写分离都通过mycat做出来。
此架构模式下,数据量增长的一定规模之后,出现了一些问题:跨分片访问性能不佳汇总性能不佳、宽表支持较差分析类需求支持不好,与实时业务争抢CPU和IO
这些原因搞过数据架构的都会很容易总结出来,归根结底,是过多的把AP的需求让Mysql来解决了。TP和AP分离
基于项目越来越多的离线汇总需求和在线分析需求,整个项目引入了AP类型的数据库。由于开源的GreenPlum在国内的火热,企业内部多采用了GreenPlum数据库,有较多的技术积累。
参考:Greenplum中文官网
集成了GP的数据架构如下:
参考:bireme
我们从Mysql到Greenplum构建了两个通道,一个通道是通过kettle构建ETL任务批量抽取数据到Greenplum,一个通道是通过bireme+maxwell实时同步数据到Greenplum。从架构图上可以看到,kettle写入数据,实际上是与Greenplum的Segment(primary)节点打交道,效率比较高;bireme+maxwell是通过master写入Greenplum集群的,效率不高,特别是一些更新较频繁的表,大量占用IO。
kettle支撑了我们很久,bireme+maxwell由于IO问题没有彻底解决也就放弃了这条路线。20年Greenplum官方出了streaming-server组件,这个环节的问题得到了很好的解决,但那个时候我们换了方案,也就没在实际生产中使用。
参考:streaming-server
随着数据量的增长,我们面对几个棘手的问题,始终解决的不好,引起了客户大量的投诉:随着业务发展和数据量增长,ETL过程越来越长,ETL的窗口越来越短,抽数与正常业务逐渐的交叠在一起因为Greenplum当时的几个BUG,ETL之后的汇总任务不太稳定,汇总失败之后的重算,又占用白天的查询IO,AP业务基本不可用
基于以上原因,考虑从两个方面解决问题:放弃ETL,改用binlog同步引入专业离线计算工具
综合考虑当时的情况,决定引入Hadoop,采用HDP分发版本,结合HDF的一些思路,构建一个准实时的数据平台。大数据的引入
引入Hadoop后,架构如下:
HDP、HDF已成为过去,不再提供连接供参考。
数据经过NIFI,采用binlog回放的方式,实时写入Hbase,定时启动Spark任务,进行汇总计算,计算结果输出到GreenPlum中。
整体数据架构的职责划分如下:
技术组件
服务能力
存储期限
Mysql(集群)
交易(核心)
1个月
Hadoop
离线计算、明细查询
全部
Greenplum
在线分析
半年
此架构的优势是:采用binlog回放,不存在ETL过程,对业务库影响最小采用Spark进行汇总计算,计算性能、稳定性都有大幅度的提升汇总计算和在线分析物理隔离,重算、验算、模型计算等任务使用Hadoop集群,不影响在线分析业务的稳定性对于需要实时的业务,采用Flink+Elasticsearch的方式满足。
但同时这一套架构也有其局限性:Mysql的ddl变更,扩缩容非常繁琐,需要寻找停机时间,也牵扯到大量人工操作数据链路过长,实时业务需求存在开发门槛,不能提供实时AP业务支撑部分业务计算完成后,需要回写Mysql,效率很差,调优空间很小资源需求起点高,部署组件多,运维难度大,运维人员要求高
本身团队人员少,仅仅维护一个集群尚能保证可用性,产品复制推广后,运维和本地开发存在极大的困难。HTAP+云原生
在Hadoop引入过程中也在不断尝试简化整个架构。先后研究过cockroachlabs、yugabyte、citusdb等多款分布式数据库。也阅读过很多TiDB的技术文章,参考:HTAP 会成为数据库的未来吗?。
经过对比,我们认为TiDB比较适合我们:使用Mysql协议,兼容Mysql 5.7,迁移成本很小所有的HTAP数据库中,对接Spark是最好的中文资料详实、国内支持较好
OceanBase因开源时间较晚,开源时生态并不丰富,对多租户的模式需求不高等多种原因没有深入进行相关测试。
引入TiDB之后的架构:
其中:整个架构以TiDB为核心,不再关注分片、无法执行ddl变更、离线扩缩容等等一系列问题轻度的AP工作,不需要额外的ETL动作,扩展TiFlash副本就可以Spark上我们做了大量的离线计算的封装,TiSpark的回写效率不错,我们做了一些适配工作,降低了离线计算这一块的改造难度Spark、Api、Presto等我们都跑在了k8s上,极大的降低了计算资源的管理与运维难度从架构上去掉了Flink,是因为Flink原来进行的计算在TiDB能够通过实时的查询解决
其中最关键的我认为是TiSpark,Spark在离线计算领域的效率、稳定性不可替代。我们仍然在路上
HTAP+云原生我们仍然在改造过程中,或许有一些认知错误,但HTAP+云原生这条路给我们的开发、运维都极大地减轻了工作量,我们会不断走下去。
文章来源:TiDB 社区干货传送门_https://zhuanlan.zhihu.com/p/536517345
中级会计职称好考吗?我是2020年刚刚考过的中级会计职称,总结一下,有难度,但是可以克服。我是2020年从业年限刚刚够就报名了,一开始就报了三门,我虽然一下报了三门,但是没有觉得自己一下三门都可以考过
四川大学有哪些知名校友?httpswww。skycn1。commview。php?aid115899,知名校友太多了,有十几页,大家可以点开链接自己看看,涉及政界军界工商业学术文化媒体等各行各业,文章中的
哪些息肉会癌变?在说会癌变的息肉之前,我们先说一下不仅不会癌变还是降低癌症几率的息肉,这才是真正的好息肉,告诉大家并不是所有的息肉都会癌变。人身上最好的息肉胃底腺息肉首先要告诉大家的是胃息肉跟肠息
钢铁股业绩好却不涨,这是为什么?能加仓吗?钢铁股业绩好却不涨,是否加仓?我觉得你先搞清楚钢铁股的业绩好是什么造成的?是否业绩可以持续提升?目前的业绩在未来的中长期里是高点还是低点?应该说,从08年金融危机后09年大基建之后
康熙为何评价李光地用心狠毒,李光地与蓝齐儿的不了之情是真的吗?她是清宫里活泼可爱的玉兔,却成政治牺牲品,她虽贵为公主,却无法左右自己人生,只因她的阿玛最爱她,但必要时候也最无情。图文说蓝齐儿李光地爱情故事,论谁最狠心。你一段,初遇一见倾心可爱
英雄联盟职业选手有哪些经典语录?如果要提到整个英雄联盟电竞圈内最为出名的职业选手名言,那么绕不开的就是电竞圈三大圣经,这三个圣经的原创者证实的对应着LPL非常出名的三个职业选手。厂长圣经S6夏季赛关键局势EDG与
如何才能让自己不生气,少生气,保持好心情?爱生气的习惯,就像晚上耳边的蚊子,赶不走消不灭,每一次短暂平静之后,很快再次袭来,既崩溃,又无奈。生气,最令人沮丧的,还不是伤害身体伤害别人这些弊端。而是被深深的误解。很多朋友,明
原工勤人员聘用为单位副科长退休以后什么待遇?原工勤人员聘用为单位副科长,退休以后什么待遇?由于聘用为副科长以后,工资待遇相对提高,缴费基数也会提高,养老金待遇也就随之提高,政治上享受副科级退休干部的待遇。下面和大家分享我的个
普通人若中彩票大奖,把奖金全部存银行会被调查吗?数额比较巨大,一定会被调查的但是只要能证明资金来源正当,就没问题。许多银行对存取款的金额有着明确规定,比如说一位储户的月流水不足1万元,却在某一个月忽然上涨到5万元,银行就会对该储
在中国,如果任由企业家拉帮结会建立山头,未来结果有多可怕?这个问题在七百多年前的明太祖朱元璋就已很清醒认识到了。当时作为明朝最大的商人沈万山向朱元璋提出由他个人出资劳军,每个士兵都能分到银两时,就引发朱元璋敏感震怒,致使沈万三死于流放。近
我弟弟在单位工作四年了,表现不错,就是待遇没同级别的人高,辞职还不让走,怎么办?工作4年工作经验应该是够用了工资没别人高首先自身找原因然后再找其他原因再者就是既然已经提了离职就趁早离开,因为老板已经对你失去了信任,再者会让别人觉得你言而无信!还有就是公司不放你