【FlinkX】数据同步工具的研究与实践

一、Flink简介与数据同步需求

1、Flink简介

Flink是新型的计算框架,具有分布式、低延迟、高吞吐和高可靠的特性。其支持多种部署方式:local(单机)、standalone模式,也可以基于yarn,mesos或者k8s做资源调度。Flink提供了比较高级的API,我们能比较方便地扩展现有的API来满足一些特殊需求,此外Flink提供了完整的状态管理体系(checkpoint),可以基于这个机制实现断点续传。

2、数据同步需求

这里主要说明的是离线数据同步。实时数据同步相对而言没有周期性的资源调度问题,原生的Flink框架结合其丰富的connector即可满足大部分需求。

1)支持多种部署模式

开发测试时可以单机部署,在生产环境支持分布式部署。

2)分布式资源调度能力

如果可以基于yarn,mesos或者k8s等做资源调度,可以极大提高资源利用率、提升运营效率!

3)支持断点续传

在大数据量的传输场景下,当网络出现抖动\DB抖动等情况时任务可能会失败。那这个时候重跑任务耗时耗力(血与泪)。此时就需要能从失败的点继续跑,也就是断点续传。

3、常见异构数据同步工具对比

Flinkx是袋鼠云开源的一款基于Flink的分布式数据同步工具(框架)。

工具 flinkx datax logkit sqoop
架构 分布式 单机(分布式版本未开源) 单机 分布式
同步速度控制 支持 支持 支持 不支持
脏数据管理 支持 支持 不支持 不支持
插件化 支持 支持 支持 不支持
断点续传 支持 不支持 不支持 不支持
配置方式 json json web界面 脚本

经过对比不难发现:少数据量、简单数据源下,阿里开源的datax等已经可以满足需求。但在我们复杂环境下Flinkx凭借其分布式架构与断点续传特点,具有明显优势,比较符合我们的需求。

二、Flinkx框架实现与原理

1、实现概览

image.png

FlinkX采用了一种插件式的架构来实现多种异构数据源之间的数据同步:

  • 不同的源数据库被抽象成不同的Reader插件;
  • 不同的目标数据库被抽象成不同的Writer插件;

理论上,FlinkX框架可以支持任意数据源类型的数据同步工作。作为一套生态系统,每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值