• 开云官网登录入口 开云app官网入口

开云体育(中国)官方网站处置有考虑为了处置这个问题-开云官网登录入口 开云app官网入口

发布日期:2026-02-11 20:49    点击次数:147

本文作家为数新智能高等架构行家李斌松,曾在科大讯飞、阿里、同盾等公司认真过大数据平台的架构假想与结束。某省医保局款式对多地及时数据采集的条件较高,数新智能调研后细目Flink CDC YAML功课粗犷满足大部分的业务场景,研发团队汇聚Flink CDC YAML功课的联系特质,在社区版块基础上进行矫正与优化,最终取得简约运筹帷幄资源高达90%以上、数据及时同步达到秒级蔓延的效劳。 一、款式配景 某省医疗保险局使用省级大数据平台统筹该省统统地市的医疗保险。在原有的平台架构下,省医疗保险局将统统地

  • 开云体育(中国)官方网站处置有考虑为了处置这个问题-开云官网登录入口 开云app官网入口

    本文作家为数新智能高等架构行家李斌松,曾在科大讯飞、阿里、同盾等公司认真过大数据平台的架构假想与结束。某省医保局款式对多地及时数据采集的条件较高,数新智能调研后细目Flink CDC YAML功课粗犷满足大部分的业务场景,研发团队汇聚Flink CDC YAML功课的联系特质,在社区版块基础上进行矫正与优化,最终取得简约运筹帷幄资源高达90%以上、数据及时同步达到秒级蔓延的效劳。

    一、款式配景

    某省医疗保险局使用省级大数据平台统筹该省统统地市的医疗保险。在原有的平台架构下,省医疗保险局将统统地市以及省级的数据汇聚后以T+1的花样提供给国度平台。如下图所示:

    但跟着对及时数据的条件越来越高,省医疗保险局之前采购的离线平台以及及时平台,遭受了多条数据采集链路从各地市采集数据,形成各地市数据库压力大,不同采集链路存在数据一致性的问题。每个地市需要同步数据到备份库,导致地市的数据爱戴使命量纷乱。基于以上痛点,某省医疗保险局决定对现存平台进行升级矫正。

    二、架构假想

    Flink在国内有特别平庸的应用基础,咱们在过往实施的款式中,在及时运筹帷幄框架选型上会优先洽商Flink联系的本事栈,并也曾在使用Flink CDC动作及时数据入湖器具上积贮了相比熟悉的实施教育。Flink CDC 3.0版块引入了Pipeline的架构假想,功能更为完善,聚焦于数据集成限度,通过YAML功课援助了全增量一体化、整库同步、Schema Evolution、Transform等才略。汇聚省医疗保险局打算使用Paimon动作大数据存储的配景,Flink YAML功课是满足咱们及时数据入湖场景条件的理念念有考虑。

    某省医疗保险局的款式中,各地市需要同步的数据来自于地市的多个系统,波及700+数据库实例,500+逻辑表,其中大部分表均是分库分表形状,散播在多个数据库实例中。团结份数据,需要写入省医保平台的多个存储系统,包括:数据湖平台Paimon、GaussDB(DWS)数据库、TBase数据库、TDSQL数据库等。如下图所示:

    要是端到端的数据采集统统依赖MySQL动作数据源,需要屡次采集地市MySQL的Binlog,这会带来数据库办事的包袱。因此咱们引入了Kafka动作中间存储,各个地级市的MySQL库数据先采集到Kafka,再从Kafka读取数据写入到Paimon数据湖存储和MPP数据库。

    三、本事挑战

    由于当今Flink CDC YAML功课关于客户环境的一些数据源类型、及时同步场景尚未援助,无法径直满足该款式标及时同步业务场景。咱们在社区Flink CDC 3.1的版块上也作念了定制化的二次开采。包括以下内容:

    3.1 Kafka Sink输出表结构变更

    本事挑战Flink CDC将原始MySQL DDL SQL泄漏生成表结构变更事件(SchemaChangeEvent),在Sink侧也曾莫得原始的DDL SQL语句,况且Kafka Sink莫得把这个表结构变更事件发送出来,因此下流莫高兴见径直通过Kafka的输出获得到上游表结构的变化信息。处置有考虑为了处置这个问题,咱们把表结构变更事件径直转为JSON字符串并通过Kafka Pipeline写出,不才游系统消费Kafka Topic读到表结构变更事件对应的JSON后,再反序列为表结构变更事件,下流系统据此践诺表结构变更操作。

    因为SchemaChangeEvent的子类莫得默许构造函数,为了粗犷序列化或者反序列化,咱们在SchemaChangeEvent 极度子类上添加不错用于JSON序列化的注解。代码如下。

    3.2 减少功课数

    本事挑战

    由于医保业务会产生海量的C端数据,而且每个地市的MySQL业务表基本都是分库分表分实例部署模式,所有这个词有470+数据源。为了减少Flink CDC YAML功课的数目和资源奢靡,需要多个数据源合并在团结个任务里采集Binlog,并按真正例分发。

    处置有考虑

    咱们膨胀了Flink CDC的Composer模块以援助成就多个DataSource,每个DataSource创建一个DataStream,终末合并统统的DataSource,使得只需要一个功课就粗犷完成多个实例的数据同步。转变代码如下:

    3.3 分库分表合并

    本事挑战

    不同地市团结业务表数据采集写入团结Topic 中,通过Transform 添加地市编码,再消费Kafka数据入湖。由于地市团结业务表结构有一些渺小折柳,举例字段类型、字段个数、字段限定不一致。而Flink CDC里的数据变更事件(DataChangeEvent)不包含表结构信息,需要通过中心节点(SchemaRegistry)进行爱戴,结束复杂度相比高,在Flink CDC 3.1版块里在包含Transform的分库分表合并场景下的援助并不完善,咱们但愿粗犷以更直率的花样援助表结构变更的场景。

    处置有考虑

    为处置这个问题,咱们在数据变更事件中添加Schema信息,在Transform和Sink 处理时就能径直细目表结构信息, 从而减少与其他组件的交互,缩短表结构信息爱戴的复杂度。

    这个转变在Transform和Sink上需要调整的代码相比多,亦然咱们在结束有考虑的经过中,开采难度最大的处所。下图是Paimon Sink 转变的有考虑:

    3.4 其他新增功能

    援助逻辑删除

    咱们在Sink节点里添加了界说逻辑删除字段的成就,关于上游的删除操作,在成就了这个参数以后,不会本体进行数据删除,而是竖立这个逻辑删除字段为 true 动作象征,从而保证所少见据变更都粗犷被完好记载,肤浅对医疗数据进行存档和数据回放。下图展示了在YAML功课若何成就一个逻辑删除字段:

    脏数据管束

    在Transform诊疗阶段以及Sink写入阶段都有可能出现失败的情况,关于这些同步经过中因为类型或者数值收尾导致处理失败的数据,咱们界说为脏数据,脏数据的出现会导致任务失败,从而使得蔓延握续飞腾。

    在出现脏数据时,咱们会将这些脏数据写入事前界说好的Kafka Topic,幸免因为数据特别导致任务写入失败,同期咱们在Flink CDC的事件里记载数据开头的数据源和功课信息,肤浅后续分析。为此在采集MySQL数据时,咱们在数据变更事件里添加数据源地址信息和任务信息,如下图所示,展示了在 Kafka里存储的一条脏数据的内容。

    援助MySQL/PostgreSQL Sink

    在某省医保局也存在一些使用 MySQL/PostgreSQL 动作存储的业务,为了援助将数据同步到这些存储,咱们也拓展援助了结束YAML功课的MySQL/PostgreSQL Sink。

    回归

    当今这些转变正在渐渐孝顺给社区,咱们但愿粗犷与社区一皆股东Flink CDC YAML功课的快速发展。举例在CDC 3.1版块刚刚援助Paimon Sink, 咱们很快就开动考据使用了,况且积极和社区同学合营股东完善Paimon Sink结束,经过几次迭代,Paimon Sink在咱们线上环境的应用也曾相比相识了。

    四、实施效劳

    截止当今,浙江数新采集有限公司(简称:数新智能)CyberData平台已在某省医保局完成Flink CDC YAML功课的坐蓐试验落地,安适援助来自于10多个地市的700+数据库实例,500+逻辑表,15000+物理表的及时数据同步场景。为援助上述同步场景,所有这个词成就500+ Flink CDC YAML功课,每个任务1 Core 2 GB * 2个并发,本体需要500 Core 1000 GB,通过Flink CDC YAML功课结束整库同步、分库分表同步。此款式本体得到以下多方面的效益:

    1.大幅升迁资源期骗率:通过YAML功课稀疏的数据及时同步架构,大幅缩短用于数据同步的运筹帷幄资源奢靡。展望可比Flink SQL功课简约Flink集群运筹帷幄资源高达90%以上。

    2.减少爱戴本钱:通过斡旋一套数据平台,各地市取消备份库,缩短各地市备份库爱戴东说念主力和物力参预。

    3.升迁数据治理水平:通过平台引入的数据比对本事,数据的一致性得到有用保险。通过脏数据采集,粗犷对特别数据进行跟踪。

    4.升迁数据及时同步才略:从地市到省级再到国度中心开云体育(中国)官方网站,均结束查询及时数据才略,反应蔓延达到秒级别。



相关资讯