在企业的信息化进程中,由于业务场景、技术选型和开发架构的差异,多个异构系统长期并存几乎是必然的结果。这些系统的数据源彼此独立、相互封闭,数据难以在系统之间自由流动和共享,最终形成了所谓的“信息孤岛”。而随着企业内部协同以及外部数据交互的需求日益迫切,打通这些孤岛、实现信息的整合与联通,已经成为企业数字化转型的核心命题。
当企业决定构建数据中台来解决数据互通和共享的问题时,数据集成就成为了打通业务系统与数据中台的管道和桥梁。它是构成数据中台“全、统、通”三大核心能力的重要基础。简单来说,这里所讨论的数据集成,主要指将数据从不同的存储介质同步至数据中台的环节,在具体场景下,它也被称为数据采集、数据同步或数据上云。

数据中台“全、统、通”的核心能力
准备工作
在实际动手实施数据集成开发之前,有几项调研和准备工作必须完成。这些看似琐碎的前置工作,往往决定了后续集成的效率和稳定性。
首先是数据源分类。需要根据上一期提到的数据中台之数据源来确定种类,并结合数据对及时性的要求,选定合适的数据采集技术组件。其次是网络和环境调研。要摸清数据源的网络拓扑和部署环境,然后根据实施方案对现有网络和环境进行必要的改造或优化。

接着是数据内容本身。需要掌握全量数据的大小、增量数据的规模以及数据分布情况。与此同时,数据质量的调研也必不可少,比如检查增量标记字段、索引设计、主键信息等。最后,还需要明确数据范围。哪些数据需要被集成到数据中台?通常来说,凡是能够支撑业务流程或带有核心业务属性的数据,都应优先考虑。这样才能确保集成的数据有价值、不冗余。
业务架构
基于采集的业务内容以及常见的同步分类,我们把数据集成的业务架构整理成了一张图。这个架构的核心逻辑是:在数据源端与目标端(数据中台)之间,通过不同的同步通道和策略,完成数据的高效流转。

数据集成的业务架构
集成流程
下面通过几个典型的数据同步场景案例,来具体展示数据同步的完整流程。
关系型数据库离线同步流程

API类数据同步

实时类数据同步

数据同步模块:实现数据交换的关键管道
数据同步模块,本质上是在各个存储单元之间执行数据交换的管道。为了在大规模数据集中进行高效的挖掘与计算,通常的做法是在任务执行前将数据传输至计算引擎(如DTinsightIDE),并在任务执行完成后将计算结果回传至外部存储单元,例如MySQL等应用数据库。数据集成在整个流程中扮演的角色如下图所示:

数据同步模块的核心作用
从功能特性上看,一个成熟的数据同步模块通常具备以下几个关键能力:
首先是丰富的数据源支持。无论是MySQL、Oracle、SQLServer、PostgreSQL这类传统关系型数据库,还是HDFS、Hive、HBase、FTP、ElasticSearch、Redis、MongoDB等非关系型或大数据组件,都应能实现高效的读写操作。使用时只需配置好数据源的连接信息(比如Oracle的JDBC URL、用户名、密码等),再定义好数据同步任务即可。
其次是先进的分布式系统架构。采用分布式架构(如FlinkX)可以实现多个节点并发读取和写入数据,极大地提升数据同步的吞吐量。相比Sqoop、Kettle等传统的开源同步方案,在数据吞吐能力和配套功能上都有明显优势。
再次是可视化的配置体验。通过可视化的界面,用户可以快速完成同步任务的创建与配置,包括选择源库和目标库的表、配置字段映射、调整同步速率等,大幅降低操作门槛。
此外,全量/增量同步能力也是关键。为了最小化对业务系统的影响,增量同步几乎是标配。只要源数据库表中具备数据变更的时间字段,就能实现对关系型数据库的增量数据同步,用户只需输入相应的数据过滤语句即可完成配置。
另一个实用功能是同步速度的控制。通过设置同步速率的上限,可以根据硬件配置和数据量来灵活调整,避免对业务系统造成冲击。
最后,脏数据管理也不可或缺。系统支持对是否记录脏数据进行配置,可以指定脏数据的存储表名和生命周期,同时还能设置阈值——当脏数据量超过一定数量或比例时,任务自动置为失败,并生成分析报告,便于用户及时排查问题。
