阿里开源的免费数据集成工具——DataX
企业里真实的数据流转是什么样子的呢?

左侧描述了一个企业真实的样子,我们总是需要把数据从一个地方搬到另一个地方,最后就是搬来搬去搬成了一张张解不开的网。
右侧则表达了使用DataX为中心实现数据的同步。
什么是DataX
DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
简单说,DataX也是一款数据集成工具。
DataX设计理念
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
DataX框架设计

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
- Reader
Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
- Writer
Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
- Framework
Framework用于连接Reader和Writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
DataX优势
- 可靠的数据质量监控
- 丰富的数据转换功能
- 精准的速度控制
- 强劲的同步性能
- 健壮的容错机制
- 极简的使用体验
DataX支持的插件
| 类型 | 数据源 | Reader(读) | Writer(写) |
|---|---|---|---|
| RDBMS 关系型数据库 | MySQL | √ | √ |
| Oracle | √ | √ | |
| OceanBase | √ | √ | |
| SQLServer | √ | √ | |
| PostgreSQL | √ | √ | |
| DRDS | √ | √ | |
| Kingbase | √ | √ | |
| 通用RDBMS(支持所有关系型数据库) | √ | √ | |
| 阿里云数仓数据存储 | ODPS | √ | √ |
| ADB | √ | ||
| ADS | √ | ||
| OSS | √ | √ | |
| OCS | √ | ||
| Hologres | √ | ||
| AnalyticDB For PostgreSQL | √ | ||
| 阿里云中间件 | datahub | √ | √ |
| SLS | √ | √ | |
| 图数据库 | 阿里云 GDB | √ | √ |
| Neo4j | √ | ||
| NoSQL数据存储 | OTS | √ | √ |
| Hbase0.94 | √ | √ | |
| Hbase1.1 | √ | √ | |
| Phoenix4.x | √ | √ | |
| Phoenix5.x | √ | √ | |
| MongoDB | √ | √ | |
| Cassandra | √ | √ | |
| 数仓数据存储 | StarRocks | √ | √ |
| ApacheDoris | √ | ||
| ClickHouse | √ | √ | |
| Databend | √ | ||
| Hive | √ | √ | |
| kudu | √ | ||
| selectdb | √ | ||
| 无结构化数据存储 | TxtFile | √ | √ |
| FTP | √ | √ | |
| HDFS | √ | √ | |
| Elasticsearch | √ | ||
| 时间序列数据库 | OpenTSDB | √ | |
| TSDB | √ | √ | |
| TDengine | √ | √ |
进阶
前面有介绍过SeaTunnel和Kettle两款数据集成工具,每一款工具都是自己的特色和使用场景。如果你正为同步数据而发愁,不妨试一试DataX吧。
关注:遇码,回复datax获取官方使用说明。
相关文章:
阿里开源的免费数据集成工具——DataX
企业里真实的数据流转是什么样子的呢? 左侧描述了一个企业真实的样子,我们总是需要把数据从一个地方搬到另一个地方,最后就是搬来搬去搬成了一张张解不开的网。 右侧则表达了使用DataX为中心实现数据的同步。 什么是DataX DataX是一个异构…...
【前端】使用 HTML、CSS 和 JavaScript 创建一个数字时钟和搜索功能的网页
文章目录 ⭐前言⭐一、项目结构⭐二、HTML 结构⭐三、CSS 样式⭐四、JavaScript 功能⭐五、运行效果⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈(,NET/Java/Python/C)、数…...
地理信息可视化技术大全【WebGIS 教程一】
前言: 在当今数据驱动的时代,地理信息技术(GIS)和空间数据可视化已成为科学研究、商业决策和智慧城市建设的重要工具。随着Web技术的快速发展,基于浏览器端的地图渲染和地理信息处理能力显著增强,各类开源与…...
SLAM十四讲【四】相机与图像
SLAM十四讲【四】相机与图像 SLAM十四讲【一】基本概念 SLAM十四讲【二】三维空间刚体运动 SLAM十四讲【三】李群与李代数 SLAM十四讲【四】相机与图像 SLAM十四讲【五】线性优化 SLAM十四讲【六】视觉里程计 SLAM十四讲【七】回环检测 SLAM十四讲【八】建图 文章目录 SLAM十四…...
深入理解Java享元模式及其线程安全实践
引言 在软件系统中,当需要处理海量细粒度对象时,直接创建大量实例可能会导致内存消耗激增和性能下降。享元模式(Flyweight Pattern)通过共享对象内部状态,成为解决这类问题的经典方案。然而在多线程环境下,…...
类和对象-运算符重载-C++
1.加号运算符重载 1.成员函数重载调用 函数的定义部分(这里的person是返回值类型,不是说构造函数) class person { public:person operator(person& p){person temp;temp.a this->a p.a;temp.b this->b p.b;return temp;}in…...
2000-2019年各省地方财政耕地占用税数据
2000-2019年各省地方财政耕地占用税数据 1、时间:2000-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政耕地占用税 4、范围:31省 5、指标说明:耕地占用税是地方财政的一种税收&…...
从零到一开发一款 DeepSeek 聊天机器人
AI聊天机器人 目标设计方案系统架构技术选型功能模块 实现代码环境配置安装依赖 核心代码API 请求函数主循环函数 功能扩展1. 情感分析2. 多语言支持3. 上下文记忆4. 用户身份识别 总结附录 目标 开发一个智能聊天机器人,旨在为用户提供自然、流畅的对话体验。通过…...
S32K144外设实验(五):FTM周期中断
文章目录 1. 概述1.1 时钟系统1.2 实验目的 2. 代码的配置 1. 概述 1.1 时钟系统 FTM的CPU接口时钟为SYS_CLK,在RUN模式下最高80MHz。模块的时钟结构如下图所示。 从上图中可以看出,FTM模块的功能时钟为SYS_CLK,计数器的时钟源可以来源于三…...
Android 静态壁纸设置实现方案
提示:Android 平台,静态壁纸实现方案 文章目录 需求:Android 实现壁纸 设置场景 参考资料实现方案直接调用系统 API,WallpaperManager 来实现 wallpaperManager.setResource系统源码分析系统app WallpaperPickerWallpaperPickerActivity ->…...
在计算进程D状态持续时间及等IO的时间遇到的一处问题
一、背景 之前的博客 线程每次iodelay监控及D状态开始和结束监控并做堆栈记录-CSDN博客 里,我们讲到了通过内核模块抓取D状态的进程和等IO事件的方法,里面也用到了通过获取rq的symbol,再去获取rq里的rq_clock_task时间的方法(内核…...
Android11-12-13 替换系统默认壁纸
替换默认壁纸,是客需中再普通不过的需求,这里整理作为笔记记录 文章目录 需求场景 关联资料需求实现拓展总结 需求 客制化客户壁纸需求,替换客户定制的壁纸。 场景 手机-平板相关产品,各种广告机、工控、消费级产品,…...
Buffer overFolw---Kryo序列化出现缓冲区溢出的问题解决
问题: 由于我的数据量太大,我设置批次为10000万,50w数据大概有400M左右,然后进行spark数据处理时候报错为org.apache.spark.SparkException:Kryo serialization failed:Buffer overFolw.Available:0,rquired 58900977,To …...
什么是索引?为什么要使用B树作为索引数据结构?
MySQL的事务特性 1.原子性:原子性就是这个事件要么执行完,要么没执行,不会存在中间状态,与C中华那个加锁避免多线程竞争是一个道理; 2.一致性:保持事件的操作对象双方某数据之和是不变的,就以转账为例,A转给B100块,那么A的余额多100,B的余额就必须少100; 3.隔离性:隔离就是独…...
【Linux】线程基础
🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.背景知识02.线程概念简单使用线程线程调度成本更低 01.背景知识 OS进行内存管理,不是以字节为单位的,而是以内存块为单位的,默认大小为4kb&…...
TCP netstat TIME_WAIT CLOSE_WAIT
TIME_WAIT is different from CLOSE_WAIT, and it’s not necessarily a client-side fault. It happens due to how TCP handles connection termination. Key Differences TCP StateCauseWho is responsible?Fix/OptimizationCLOSE_WAITServer didn’t close() the socket…...
「宇树科技」13家核心零部件供应商梳理!
2025年2月6日,摩根士丹利(Morgan Stanley)发布最新人形机器人研报:Humanoid 100: Mapping the Humanoid Robot Value Chain(人形机器人100:全球人形机器人产业链梳理)。 2025年2月20日…...
Spring Boot 项目打包运行
打包成jar包,执行 java -jar 包名; 保证打出的jar包是独立可运行的包,需要xml中添加插件配置 <!-- SpringBoot应用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId&…...
数据结构八股
线性数据结构 数组:数组的内存空间是连续的,随机访问的时间复杂度是01,适用于需要按索引访问元素的场景,但是插入和删除元素较慢,时间复杂度是On链表:链表是由节点组成,节点之间是分散存储的,内存不连续&a…...
7.2 控件和组件
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 C#工具箱位于编辑窗口的左侧,它默认内置了大量的控件和组件。控件一般派生于System.Windows.Forms.Control类,显…...
自动驾驶背后的数学:ReLU,Sigmoid, Leaky ReLU, PReLU,Swish等激活函数解析
随着自动驾驶技术的飞速发展,深度学习在其中扮演着至关重要的角色。而激活函数作为神经网络中的关键组件,直接影响着模型的性能和效果。前面几篇博客 自动驾驶背后的数学:特征提取中的线性变换与非线性激活 , 「自动驾驶背后的数学࿱…...
transform
http://zhihu.com/question/445556653/answer/3254012065 西科技的文章 视频讲解 小白也能听懂的 transformer模型原理详解 self- attention 多头注意力机制 encoder decoder 机器翻译_哔哩哔哩_bilibili...
在 Simulink 里构建输水隧洞充水过程模型的基本步骤与思路
下面为你介绍在 Simulink 里构建输水隧洞充水过程模型的基本步骤与思路,不过由于没办法直接生成 Simulink 模型文件,这里会给出一个模拟该过程的 Matlab 脚本代码示例。 建模思路 输水隧洞充水过程一般能够用一阶常微分方程来描述,其方程如…...
详解堆排序(超详细)
堆排序 一、 堆的基本概念二、 堆排序的主要步骤:1. 构建大顶堆(Max-Heap)2. 排序过程3. 堆化的详细过程4. 堆排序的完整步骤总结5. 堆排序的时间复杂度6. 堆排序的空间复杂度 三、 举例讲解示例数组第一步:构建大顶堆1.1 找到最后…...
思库拉水厂开业庆典千人大会回顾
近日,思库拉离子水厂在广州隆重举办了开业盛典,现场汇聚了逾千名嘉宾。此次盛会不仅是对思库拉离子水厂正式投产的庆祝,更是对思库拉品牌未来蓝图的一次展示。 现场氛围热烈,洋溢着浓厚的喜庆气息。参与者来自五湖四海,既有思库拉的忠实拥趸,也有对思库拉产品充满兴趣的潜在消费…...
react 大屏根据屏幕分辨率缩放
记录,以防忘记 const DataLargeScreen () > {const layoutRef useRef<any>();// ui稿宽度const width useRef(1920).current;// ui稿高度const height useRef(1080).current;const [scaleValue, setScaleValue] useState(1);const useWhichScaleValu…...
JAVA学习*Object类
Object类 Object类是所有类的父类 类中有一些方法(都需要掌握) toString()方法 在学习类的对象的时候有介绍过了,当我们重新给此方法就会打印类与对象的信息 equals()方法 在Java中的比较, 如果左右两侧是基本类型变量&#…...
基于python脚本实现的打砖块小游戏
目录 1. 打砖块游戏 2. 初始化 Pygame 和设置屏幕 3. 定义游戏对象 3.1 定义玩家操作的paddle 3.2 定义球(Ball) 3.3 砖块(Bricks) 4. 游戏主循环 4.1 事件处理 4.2 板子移动 4.3 球移动和碰撞检测 4.4 绘制游戏对象 …...
20250317-vue-Prop4
运行时类型检查 校验选项中的 type 可以是下列这些原生构造函数: StringNumberBooleanArrayObjectDateFunctionSymbolError 另外,type 也可以是自定义的类或构造函数,Vue 将会通过 instanceof 来检查类型是否匹配。例如下面这个类…...
地理信息系统(GIS)在智慧城市中的40个应用场景案例
在智慧城市发展进程中,地理信息系统(GIS)作为关键技术之一,正扮演着不可或缺的角色,堪称智慧城市的神经中枢。通过空间数据分析优化城市管理,GIS技术为智慧城市的构建提供了强大的支持。 本文分享了GIS在智…...
