乐趣区

关于大数据:Hi我是ChunJun一个有趣好用的开源项目

Hi,我是 ChunJun,一个乏味好用的开源我的项目。

明天咱们正式开明了本人的公众号!欢送大家关注~

数字经济时代,各行各业数字化转型大趋势下,数据因素成为要害。海量多源异构数据汇聚,使得数据同步面临同步速率受限、稳定性差、保护老本低等挑战。

批流一体的数据集成框架 ChunJun,积淀了团队六年来在数据同步和集成方面的实践经验,秉承易用、稳固、高效的指标,满足更多用户对新型数据集成治理需要的响应。

ChunJun 是什么

ChunJun 是易用、稳固、高效的批流一体的数据集成框架。

次要利用于大数据开发平台的数据同步 / 数据集成模块,通常采纳将底层高效的同步插件和界面化的配置形式相结合的形式,使大数据开发人员可简洁、疾速的实现数据同步工作开发,实现将业务数据库的数据同步至大数据存储平台,从而进行数据建模开发,以及数据开发实现后,将大数据处理好的后果,数据同步至业务的利用数据库,供企业数据业务应用。

外围个性

• 基于 json、sql 构建工作

• 反对多种异构数据源之间数据传输

• 反对断点续传、增量同步

• 反对工作脏数据存储管理

• 反对 Schema 同步

• 反对 RDBS 数据源实时采集

开源地址

https://github.com/DTStack/ch…

https://gitee.com/dtstack_dev…

ChunJun 的故事

我的项目最早启动的初衷是为袋鼠云的外围业务一站式大数据开发治理平台 - 数栈 DTinsight,打造一款具备“袋鼠特色“的外围计算引擎,承载实时平台、离线平台、数据资产平台等多个利用的底层数据同步及计算工作。

2016 年,数栈技术团队初步研发实现了这款基于 Flink 的分布式离线 / 实时数据同步插件——FlinkX,它能够实现多种异构数据源高效的数据同步,反对双向读写和多种异构数据源。有它助力,袋鼠云在批流一体的钻研实际以更迅猛的势头往前挺进。

尔后,FlinkX 在业务场景中投入理论利用,失去了超过预期的成果,团队继续投入研发力量,在脏数据、分布式、整库同步、连接数管制等方面逐步欠缺。成为反对数栈实现异构数据源之间高速稳固数据同步的外围计算引擎。

2018 年 4 月,秉承着开源共享理念的数栈技术团队在 github 上开源了 FlinkX,吸引了大量的开发者们一起技术交换和单干共建,FlinkX 失去了更好的倒退。

2022 年 4 月,在 FlinkX 进行初版开源的整整四年后,FlinkX 曾经从当初的一个小我的项目,成长为领有 3200+star,1400+fork 的开源我的项目。技术团队决定对 FlinkX 进行整体降级,并更名为 ChunJun,心愿为大家真正提供一个稳固、高效、易用的批流一体的数据集成框架。

ChunJun 的技术

ChunJun 既能够采集动态的数据,比方 MySQL,HDFS 等,也能够采集实时变动的数据,比方 binlog,Kafka 等。同时 ChunJun 也是一个反对原生 FlinkSql 所有语法和个性的计算框架。

次要架构

ChunJun 基于 Flink 并采纳插件式架构,将源数据库形象成 Reader 插件,将目标数据库形象成 Writer 插件。

外围能力

● 多源异构数据汇聚

作为一个开放式系统,用户能够依据须要,开发新的插件,接入新的数据库类型,也能够应用内置的数据库插件。目前兼容 30+ 异构数据源的数据读写与 SQL 计算。

● 断点续传

针对网络稳定等异常情况,导致数据同步失败的工作,在下一次工作时主动从上一次失败的数据点进行数据同步,防止全部重跑。

● 数据还原

除了 DML 操作以外,一些源端数据库的 DDL 操作也能做到同步,最大水平保障源端数据库和指标端数据库的数据对立和构造对立,做到数据还原。

● 脏数据管理

数据传输过程中,因数据品质或主键束缚等其余因素导致数据无奈同步到指标数据库,针对这些脏数据进行统计和治理,便于后续进行脏数据分析。

● 速率管制

数据同步过程中,数据传输效率是要害,ChunJun 针对各种场景,对症下药地管制速率,最大水平保证数据同步的失常进行。

ChunJun 的劣势

简略易用

● 实现“开箱即用”

反对 Docker 一键部署,反对多种工作运行模式。

  • 本地 local 模式,实用于调研、测试阶段应用;
  • Flink 集群 standalone 模式;
  • Yarn 调度 session 模式及 per-job 模式,罕用于生产环境;
  • K8S 环境 application 模式及 session 模式。

● 丰盛工作类型

反对 json 同步工作,以及 sql 计算工作,用户能够依据本人的须要,思考是应用配置更加灵便的 json 同步工作,还是计算更加弱小的 sql 计算工作。

