导读:传统ETL方案让企业难以承受数据集成之重,基于Kafka Connect构建的新型实时数据集成平台被寄予厚望。
在4月21日的Kafka Beijing Meetup第四场活动上,DataPipeline CTO陈肃分享了DataPipeline是如何基于Kafka Connect框架构建实时数据集成平台的应用实践。以下内容是基于现场录音整理的文字,供大家参考。
什么是数据集成?最简单的应用场景就是:一个数据源,一个数据目的地,数据目的地可以一个数据仓库,把关系型数据库的数据同步到数据仓库里,就形成了一次数据集成。
企业数据集成面临的4个挑战
我们先来看一个真实的数据集成案例。
G公司是DataPipeline的一个典型客户,拥有近千个数据源,类型主要包括Oracle、SQL Server、MySQL等。根据业务的需要和现有的基础设施情况,这些数据源分别需要同步到不同的目的端,类型主要包括MySQL、HDFS、Kafka等。基于以上背景,G公司的具体要求如下:
-
需要支持约5TB日新增数据量的同步,今年将增长5-10倍。
-
这些数据一部分数据源要求实时同步,另一部分可接受定时同步。
-
缺乏强大的运维人才,现有数据源的业务承载压力有限,对压力非常的敏感,要求进行限流。
-
从这些数据源到目的地的同步都是Kettle写脚本实现的,管理起来比较混乱,要求通过一个管理平台对任务进行集中化的配置和管理。
-
上游的数据源和下游的数据目的都不稳定,随时可能出现各种问题,要求通过一个高可用的平台以减少数据传输中断的影响。
-
当数据同步任务被随机的暂停/恢复时,要求可以保证数据的完整性。
-
当数据源和目的地随机出现故障和过载时,要求可以保证数据的完整性。
-
当数据源Schema发生变化时,要求可以根据业务需求灵活配置目的地策略。
G公司的案例只是当前企业数据集成需求的一个典型应用场景。事实上,无论是互联网企业还是传统企业,在面临数据集成的时候都会遇到以下4个挑战:
-
数据源的异构性:传统ETL方案中,从数据源到目的地的同步都是脚本实现的,异构数据源就意味着企业要做大量的适配工作。
-
数据源的动态性:在数据集成时,上游的数据源端经常会发生各种变化,有些数据源可能被删掉一些结构,这可能会影响到后续数据分析的结果。
-
任务的可伸缩性:当数据集成只有几个数据源,系统压力的问题不太突出。当数据集成面临的是成百上千个数据源时,多