chunjun

chunjun

基于Flink的分布式数据集成框架 支持异构数据源

ChunJun是基于Apache Flink的分布式数据集成框架,支持多种异构数据源间的同步和计算。框架提供JSON模板和SQL脚本配置,具备分布式运行、Docker部署、增量同步、实时处理等功能。ChunJun易扩展、灵活性高,在众多企业中稳定运行,为数据集成提供可靠解决方案。

ChunJun数据集成Flink分布式异构数据源Github开源项目

ChunJun

<p align="left"> <img src="https://img.shields.io/github/stars/DTStack/chunjun?style=social" alt="npm version" /> <img src="https://img.shields.io/github/license/DTStack/chunjun" alt="license" /> <a href="https://github.com/DTStack/chunjun/releases"><img src="https://img.shields.io/github/downloads/DTStack/chunjun/total" alt="npm downloads" /></a> <img src="https://img.shields.io/gitlab/coverage/DTStack/chunjun/master" alt="master coverage" /> </p>

英文文档 中文文档

简介

ChunJun是一个分布式集成框架,目前基于Apache Flink。它最初被称为FlinkX,并于2022年2月22日更名为ChunJun。它可以实现各种异构数据源之间的数据同步和计算。到目前为止,ChunJun已在数千家公司稳定部署和运行。

ChunJun官方网站:https://dtstack.github.io/chunjun/

ChunJun的特点

ChunJun将不同的数据库抽象为reader/source插件、writer/sink插件和lookup插件,具有以下特点:

  • 基于实时计算引擎Flink,支持JSON模板和SQL脚本配置任务。SQL脚本兼容Flink SQL语法;
  • 支持分布式运行,支持flink-standalone、yarn-session、yarn-per job等提交方式;
  • 支持Docker一键部署,支持在k8s上部署和运行;
  • 支持多种异构数据源,支持MySQL、Oracle、SQLServer、Hive、Kudu等20多种数据源的同步和计算;
  • 易于扩展,灵活性高,新扩展的数据源插件可以与现有数据源插件即时集成,插件开发者无需关心其他插件的代码逻辑;
  • 不仅支持全量同步,还支持增量同步和区间训练;
  • 不仅支持离线同步和计算,还兼容实时场景;
  • 支持脏数据存储,并提供指标监控等;
  • 配合flink checkpoint机制实现断点续传、任务灾难恢复;
  • 不仅支持同步DML数据,还支持DDL同步,如'CREATE TABLE'、'ALTER COLUMN'等;

构建和编译

获取代码

使用git克隆ChunJun的代码

git clone https://github.com/DTStack/chunjun.git

构建

在项目目录中执行以下命令:

./mvnw clean package

或执行

sh build/build.sh

常见问题

编译'ChunJun-core'模块时抛出'Failed to read artifact descriptor for com.google.errorprone:javac-shaded'

错误信息:

[ERROR]Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.4.2:check(spotless-check)on project chunjun-core: Execution spotless-check of goal com.diffplug.spotless:spotless-maven-plugin:2.4.2:check failed:Unable to resolve dependencies: Failed to collect dependencies at com.google.googlejavaformat:google-java-format:jar:1.7->com.google.errorprone:javac-shaded:jar:9+181-r4173-1: Failed to read artifact descriptor for com.google.errorprone:javac-shaded:jar:9+181-r4173-1:Could not transfer artifact com.google.errorprone:javac-shaded:pom:9+181-r4173-1 from/to aliyunmaven(https://maven.aliyun.com/repository/public): Access denied to:https://maven.aliyun.com/repository/public/com/google/errorprone/javac-shaded/9+181-r4173-1/javac-shaded-9+181-r4173-1.pom -> [Help 1]

解决方案: 从'https://repo1.maven.org/maven2/com/google/errorprone/javac-shaded/9+181-r4173-1/javac-shaded-9+181-r4173-1.jar'下载'javac-shaded-9+181-r4173-1.jar',然后使用以下命令在本地安装:

mvn install:install-file -DgroupId=com.google.errorprone -DartifactId=javac-shaded -Dversion=9+181-r4173-1 -Dpackaging=jar -Dfile=./jars/javac-shaded-9+181-r4173-1.jar

快速开始

下表显示了ChunJun的分支与Flink版本的对应关系。如果版本不一致,任务中可能会出现'序列化异常'、'NoSuchMethod异常'等问题。

分支Flink版本
master1.16.1
1.12_release1.12.7
1.10_release1.10.1
1.8_release1.8.3

ChunJun支持多种模式运行任务。不同模式依赖不同的环境和步骤。以下是

本地模式

本地模式不依赖Flink环境和Hadoop环境,在本地环境启动一个JVM进程执行任务。

步骤

进入'chunjun-dist'目录并执行以下命令:

sh bin/chunjun-local.sh -job $SCRIPT_PATH

"$SCRIPT_PATH"参数表示"任务脚本所在的路径"。 执行后,您可以在本地执行任务。

注意:

当您在Windows上打包并在Linux上运行sh时,需要执行命令 sed -i "s/\r//g" bin/*.sh 来修复'\r'问题。

参考视频

独立模式

独立模式依赖于Flink独立环境,不依赖Hadoop环境。

步骤

1. 添加Chunjun的jar包
  1. 找到jar包目录: 如果您使用maven构建此项目,目录名为'chunjun-dist'; 如果您从发布页面下载tar.gz文件,解压后目录名类似'chunjun-assembly-${revision}-chunjun-dist'。

  2. 将jar包复制到Flink的lib目录,命令示例:

cp -r chunjun-dist $FLINK_HOME/lib

注意:此操作应在Flink集群的所有机器上执行,否则某些作业会因ClassNotFoundException而失败。

2. 启动Flink独立集群
sh $FLINK_HOME/bin/start-cluster.sh

启动成功后,Flink Web的默认端口为8081,您可以在'flink-conf.yaml'文件中配置。我们可以访问当前机器的8081端口进入独立集群的Flink Web界面。

3. 提交任务

进入'chunjun-dist'目录并执行以下命令:

sh bin/chunjun-standalone.sh -job chunjun-examples/json/stream/stream.json

命令执行成功后,您可以在Flink Web界面上观察任务状态。

参考视频

Yarn会话模式

Yarn会话模式依赖于Flink jar包和Hadoop环境,在提交任务之前需要启动yarn-session。

步骤

1. 启动yarn-session环境

Yarn会话模式依赖Flink和Hadoop环境。您需要提前设置$HADOOP_HOME和$FLINK_HOME,并且我们需要使用yarn-session的'-t'参数上传'chunjun-dist'。

cd $FLINK_HOME/bin ./yarn-session -t $CHUNJUN_HOME -d
2. 提交任务

通过yarn web获取对应yarn-session的应用ID $SESSION_APPLICATION_ID,然后进入'chunjun-dist'目录并执行以下命令:

sh ./bin/chunjun-yarn-session.sh -job chunjun-examples/json/stream/stream.json -confProp {\"yarn.application.id\":\"SESSION_APPLICATION_ID\"}

'yarn.application.id'也可以在'flink-conf.yaml'中设置。 提交成功后,可以在yarn web上观察任务状态。

参考视频

Yarn Per-Job模式

Yarn Per-Job模式依赖Flink和Hadoop环境。您需要提前设置$HADOOP_HOME和$FLINK_HOME。

步骤

配置正确后即可提交yarn per-job任务。进入'chunjun-dist'目录并执行以下命令:

sh ./bin/chunjun-yarn-perjob.sh -job chunjun-examples/json/stream/stream.json

提交成功后,可以在yarn web上观察任务状态。

连接器文档

详情请访问:https://dtstack.github.io/chunjun/documents/

贡献者

感谢所有贡献者!我们很高兴您能为Chunjun做出贡献。

<a href="https://github.com/DTStack/chunjun/graphs/contributors"> <img src="https://contrib.rocks/image?repo=DTStack/chunjun" alt="贡献者"/> </a>

贡献者随时间变化

Stargazers Over Time

许可证

ChunJun采用Apache 2.0许可证。详情请访问LICENSE

联系我们

加入ChunJun Slack。 https://join.slack.com/t/chunjun/shared_invite/zt-1hzmvh0o3-qZ726NXmhClmLFRMpEDHYw

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多