一、前言

ChunJun(原FlinkX)是一个基于Flink提供易用、稳定、高效的批流统一的数据集成工具,是袋鼠云一站式大数据开发平台-数栈DTinsight的核心计算引擎,其技术架构基于实时计算框架Flink,打造出“具有袋鼠特色”的实时计算引擎。

开源项目地址: 

https://github.com/DTStack/chunjun

https://gitee.com/dtstack_dev_0/chunjun

开源技术交流群

钉钉群:30537511

二、从FlinkX到ChunJun

ChunJun脱胎于袋鼠云数栈自主研发的批流统一的数据同步工具FlinkX。



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

2018年4月,秉承着开源共享理念的数栈技术团队在github上开源了FlinkX,历经4年多的发展,FlinkX从当初的一个小项目,成长为拥有2900+star1300+fork的开源项目。

从开源的第一天,数栈技术团队从未停下技术探索和社区回馈的脚步,在4年多的时间里先后开源了flinkx、flinkStreamSQL、jlogstash、easyagent、doraemon、molecule、Taier,袋鼠云数栈开源家族愈发壮大,开源项目系列得到了广泛的发展,相继在各类企业中落地应用。

今年,数栈技术团队决定对开源项目进行整体升级,并推出自主开源计划——DTstackCon,其中大数据开源项目系列以“十大名剑”作为概念来源,承载着数栈技术团队对它们能如利剑,为社区数字化进程的发展之路披荆斩棘的向往。

正是怀揣着这样殷切的期望,我们决定正式将FlinkX更名为ChunJun!

ChunJun命名取自于中国古代十大名剑之一的纯钧

(ChunJun logo)

纯钧是春秋战国时期铸剑名师欧冶子为越王勾践所铸,其剑身取材珍贵,锋利无比,剑刃就象壁立千丈的断崖崇高而巍峨,剑身更是历经千年而不蚀,代表稳定而强大坚定的意志,正如ChunJun作为袋鼠云数栈的核心计算引擎,承载着实时平台、离线平台、数据资产等多个应用的底层数据同步及计算,其强大的功能保障着客户业务数据的一致性。

ChunJun的logo主体的字母C是由许多平行四边形组成的,这个组合有递进、有组合,正是ChunJun的稳定、聚合体、分布式、集成的开发理念的具象体现。

同时也传达出ChunJun核心观念:提供一个易用、稳定、高效的数据同步和集成工具。

底层采用六边形蜂巢结构,因为六边形的蜂巢是“最省劳动力、也最省材料的选择”。多个六边形排列在一起之间没有空隙,这种排列也被称为是最稳定的排列方式。稳定,从来是我们开发的第一考虑。

三、什么是ChunJun

ChunJun是一个基于Flink 提供易用、稳定、高效的批流统一的数据集成工具,既可以采集静态的数据,比如MySQL,HDFS等,也可以采集实时变化的数据,比如binlog,Kafka等。同时ChunJun也是一个支持原生FlinkSql所有语法和特性的计算框架。目前ChunJun在实际应用过程中已服务了上百家客户,经过多次迭代与沉淀,积累了大量的客户案例。

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

四、ChunJun功能特点

ChunJun具有以下几大特色功能点:

1、超丰富

* 丰富的插件种类:ChunJun上下游插件多达40种,如常见的mysql、binlog、logminer等,大部分插件都支持source/reader、sink/writer及维表功能。

* 丰富的任务执行模式:支持本地拆箱即用式-local 模式,Flink 自带 standalone 模式,常用调度 yarn session 和 yarn pre-job 模式,以及与k8s 结合部署的 k8s 模式。

* 丰富的任务类型:ChunJun支持json 同步任务,以及sql 计算任务,用户可以根据自己的需要,考虑是使用配置更加灵活的json同步任务,还是计算更加强大的sql计算任务。

2、超灵活

* 脏数据收集系统插件化:面对不同的业务场景,可以配置不同的脏数据配置,灵活处理,例如:

是否将脏数据落盘处理;

是否在日志中打印脏数据信息;

脏数据最大条数限制;

脏数据存储到不同类型的数据源等。

* 指标系统插件化:与脏数据插件化类似,指标系统在设计上也采用了插件化设计,用户根据自己的业务场景,灵活配置指标系统。

3、超强大

* 支持增量同步: 对于某些业务库的表,表中的数据基本只有插入操作,随着业务的运行,表中的数据会越来越大。如果每次都整表同步的话,消耗的时间及资源也会越来越多,因此需要一个增量同步的功能,每次只同步增加部分的数据,对于已经同步过的数据则不再进行重复的同步工作。

