DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
GitHub方式:https://github.com/alibaba/DataX
注意:
dataX需要在
jdk1.8
及
Python2.0
以上运行
查询jdk
# java -version
查询Python
# python --version
- 我把刚刚下载的压缩文件放在了
/usr/local/datax

- 解压到
/opt/software
# tar -zxvf datax.tar.gz -C /opt/software
三、验证解压
# bin/datax.py job/job.json
安装完成。
这里我以从SqlServer数据库中的一张表数据同步到MySQL中为例讲解一下数据同步功能。
一、datax.py
首先需要说明一下这里的操作原理,建议看一下方便理解。如果想直接实操的可以跳过【一、】这个步骤。
在刚刚我们执行的# bin/datax.py job/job.json
命令中分为两个步骤,第一个是启动名为datax.py
的Python
脚本。第二个是通过datax.py
脚本来执行一个job.json
文件。
datax.py
脚本就不多说了,大家可以打开自己看看。主要我们要知道的是job.json
文件,该文件也是我们用于进行数据同步功能的主要配置文件。
job.json
文件内容:
"content":[
"reader":{
"name":"streamreader",
"parameter":{
"column":[
"type":"string",
"value":"DataX"
"type":"long",
"value":19900604
"type":"date",
"value":"1990-06-04 00:00:00"
"type":"bool",
"value":true
"type":"bytes",
"value":"test"
"sliceRecordCount":100000
"writer":{
"name":"streamwriter",
"parameter":{
"encoding":"UTF-8",
"print":false
"setting":{
"errorLimit":{
"percentage":0.02,
"record":0
"speed":{
"byte":10485760
解析(个人理解,非官方语言):
content
: 一个执行同步的单元,里面包含读与写操作。
writer
: 写操作的配置信息
reader
:读操作的配置信息
parameter
: 读操作中的数据源
sliceRecordCount
:读取的数据条数
name
:官方描述为数据插件。其实就是使用每一种类型数据库时调用的包也是GitHub页面中这些插件包。

咱们现在使用的就是我标红的这两个,如果需要使用其他数据源比如MySQL和SqlServer,就需要替换相对应的插件包,我们可以在GitHub中找到该包的写入与写出代码
speed
:这里面有个channel
参数为整数,代表并发数量

setting
: 对上面执行单元的基本设置
看完上面配置文件的解释大家应该可以明白,数据同步的规则就是配置一个读入数据源一个写出数据源,执行之后即可进行数据同步。
二、准备数据
- 在一个SqlServer中创建数据名称为datax_read

ps:这张表中ID需要为主键
- 在一个MySQL中创建一个结构相同的表
三、编写job.json
文件
- 回到用户文件下创建
json
文件夹
2. 进入json
文件夹创建steamSqlServerMysql.json

内容如下(账号密码地址请替换成你自己的数据库):
"job": {
"content": [{
"reader": {
"name": "sqlserverreader",
"parameter": {
"username": "root",
"password": "root",
"column": [
"ID",
"WTDBH"
"splitPk": "ID",
"connection": [{
"table": [
"ERP_CGDD"
"jdbcUrl": [
"jdbc:sqlserver://172.16.156.200:1433;DatabaseName=datax_read"
"writer":{
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "root",
"password": "root",
"column": [
"ID",
"WTDBH"
"session": [
"set session sql_mode='ANSI'"
"preSql": [
"delete from erp_cgdd"
"connection": [
"jdbcUrl": "jdbc:mysql://172.16.156.201:3306/datax_writer?useUnicode=true&characterEncoding=utf-8",
"table": [
"erp_cgdd"
}],
"setting": {
"speed": {
"channel": "1"
MySQL写入插件中字段的解释:点击这里
四、执行同步操作
# /opt/software/datax/bin/datax.py ./steamSqlServerMysql.json
数据同步功能完成!
java通过调用Python脚本执行DataX
原理实际上没区别,直接用java输入刚刚自己在命令行中输入的命令即可
下面代码是java执行Linux命令
try {
String[] cmd = new String[] { "/bin/sh", "-c", "/opt/software/datax/bin/datax.py ./steamSqlServerMysql.json" };
Process ps = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
String result = sb.toString();
logger.info(result);
} catch (Exception e) {
logger.error("----error-----");
e.printStackTrace();
如果觉得有帮助的话给个免费的点赞吧,Thanks♪(・ω・)ノ
Maxwell:异构数据源实时同步工具
文章目录Maxwell:异构数据源实时工具1、概述2、原理解析2.1 Mysql主从复制3、Maxwell安装部署4、增量数据同步5、历史数据全量同步5.1 Maxwell-bootstrap
Maxwell:实时监控Mysql数据库的数据变更操作(包括insert、update、delete),并将变更数据以 JSON 格式发送给 Kafka、Kinesi等流数据处理平台。
Maxwell的工作原理是实时读取MySQL数据库的二进制日志(B
DataX是一个各种数据源之间的离线数据同步工具DataX的设计理念是一种星型数据链路。DataX作为中间传输载体负责连接各种数据源,通过reader从一个数据源读取数据,再通过writer将数据写入另一个数据源。这样可以以一种插件的方式拓展其它数据源支持ORC格式任务执行完,有执行统计信息在core部分有数据校验功能只能在一台服务器,以多线程的方式运行不支持分布式。但可以再多台服务器部署,对不同的数据库表进行数据同步。
DataX 是阿里云商用产品 DataWorks 数据集成的开源版本,它是一个异构数据源的离线数据同步工具/平台(ETL工具)。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。Tips : 异构即不同类型的应用或者数据源,例如等不同类型的数据库源。
开源MPP数据库Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,其架构专门用于管理大规模分析数据仓库,Greenplum主要定位在OLAP领域,利用Greenplum MPP数据库做大数据计算或分析平台非常...
简介假设存在数据库表table1,要将其同步到table2。有以下要求:table1作为线上数据库表,不能停止服务。这意味着table1在不停的被修改。table1和table2表结构不同。比如删减或修改字段等。比较常用的做法是:记一个时间点A先进行一次全量同步从时间点A开始进行一次增量同步本文阐述下使用mysql binlog实现增量同步。简单使用和查看binlog是一种类型的文件,记录对数据发...
(1) OGG
Oracle GoldenGate 是一款实时访问、基于日志变化捕捉数据,并且在异构平台之间迚行数据传输的产品。GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达10:1的压缩率对数据迚行压缩,可以大大降低带宽需求。在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段
它还支持执行一个在同步前和同步后的执行sql功能,这个功能可以让你在同步数据前清空目标库表,同步完成后向日志表中写入数据。第二个组件kettle,是数据ETL工具,这里介绍它是因为它也可以实现数据同步。kettle的数据同步性能较之datax有一定差距,数据来源也支持十几种,但是kettle的开源资料比较少,初始学习可能比较困难。canal组件产出的数据是一个实时流,我们可以将一个应用数据库的日志数据发送到kakfa中,下游各个消费者订阅数据将增量数据同步到各自的数据库中,官网提供的客户端有如下。.....
如果想实现增量同步,就需要使用where和数据库中的时间字段来判断近期添加和修改的代码。
如果需要修改已有行数据,如果写入数据库为mysql,可以把写入模式改为update
但是公司需要使用sqlserver数据库,该插件对sqlserver不支持writeMode,所示使用sqlserver提供的触发器。判断当前id是否存
在新系统中设置定时任务需要实时把客户系统中的新数据及时同步过来。
1.根据客户提供的接口(参数上必带页码和页面容量),在本系统中采用Http的Post请求方式获取接口数据。
2.由于客户提供的接口必带页码和页面容量,因此会涉及到
1.设置定时任务。
2.采用Http的Post方式获取接口数据。
3.涉及多页数据采用递归方
DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能。本文介绍其安装及基本使用方法
一、dataX概览
1.1 DataX
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
1.2 Features
DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插
正版包邮webrtc native许建林软件44.3元(需用券)去购买 >DataX Web用户手册(一、安装)一、github下载master分支或者release版本到本地DataX Web下载地址二、安装DataX方法一、直接下载DataX工具包:DataX下载地址下载后解压至本地某个目录,进入bin目录,即可运行同步作业:$ cd {YOUR_DATAX_HOME}/bin$ py...
方法一、直接下载DataX工具包:DataX下载地址
下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}
自检脚本:
python {YOUR_DATAX_HO
DataX 安装及使用
文章目录DataX 安装及使用一、DataX快速入门1.1、DataX概述及安装**概述**DataX安装配置1.2、DataX使用案例
一、DataX快速入门
1.1、DataX概述及安装
DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、
Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、
MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步
文章目录DataX的安装DataX的使用stream2stream编写配置文件stream2stream.json执行同步任务执行结果mysql2mysql编写配置文件mysql2mysql.json执行同步任务mysql2hdfs编写配置文件mysql2hdfs.jsonhbase2mysqlmysql2hbasemysql2Phoenix在Phoenix中创建STUDENT表编写配置文件MySQLToPhoenix.jsonHDFSToHBaseFlinkX的安装与简单使用FlinkX的安装FlinkX
wget https://github.com/DTStack/flinkx/archive/1.8.5.zip
unzip flinkx-1.8.5.zip
cd flink-1.8.5
mvn clean package -DskipTests
首先准备要运行的任务json,这里以stream插
DataX的安装及使用
文章目录DataX的安装及使用DataX的安装DataX的使用stream2stream编写配置文件stream2stream.json执行同步任务执行结果mysql2mysql编写配置文件mysql2mysql.json执行同步任务mysql2hdfs编写配置文件mysql2hdfs.jsonhbase2mysqlmysql2hbasemysql2Phoenix在Phoenix中创建STUDENT表编写配置文件MySQLToPhoenix.jsonHDFSToHBase
DataX
DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。任务"执行器"支持集群部署,支持执行器多节点...
DataX是阿里巴巴团队开发的一个很好开源项目,但是他们对如何使用只提供了python命令启动方式,这种方式对于只是想简单的用下DataX的人来说很是友好,仅仅需要几行代码就可以运行,但是如果你需要在DataX上进行二次开发,那么用python来控制程序加显得很没有掌控力度,也不容易和别的模块进行融合,今天来说下DataX纯Java代码的启动方式,也顺便来记录一下以后想用的时候加能直接用了 先把测...