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

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)
1. 题目解析 题目链接:206. 反转链表 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针,并返回该链表逆序后的新头结点。递归…...

Unity基础学习
目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…...

Java并发编程学习笔记:AQS
Java并发编程学习笔记:AQS 一、底层原理核心功能同步状态管理CLH 队列和线程调度机制独占模式与共享模式模板方法设计模式自旋、阻塞与超时机制 运行流程 二、锁的公平性公平锁非公平锁 三、容器实现 JUC中的AQS(AbstractQueuedSynchronizer)…...

Github上哪些好用的工具
专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…...

如何确保面试流程标准化操作,避免人为因素影响**
一、背景 在招聘过程中,面试作为关键环节,其标准化操作至关重要。标准化不仅有助于提高面试效率和质量,还能减少人为因素的影响,确保公平、公正和客观。本文将从以下八个方面探讨如何确保面试流程的标准化操作。 二、明确面试标准 制定明确的面试标准和要求,确保所有面试…...

YOLOv7改进 | 更换主干网络之PP-LCNet
前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…...

MySQL基础-----多表查询之子查询
目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询,那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询,以及子查询的相关功能…...

nginx应用场景(附配置)
场景1:web服务器 server {listen 80;server_name example.com; # 替换为您的域名location / {root /data/wwwroot;index index.html index.htm;} }server {listen 443 ssl;server_name example.com; # 替换为您的域名ssl_certificate /path/to/certificate.crt;ssl…...

tvm android_rpc_test.py执行报错解决
执行 python3 tests/android_rpc_test.py 报错: Run CPU test ... Traceback (most recent call last): File "tests/android_rpc_test.py", line 129, in <module> test_rpc_module() File "tests/android_rpc_test.py", line …...

十、项目沟通管理
十、项目沟通管理 从马斯洛需求的各个层级上,都需要沟通的介入。如果缺乏沟通,甚至可能严重损伤身心健康。 沟通渠道 1、 规划沟通管理 规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产,以及具体项目的需求&#x…...