4月20日,在2024 OceanBase开发者大会上,云粒聪明的高级技能专家付大伟,分享了云粒聪明实时数仓的构建历程。他报告了如安在传统数仓技能框架下的干系积极后,选择了OceanBase + Flink CDC架构的实时数仓演进历程。
业务配景及挑衅
云粒聪明建立于2018年6月,重要面向政府和中小规模的企业,提供聪明都会和生态环保方面的智能化应用。联通云粒拥有三中台:数据中台、智能中台和应用中台,以及智能化应用产物,与政府互助为各地提供聪明都会创建服务,包罗政务数据一体化、公共数据开放、一网统管、一网通办等业务。别的,在一些应急范畴如水利和环保,也拥有智能化预警等方面的业务。
此中,数据中台重要提供数据收罗、融合、管理、分析、盘算的服务,是公司比力告急的产物。自公司建立初开始产物发育,到现在历经5个大版本迭代,现已在天下范围内落地上百个客户项目。下图是数据中台架构,可以看到其团体运行在K8S集群上,为了更好地震态扩缩容,盘算和存储都使用OceanBase,同时使用Minio做非结构化文件的存储工作,使用Flink流盘算引擎。在引擎上层,我们构建了一个引擎使用体系,用来适配在客户交付过程中面临的差别的大数据底座。
由于为各类政企交付项目,因此我们在交付过程中积累了三方面的业务特性。
- 多业务线,形态各异。政务范畴业务跨度较大,多种数据源、差别频率的数据搜集,带来很多业务复杂性标题。
- 盘算资源缺乏。各项目3-5台盘算资源,难以运行大规模盘算;服务器资源匮乏,大量数据盘算通常耗时较长。
- 业务协同需求强。数据实时性较强,各单位寻求业务协同服从,比如防汛减灾、水质污染等实时告警场景。
上述业务特点为技能实现带来了很大的挑衅。技能中台作为大数据处理惩罚体系,引擎是它最焦点的内容,在中台1.X到3.X版本迭代过程中,着实选用Hive和HDFS作为盘算存储的引擎,但遇到诸多痛点,重要体现为以下四点。
- 资源使用率低:受限于YARN的调理计谋,须要在项目中依据使命和资源情况逐个调优,使命量增长后仍需连续投入,难以一劳永逸。
- 数据时延:实时数据入仓带来了诸多小文件标题,固然项目组在Flink的框架下做了诸多优化,仍然无法满意大屏监控
、预警、数据消耗等应急场景需求。
- 不敷机动:数据更新方式仅支持全表/分区级覆盖,应对远景冷区部分数据更新时,处理惩罚逻辑复杂且低效。
- 运维复杂:组件浩繁,设置、监控
、伸缩、保活等都极大地增长了运维工作量。高可用场景下每个节点均须要多个历程,容器摆设性能降落。
因此,在数据中台4.X版本时,我们渴望引进新的引擎来办理上述标题。
实时数仓的架构演进
数据引擎作为一款底子软件,现在市面上百花齐放。我们在选型过程中重要关注五个方面:
- 它的开源协议是否富足宽松。
- 是否可以或许支持云原生的方式摆设。
- 它须要支持集群。
- 它可以或许以私有化的方式摆设到客户的现场。
- 这个产物以及它的生态是否有富足高的成熟度。
我们颠末了较长时间的调研,以为OceanBase在三方面体现优秀。
第一,它的架构筹划比力轻便,重要是由OBServer和OBProxy构成,即便运维多套客户情况,也会节流很大的资本,增长一些便利;
第二,数据中台作为一个原生支持多租户的体系,我们使用OceanBase的多租户,团体方案上都会更加契合。
第三,OceanBase作为开源数据库(https://github.com/oceanbase/oceanbase),其社区和生态开放、成熟,尤其是针对我们常用的数据集成软件DataX和Flink,都有官方的一些插件。OceanBase非常契合我们的技能实现门路。
因此,我们也对OceanBase做了一些性能测试,包罗我们摆设3台8核32G的服务器集群,每次处理惩罚的数据量都到达1G以上来观测它的性能。我们观测到,OceanBase的性能指标最高可以到达Hive的24倍,在整个选型和应用过程中,我们发现OceanBase的学习资本也比力低的,认识MySQL就能上手,而且官方文档比力齐备。别的,当我们确定产物选型后,在后续的迁移工作中,我们花了一个多月的时间就完成了适配和迁移,比预期快很多。同事据运维职员反馈,使用OceanBase的日记可以或许办理大部分运维的标题。
至于数据同步工具的选型,Flink CDC的选型比力水到渠成,起首是契合度的标题,数据中台在最初版本中,我们已经使用Flink作为流盘算的引擎,以是Flink CDC比力贴合我们的门路。其次,Flink CDC支持的方式非常多,包罗全量、增量,以及先全量再增量的方式,这有利于提拔交付服从。以往我们使用离线的开发,比如Hive的数仓来做增量同步时,须要开发职员筹划一个比力大的图,去数仓捞出最新的时间戳,而且把它作为一个参数注入DataX的一些导入节点上,之后还须要数据去重、关联等管理使用才可以或许完成。
别的,Flink CDC运行在Flink分布式引擎上,在K8s上,我们根据客户实时数据量的巨细可以自动扩缩容Flink。
自从选用OceanBase+Flink CDC架构后,架构变得非常轻便,我们用OceanBase取代了从前以Hive为主的MPP引擎、HiveServer2、YARN和HDFS。使用Flink CDC来完成关联数据库日记的同步,使用FlinkSQL做相应的实时加工处理惩罚。数据写入流程也更加便捷。
总而言之,优化后的平台架构,在以下方面出现出较大上风,使我们可以或许依托 FlinkCDC 和 OceanBase,创建完全云原生的智能化数据中台。
第一, 云原生化。微服务、调理使命、大数据引擎全部基于K8S云原生技能,支持容器化摆设和资源调理,实现弹性伸缩和快速升级。
第二, 数据开发。差别业务形态下浅易设置,离线与实时数据开发均提供SQL 化(离线尺度 SQL、实时 FlinkSQL)、设置化;拖沓拽式作业编排,百万级使命调理、开发服从提拔。
第三, 运维管理。以往,大数据底座标题通常须要运维+开发泯灭1-2天时间举行排查和优化,OceanBase清晰的日记信息给运维带来极大便利,常见标题1小时内办理。
第四, 资源使用。流盘算和 OceanBase 的广泛应用,使得单个项目服务器资源由原来的11台 缩减到 6台,在业务量和资源投入上可以更好的均衡。
第五, 学习资本。OceanBase对大数据新入行职员非常友好,学习资本极低。
下面我们以详细项目来阐明OceanBase + FlinkCDC 架构的上风。
这是我们在贵州某项目上的应用,从客户的数据量、接入量可以看出,体量较大。客户须要接入物联网 装备产生的数据,而且做实时推测、实时告警。它的数据表产过1900个,涉及的数据量有675亿条,而且每天接入的数据量都到达1.9亿左右。
在改造前,我们使用Hive引擎须要11台服务器,而且实时数据接入是采取离线批量的方式让它入仓,根本上会有5分钟左右的耽误,不能满意客户实时告警的需求。别的,更新逻辑比力复杂,我们须要额外运行很多使命以包管入仓数据是最新、最完备、和业务匹配的。
改造后,我们发现只须要8台服务器就可以或许支持客户全部的业务,而且可以将延时控制在5秒左右,极大提拔了数据告警服从。由于更新支持变得轻易,各人的使命量也被极大缩减了。团体而言,服务器资源节流27%;实时服从提拔100倍;业务复杂度低落10%。
未来规划
我们本年正在发力数据中台5.X版本的创建,进一步支持云原生化,包罗团结OceanBase 4.3版本在云原生情况下做项目交付;通过FlinkCDC 支持更多数据源、Flink ML 探索应用,增强流盘算;基于盘算引擎的资源监控 升级调理计谋;让数据平台可以或许在有限的资源下运行更多的调理使命。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |