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

编辑推荐精选

TRAE编程

TRAE编程

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

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多