● 多种插件品种

ChunJun 上下游插件多达 40 种,如常见的 mysql、binlog、logminer 等,大部分插件都反对 source/reader、sink/writer 及维表性能。

凋谢兼容

● 信创兼容

实现国产信创环境全面适配,包含服务器、芯片、零碎、数据库等,并且反对在海豚调度、太阿调度、dlinky 等罕用平台上应用。

● 成熟稳固

开源凋谢,基于 gitHub 社群一直进行优化迭代,在上百家客户生产环境上稳固运行,并且有专门的团队保护。

功能强大

● 反对增量同步

对于某些业务库的表,表中的数据根本只有插入操作,随着业务的运行,表中的数据会越来越大。如果每次都整表同步的话,耗费的工夫及资源也会越来越多,因而须要一个增量同步的性能,每次只同步减少局部的数据,对于曾经同步过的数据则不再进行反复的同步工作。

增量同步是针对于两个及以上数量的同步工作来说的,对于首次执行增量同步的某张表而言,该次同步本质上是整表同步,不同的是在工作执行完结后会记录增量字段的完结值 (endLocation) 并将其上传至 prometheus 供后续应用。

在构建下次增量工作时获取该 endLocation 并作为上述过滤条件的参数值(startLocation)。在工作解析到增量工作配置时,会依据 startLocation 的有无主动构建过滤条件,并将其拼接至 where 条件中,最终构建出一条如:select id, name, age from test where id > 100 的 SQL,从而达到增量读取的目标。

● 反对断点续传

对于某些业务库的表,其数据量可能十分大,同步可能耗时十分久。如果在同步过程中因为某些起因导致工作失败,从头再来的话老本十分大,因而须要一个断点续传的性能从工作失败的中央持续。

断点续传的实质是通过 Flink 的 checkpoint 机制实现的,在每次 checkpoint 时,reader 插件会保留以后读取到的字段的值,writer 插件则会在保留 writer 中的指标及其他信息,而后将 writer 中的事务提交。

● 反对同步 DDL 数据

在客户实在场景中,对于 DDL 数据目前无奈解决的状况,ChunJun 借助内部数据源,监听并捕捉 DDL 变更数据,依据工作配置,对上游采纳手动变更或主动变更。

● 反对脏数据收集零碎插件化

面对不同的业务场景,能够配置不同的脏数据配置,灵活处理,例如:是否将脏数据落盘解决;是否在日志中打印脏数据信息;脏数据最大条数限度;脏数据存储到不同类型的数据源等。

● 反对指标零碎插件化

与脏数据插件化相似,指标零碎在设计上也采纳了插件化设计,用户依据本人的业务场景,可灵便配置指标零碎。

ChunJun 的将来布局

后续咱们将定期对 ChunJun 进行迭代,公布最新版本。近期的布局如下:

• 欠缺我的项目 E2E 测试及插件单测,为我的项目提供强有力的稳定性保障;

• 增强数据还原,联同数据湖打造批流一体数仓全链路;

• 减少服务能力,打造最全面的数据集成框架;

• 框架整体优化,为用户提供最快、最丝滑的体验。

写在最初

为了满足各类业务需要,如何抉择正确的数据集成工具,从而对各类数据加以演绎,是许多企业面临的问题。ChunJun 相继在各类型企业中进行落地利用,通过在丰盛外围业务场景中的实际和打磨,可能反对不同类型的数据集成和同步工作,其弱小的性能保障着客户业务数据的一致性。

ChunJun 我的项目技术团队十分期待失去每一个人的反馈,可能和其余优良开发者独特单干,进一步推动数据集成 / 同步的技术倒退。

最初,如果您对 ChunJun 或数据集成等畛域有趣味,都能够参加到咱们的建设中来,一起交换,一起提高,为 ChunJun 变得更好奉献一点你的代码和意见,这将是咱们,同时也是 ChunJun 莫大的荣幸。

ChunJun 粉丝福利

为了庆贺 ChunJun 公众号的开明,咱们筹备了一些小礼物回馈给始终反对咱们的社区同学们。

参加形式:

关注公众号“ChunJun”,回复“抽奖”,点击抽奖链接,答对问题的同学即可参加流动。

开奖工夫:

2022 年 8 月 19 日 12:00

流动奖品:

小米牙刷 *10

注意事项:

1. 每位用户(同一地址或手机号)只能参加一次;
2. 奖品将于 3 个工作日内收回,请急躁期待,留神查收,因快递邮寄起因,本次流动仅限中国大陆用户参加;
3. 流动解释权归“ChunJun”所有。

袋鼠云开源框架钉钉技术交换 qun(30537511),欢送对大数据开源我的项目有趣味的同学退出交换最新技术信息,开源我的项目库地址:https://github.com/DTStack

退出移动版