数据集成平台选型建议
一 数据集成介绍
数据集成平台是一种用于管理和协调数据流动的软件工具或服务。它的主要目标是将来自多个不同数据源的数据整合到一个统一的、易于访问和分析的数据存储库中。这些数据源可以包括数据库、云应用、传感器、日志文件、社交媒体等等。数据集成平台的关键任务是确保数据的一致性、完整性和可靠性,以便业务用户可以信任和使用这些数据来做出决策。
按照数据的生命周期,我们通常将大数据技术分为数据集成、数据存储、批/流处理、数据查询与分析、数据调度与编排、数据开发、BI 7 个部分。

可以看到数据集成在数据生命周期的最前面位置,它负责将多个来自不同数据源的数据聚合存放在一个数据存储中(如数据仓库/数据湖),组合为用户提供单一统一视图,可以兼顾数据的增长量及所有不同的格式,合并所有类型的数据方便了后续的数据分析和挖掘工作。
二 datax简介
datax 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

它将传统的点对点结构数据同步方式向星型结构模式转变。
datax演进过程:datax–> datax-web --> dataworks(datax商业版)
三 数据集成工具介绍
下面将介绍下国内使用的主流数据集成工具。
3.1 开源数据集成工具
3.1.1 datax
官网:https://github.com/alibaba/DataX
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

3.1.2 datax-web
官网:https://github.com/WeiYe-Jing/datax-web
DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。
3.1.3 kettle
官网:https://github.com/pentaho/pentaho-kettle
Kettle 是一款国外开源的 ETL(Extract, Transform, Load,即数据抽取、转换、加载)工具,它使用纯Java编写,并可以在Windows、Linux、Unix等多个操作系统上运行。
3.1.4 Sqoop
官网:https://sqoop.apache.org/
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
3.1.5 Apache NiFi
Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统。基于Web图形界面,通过拖拽、连接、配置完成基于流程的编程,实现数据采集等功能。NiFi是美国国家安全局NAS开发并使用了8年的可视化数据集成产品,2014年贡献给了Apache社区,2015年成为Apache顶级项目。 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。
3.1.6 Apache SeaTunnel
官网:https://seatunnel.incubator.apache.org/
Apache Seatunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台。