增量同步是针对于两个及以上数量的同步任务来说的,对于初次执行增量同步的某张表而言,该次同步实质上是整表同步,不同的是在任务执行结束后会记录增量字段的结束值(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语句,并对DDL手动执行。

五、ChunJun未来规划

ChunJun能从一个小项目发展到今天离不开社区开发者们的支持,我们将以此为基,秉承初心,继续大力发展ChunJun开源框架。

1、技术发展

* 支持数据湖:ChunJun团队正在探索湖仓一体的建设

* 数据还原的完善:支持对DDL自动解析并交由下游数据源自动执行

* 更丰富的插件:不仅仅是丰富同步插件,也还要丰富脏数据插件,指标插件等

* 更完善的调度:完善k8s调度,给予用户更完整的k8s方案

* 性能与稳定性:ChunJun团队持续优化代码结构,提高ChunJun性能与稳定性

2、社区发展

* ChunJun技术融合方案

* ChunJun系列直播公开课

* ChunJun Meetup技术沙龙会

袋鼠云批流一体分布式同步引擎ChunJun(原FlinkX)的前世今生的更多相关文章

  1. 带你玩转Flink流批一体分布式实时处理引擎

    摘要:Apache Flink是为分布式.高性能的流处理应用程序打造的开源流处理框架. 本文分享自华为云社区<[云驻共创]手把手教你玩转Flink流批一体分布式实时处理引擎>,作者: 萌兔 ...

  2. DataPipeline CTO陈肃:构建批流一体数据融合平台的一致性语义保证

    文 | 陈肃 DataPipelineCTO 交流微信 | datapipeline2018 本文完整PPT获取 | 关注公众号后,后台回复“陈肃” 首先,本文将从数据融合角度,谈一下DataPipe ...

  3. 阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink

    11月28日,Flink Forward Asia 2019 在北京国家会议中心召开,阿里在会上发布Flink 1.10版本功能前瞻,同时宣布基于Flink的机器学习算法平台Alink正式开源,这也是 ...

  4. 统一批处理流处理——Flink批流一体实现原理

    实现批处理的技术许许多多,从各种关系型数据库的sql处理,到大数据领域的MapReduce,Hive,Spark等等.这些都是处理有限数据流的经典方式.而Flink专注的是无限流处理,那么他是怎么做到 ...

  5. Flink 是如何统一批流引擎的

    关注公众号:大数据技术派,回复"资料",领取1000G资料. 本文首发于我的个人博客:Flink 是如何统一批流引擎的 2015 年,Flink 的作者就写了 Apache Fli ...

  6. 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

  7. 袋鼠云研发手记 | 开源·数栈-扩展FlinkSQL实现流与维表的join

    作为一家创新驱动的科技公司,袋鼠云每年研发投入达数千万,公司80%员工都是技术人员,袋鼠云产品家族包括企业级一站式数据中台PaaS数栈.交互式数据可视化大屏开发平台Easy[V]等产品也在迅速迭代.在 ...

  8. 最佳实践:Pulsar 为批流处理提供融合存储

    非常荣幸有机会和大家分享一下 Apache Pulsar 怎样为批流处理提供融合的存储.希望今天的分享对做大数据处理的同学能有帮助和启发. 这次分享,主要分为四个部分: 介绍与其他消息系统相比, Ap ...

  9. 华夏基金X袋鼠云:基金业数字化转型,为什么说用户才是解题答案?

    "精准营销是以客户为中心,运用各种可利用的方式,在恰当的时间,以恰当的价格,通过恰当的渠道,向恰当的顾客提供恰当的产品." 这是学者许瑾在科特勒精准营销理论的基础上,从实践的角度对 ...

  10. DRDS分布式SQL引擎—执行计划介绍

    摘要: 本文着重介绍 DRDS 执行计划中各个操作符的含义,以便用户通过查询计划了解 SQL 执行流程,从而有针对性的调优 SQL. DRDS分布式SQL引擎 — 执行计划介绍 前言 数据库系统中,执 ...

随机推荐

  1. 密码加密|jsencrypt|md5|加密解密的两种方式

    一.md5 npm install md5 二.JSEncrypt 2.1 介绍 JSEncrypt属于RSA加密,RSA加密算法是一种非对称加密算法: 2.2 使用 安装: npm install ...

  2. Ubuntu截屏工具推荐

    Ubuntu截屏工具推荐 本篇博文推荐Ubuntu下的截屏工具Flameshot,可以作为Windows下Snipaste截图工具的平替. GitHub地址:https://github.com/fl ...

  3. “决策-寻找过程”的黄金秘密工具,1/e 法则之应用(尤其日常生活中的应用)

    https://www.ccgxk.com/magicword/327.html 目录 引言 著名的 1/e 法则内容和解释 应用到生活中的 1/e 法则是什么样? 相亲案例 看书.看电影案例 生活质 ...

  4. 【Ubuntu】Ubuntu 24.04 配置镜像源

    [Ubuntu]Ubuntu 24.04 配置镜像源 零.起因 最近在虚拟机中安装了个ubuntu-24.04-desktop-amd64,默认是国外的软件源,很慢,故替换到国内. 壹.替换 源地址( ...

  5. dijkstra的封装模版

    /** - swj - * />_____フ | _ _| /`ミ _x ノ / | / ヽ ? / ̄| | | | | ( ̄ヽ__ヽ_)_) \二つ **/ #include <bits ...

  6. C#(如何解决使用enum和struct作为Dictionary的TKey带来的GC

  7. jmeter性能测试案例:电商系统并发订单测试

    场景描述:本案例主要实现多用户同时提交订单,以检测系统对瞬时压力的响应情况.具体流程包括用户登录-添加商品-提交订单.涉及多个接口联动和参数处理,步骤如下: 第一步,登录用户 1.新建"下订 ...

  8. win10、win11环境下查看IIS里各项目资源占用情况

    参照链接: [如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?] - 走看看 (zoukankan.com) 概念: 简单理解IIS应用程序池 应用程序池可以看成是计算机分配给Web应 ...

  9. 【大前端攻城狮之路】用 Typewriter-SSE 实现打字机效果

    在现代 Web 开发中,实现动态文本渲染的需求日益增多.无论是聊天应用.实时通知,还是交互式界面,打字机风格的文本渲染都能显著提升用户体验.最近新写了一个开源的 NPM 包--Typewriter-S ...

  10. OSCP靶场练习从零到一之TR0LL: 1

    本系列为 OSCP 证书学习训练靶场的记录,主要涉及到 vulnhub.HTB 上面的 OSCP 靶场,后续慢慢更新 1.靶场介绍 名称: TR0LL: 1 下载地址: https://www.vul ...