/flinkx

基于flink的分布式数据同步工具

Primary LanguageJavaApache License 2.0Apache-2.0

FlinkX

License

English | 中文

技术交流

  • 招聘Flink研发工程师,如果有兴趣可以联系思枢(微信号:ysqwhiletrue)
    Flink开发工程师JD要求:
    1.负责袋鼠云基于Flink的衍生框架数据同步flinkx和实时计算flinkstreamsql框架的开发;
    2.调研和把握当前最新大数据实时计算技术,将其中的合适技术引入到平台中,改善产品,提升竞争力;
    职位要求:
    1、本科及以上学历,3年及以上的Flink开发经验,精通Java,熟悉Scala、Python优先考虑;
    2、熟悉Flink原理,有基于Flink做过二次源码的开发,在github上贡献者Flink源码者优先;
    3、有机器学习、数据挖掘相关经验者优先;
    4、对新技术有快速学习和上手能力,对代码有一定的洁癖;
    加分项:
    1.在GitHub或其他平台上有过开源项目
    可以添加本人微信号ysqwhiletrue,注明招聘,如有意者发送简历至sishu@dtstack.com

  • 我们使用钉钉沟通交流,可以搜索群号[30537511]或者扫描下面的二维码进入钉钉群

介绍

  • FlinkX是在是袋鼠云内部广泛使用的基于flink的分布式离线和实时的数据同步框架,实现了多种异构数据源之间高效的数据迁移。

不同的数据源头被抽象成不同的Reader插件,不同的数据目标被抽象成不同的Writer插件。理论上,FlinkX框架可以支持任意数据源类型的数据同步工作。作为一套生态系统,每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等,也可以采集实时变化的数据,比如MySQL binlog,Kafka等。FlinkX目前包含下面这些特性:

  • 大部分插件支持并发读写数据,可以大幅度提高读写速度;

  • 部分插件支持失败恢复的功能,可以从失败的位置恢复任务,节约运行时间;失败恢复

  • 关系数据库的Reader插件支持间隔轮询功能,可以持续不断的采集变化的数据;间隔轮询

  • 部分数据库支持开启Kerberos安全认证;Kerberos

  • 可以限制reader的读取速度,降低对业务数据库的影响;

  • 可以记录writer插件写数据时产生的脏数据;

  • 可以限制脏数据的最大数量;

  • 支持多种运行模式;

FlinkX目前支持下面这些数据库:

Database Type Reader Writer
Batch Synchronization MySQL doc doc
Oracle doc doc
SqlServer doc doc
PostgreSQL doc doc
DB2 doc doc
GBase doc doc
ClickHouse doc doc
PolarDB doc doc
SAP Hana doc doc
Teradata doc doc
Phoenix doc doc
达梦 doc doc
Greenplum doc doc
KingBase doc doc
Cassandra doc doc
ODPS doc doc
HBase doc doc
MongoDB doc doc
Kudu doc doc
ElasticSearch doc doc
FTP doc doc
HDFS doc doc
Carbondata doc doc
Stream doc doc
Redis doc
Hive doc
Stream Synchronization Kafka doc doc
EMQX doc doc
RestApi doc doc
MySQL Binlog doc
MongoDB Oplog doc
PostgreSQL WAL doc
Oracle LogMiner doc
Sqlserver CDC doc

基本原理

在底层实现上,FlinkX依赖Flink,数据同步任务会被翻译成StreamGraph在Flink上执行,基本原理如下图:

快速开始

请点击快速开始

通用配置

请点击插件通用配置

统计指标

请点击统计指标

Kerberos

请点击Kerberos

Questions

请点击Questions

如何贡献FlinkX

请点击如何贡献FlinkX

License

FlinkX is under the Apache 2.0 license. See the LICENSE file for details.