3.1.7 Flink CDC
Flink CDC(Change Data Capture)是Flink提供的一个功能,用于捕获和处理数据源中的变化,特别是数据库中的数据变动。它通过在数据源上设置机制,能够实时地捕获并传递变化的数据,实现实时数据管道和处理分析。
3.2 商用数据集成工具
- FineDataLink
- dataworks
- ETLCloud
- kafka streams
四 数据同步方式
按照使用场景划分,目前数据同步主要有离线同步、实时同步和全增量同步三种方式。
4.1 离线同步
在固定时间段或者按照预定计划进行的数据同步,它不强调数据的实时性,而是批量处理历史数据或者定时抓取数据的变化。比如在每天特定时间点或每个小时执行一次同步任务,将数据从源系统抽取、处理后加载到目标系统。这种同步模式适用于数据量较大且对实时性要求不高的场合,例如每日业务报表的生成、夜间批量数据迁移或备份等。
4.2 实时同步
数据在源头发生变化时立即触发同步动作,以极低的延迟甚至接近实时的方式将数据更新反映到目标系统中。这通常涉及到复杂的事件驱动机制、消息队列、流处理技术等,以便捕获和传递数据变更事件,实现实时数据流动。实时同步的应用场景包括实时交易系统、监控系统、物联网(IoT)数据收集、金融风控、在线广告推荐系统等,这些都需要数据的实时一致性来支持高效决策和业务运作。
4.3 全增量同步
一种结合了离线同步与实时同步优点的数据同步策略,旨在既能快速完成初次完整数据同步,又能高效地保持后续数据的实时更新。具体定义如下:首先执行一次全量批量同步操作,然后设置一种机制来跟踪源数据库的变更,持续进行实时同步。这样既保证了在同步开始阶段目标数据库能获取完整的数据视图,又能在后续的时间里通过实时同步及时、高效地更新目标数据库中的数据,从而减少了数据传输量,提高了同步效率,并且维持了数据的一致性。
五 数据集成工具选型对比
| 数据同步 | SeaTunnul | ETLCloud | FineDataLink | DataWorks | Flink CDC | DataX | Kettle | OGG | Cannel | Sqoop |
|---|---|---|---|---|---|---|---|---|---|---|
| CDC机制 | 日志/查询 | 日志/查询 | 日志/查询 | 日志/查询 | 日志 | 查询 | 查询 | 日志 | 日志 | 查询 |
| 增量同步 | √ | √ | √ | √ | √ | × | × | √ | √ | × |
| 断点续传 | √ | √ | √ | √ | √ | × | × | √ | √ | × |
| 全量同步 | √ | √ | √ | √ | √ | √ | √ | √ | × | √ |
| 全量+增量 | √ | √ | √ | √ | √ | × | × | √ | × | × |
| 架构 | 分布式 | 分布式 | 分布式 | 分布式 | 分布式 | 单机 | 单机 | 分布式 | 单机 | 单机 |
| Transformation | ※※※ | ※※※※ | ※※※※ | ※※※※ | ※※※※ | ※※ | ※※ | ※※ | ※※ | ※※ |
| 生态 | ※※※※ | ※※※ | ※※※ | ※※※ | ※※※※ | ※※ | ※※ | ※※※ | ※※ | ※※ |
| 开源 | √ | × | × | × | √ | √ | √ | √ | √ | √ |
| 学习难度 | 低 | 低 | 低 | 低 | 高 | 中 | 低 | 中 | 高 | 低 |
六 总结
如果想使用开源数据集成平台,自我推荐使用 Apache Seatunnel 或者 Flink CDC(3.0后变化很大) 作为企业数据集成平台。

相关文章:
数据集成平台选型建议
一 数据集成介绍 数据集成平台是一种用于管理和协调数据流动的软件工具或服务。它的主要目标是将来自多个不同数据源的数据整合到一个统一的、易于访问和分析的数据存储库中。这些数据源可以包括数据库、云应用、传感器、日志文件、社交媒体等等。数据集成平台的关键任务是确保…...
Centos8安装Docker,使用阿里云源
一、前期准备 1.关闭防火墙,SELINUX systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 sed -i "s/SELINUXenforcing/SELINUXdisabled/g" /etc/selinux/config查看状态 systemctl status firewalld systemctl status…...
FFmpeg概念和简单使用
FFmpeg是一个开源的跨平台多媒体处理工具套件,包含了用于处理音频、视频和图像的各种工具、库和命令行程序。它由一个主要的命令行工具ffmpeg和一系列相关工具组成,可以执行各种各样的多媒体操作。以下是FFmpeg中一些重要的概念: 音频、视频和…...
OJ_最长公共子序列
题干 C实现 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std;int dp[1002][1002];int main() {int n,m;char s1[1001];char s2[1001];scanf("%d%d",&n,&m);scanf("%s%s",s1,s2);//dp[i][j]是…...
SpringBoot拦截器获取token用户对象优雅地传递到Controller层
项目场景: SpringBoot拦截器获取token用户对象优雅地传递到Controller层 问题描述 后端有许多接口都需要请求中携带有正确的Token,这时采用拦截器来验证token,但是每个接口都还是需要解析一遍token,浪费资源,不免显得…...
从零开始学HCIA之SDN03
1、VXLAN相关概念 (1)NVE(Network Virtual Edge),网络虚拟化边界,是运行VXLAN的设备,其实体是一种虚拟逻辑接口,负责VXLAN数据的封装和解封装,其主要参数包括源VTEP以及…...
C语言深度理解之——结构体内存对齐
前言: 在C语言中,结构体(struct)是一种用户自定义的数据类型,可以包含不同类型的数据成员。在定义结构体时,编译器会根据平台的要求对结构体的内存进行对齐,以提高内存访问的效率。结构体内存对…...
LeetCode 热题 100 | 回溯(二)
目录 1 39. 组合总和 2 22. 括号生成 3 79. 单词搜索 菜鸟做题,语言是 C,感冒快好版 关于对回溯算法的理解请参照我的上一篇博客; 在之后的博客中,我将只分析回溯算法中的 for 循环。 1 39. 组合总和 题眼:c…...
混合内容错误https中加载了http
一、遇到问题 iframe嵌套时,混合内容错误https中加载了http,但是已经确认了ifreme中是https的,最后发现在/my/edit?applyid1改为/my/edit/?applyid1,加了一个斜杠,直接解决了 /my/edit是vue页面,其他页…...
游戏免费下载平台模板源码
功能介绍 此游戏网站模板源码是专门为游戏下载站而设计的,旨在为网站开发者提供一个高效、易于维护和扩展的解决方案。 特点: 响应式设计:我们的模板可以自适应不同设备屏幕大小,从而为不同平台的用户提供最佳的浏览体验。 …...
鸿蒙视频播放的实现
文章目录 前言播放效果视频播放的实现总结 一、前言 现在市面上很多应用都跟视频有关,那么在鸿蒙系统上怎么来播放视频呢,今天就讲解视频播放控件,让你也能快速地进行视频播放功能开发。 最后呢,我会提供一个鸿蒙中涉及的主要…...
QT----计算器
目录 1 搭建标准界面2、 逻辑编写2.1 初始化 github链接:基于qt的计算器 更多内容可以点击这里查看个人博客:个人博客 1 搭建标准界面 按照下图搭设界面 修改样式让这计算器看起来更像一点,同时对按钮分组进行样式编辑,添加字符…...
Linux:kubernetes(k8s)Deployment的操作(13)
创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…...
20240619-James-快速鸟瞰并发编程, 呕心沥血整理的架构技术(第3篇)
接着第1, 2篇后,我们继续来跟进一下并发编程的其它内容,如下: 第9节 java.util.concurrent包 线程池 线程池的核心接口是ExecutorService。java.util.concurrent还提供了一个静态工厂类Executors,其中包含用于创建配置线程池的…...
C语言——详解字符函数和字符串函数(一)
Hi,铁子们好呀!今天博主来给大家更一篇C语言的字符函数和字符串函数~ 具体讲的内容如下: 文章目录 🎆1.字符分类函数💯💯⏩1.1 什么是字符分类函数的?💯💯⏩1.2 字符函数的类型有哪…...
三款内衣洗衣机的顶级较量:希亦、小吉、由利,谁才是性价比之王?
洗衣机在我们的生活中可谓是非常常见的了,几乎每家每户都具备着一台。即便是有洗衣机,也有不少人不会将自己我贴身衣物直接扔在洗衣机里清洗,而是会自己手工手洗。这跟我们传统上的观念有很大的关系,认为把内衣、内裤等贴身衣物放…...
Java枚举多值映射应用
在日常系统交互中,经常遇到两个系统间定义的枚举不一致,在接口调用时需要转换,记录实现,方便备查。 场景 双方的支付方式定义不同,一侧为数字,一侧为英文,若使用 if 判断,则显得繁琐…...
css--浮动
一. 浮动的简介 在最初,浮动是用来实现文字环绕图片效果的,现在浮动是主流的页面布局方式之一。 二. 元素浮动后的特点 🤢脱离文档流。😊不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开࿰…...
基于有限状态机开发健壮的Nodejs/TCP客户端
有限状态机是一种数学计算模型,它描述了在任何给定时间只能处于一种状态的系统的行为。形式上,有限状态机有五个部分: 初始状态值 (initial state)有限的一组状态 (states)有限的一组事件 (events)由事件驱动的一组状态转移关系 (transition…...
javaEE13(网站第8章两个课后题)
1、对“jspservletjavabean实现分页查询”功能做如下补充: (1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。 增加跳转到任意页功能。用户可改变每页记录条数。 页面&am…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
