DataX 的使用

article/2025/10/13 5:11:04

一、DataX 的部署

1、上传 datax 压缩包并解压

tar -zxvf datax.tar.gz -C /usr/local/soft/

2、自检,执行命令(在datax目录下)

[root@master datax]# python ./bin/datax.py ./job/job.json

安装成功

二、DataX 的使用

MySQL写入MySQL 

1、生成模板命令

[root@master datax]# python ./bin/datax.py -r mysqlreader -w mysqlwriter

2、根据读写的数据源,获取json模板;可根据官网修改 json 完成数据的同步 

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": ["id","name","age","gender","clazz","last_mod"],"connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student"],"table": ["student"]}],"password": "123456","username": "root"}},"writer": {"name": "mysqlwriter","parameter": {"column": ["id","name","age","gender","clazz","last_mod"],"connection": [{"jdbcUrl": "jdbc:mysql://master:3306/student2?useUnicode=true&characterEncoding=utf8","table": ["student2"]}],"preSql": ["truncate table student2"],"password": "123456","username": "root","writeMode": "insert"}}}],"setting": {"speed": {"channel": "5"}}}
}

3、执行

[root@master dataxjsons]# datax.py mysql2mysql.json

MySQL写入HDFS 

 1、生成模板

[root@master dataxjsons]# python /usr/local/soft/datax/bin/datax.py -r mysqlreader -w hdfswriter

2、修改

{"job": {"content": [{"reader": {"name": "mysqlreader", "parameter": {"column": ["*"], "connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student"], "table": ["student"]}], "password": "123456", "username": "root"}}, "writer": {"name": "hdfswriter", "parameter": {"column": [{"name": "col1","type": "int"},{"name": "col2","type": "String"},{"name": "col3","type": "int"},{"name": "col4","type": "String"},{"name": "col5","type": "String"},{"name": "col6","type": "Date"}],  "defaultFS": "hdfs://master:9000", "fieldDelimiter": ",", "fileName": "msql2hdfs", "fileType": "text", "path": "/shujia/bigdata17/datax/", "writeMode": "append"}}}], "setting": {"speed": {"channel": "1"}}}
}

3、执行

[root@master dataxjsons]# datax.py mysql2hdfs.json

MySQL同步数据到Hive 

1、hive建表

CREATE EXTERNAL TABLE IF NOT EXISTS student2(
    id BIGINT,
    name STRING,
    age INT,
    gender STRING,
    clazz STRING,
    last_mod STRING
)
comment '学生表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE 

 2、生成模板

[root@master dataxjsons]# python /usr/local/soft/datax/bin/datax.py -r mysqlreader -w hdfswriter

 3、修改

{"job": {"content": [{"reader": {"name": "mysqlreader", "parameter": {"column": ["*"], "connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student"], "table": ["student"]}], "password": "123456", "username": "root"}}, "writer": {"name": "hdfswriter", "parameter": {"column": [{"name": "id","type": "bigint"},{"name": "name","type": "string"},{"name": "age","type": "INT"},{"name": "gender","type": "string"},{"name": "clazz","type": "string"},{"name": "last_mod","type": "string"}], "defaultFS": "hdfs://master:9000", "fieldDelimiter": ",", "fileName": "student2", "fileType": "text", "path": "/user/hive/warehouse/bigdata17.db/student2/", "writeMode": "append"}}}], "setting": {"speed": {"channel": "1"}}}
}

4、执行

[root@master dataxjsons]# datax.py mysql2hive.json

向Hive中同步数据,即向HDFS上Hive表目录下同步数据 

增量同步,可在where后添加条件("where": "id > 7")

Mysql向HBase同步数据 

1、hbase创建表

hbase(main):003:0> create 'datastudent','info' 

 2、生成模板

[root@master dataxjsons]# python /usr/local/soft/datax/bin/datax.py -r mysqlreader -w hbase11xwriter

3、修改

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": ["id","name","age","gender","clazz","last_mod"],"connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student"],"table": ["student"]}],"password": "123456","username": "root"}},"writer": {"name": "hbase11xwriter","parameter": {"column": [{"index": 1,"name": "info:name","type": "string"},{"index": 2,"name": "info:age","type": "int"},{"index": 3,"name": "info:gender","type": "string"},{"index": 5,"name": "info:last_mod","type": "string"}],"encoding": "utf-8","hbaseConfig": {"hbase.zookeeper.quorum": "master:2181,node1:2181,node2:2181"},"mode": "normal","rowkeyColumn": [{"index": 0,"type": "string"},{"index": -1,"type": "string","value": "_"},{"index": 4,"type": "string"}],"table": "datastudent"}}}],"setting": {"speed": {"channel": "5"}}}
}

4、执行

[root@master dataxjsons]# datax.py mysql2hbase.json

HBase同步数据到MySQL 

1、生成模板

python /usr/local/soft/datax/bin/datax.py -r hbase11xreader -w mysqlwriter

2、修改

{"job": {"content": [{"reader": {"name": "hbase11xreader", "parameter": {"column": [{"name": "rowkey","type": "string"},{"name": "info: name","type": "string"},{"name": "info: age","type": "int"},{"name": "info: gender","type": "string"},{"name": "info: last_mod","type": "string"},], "encoding": "utf-8", "hbaseConfig": {"hbase.zookeeper.quorum": "master:2181,node1:2181,node2:2181"}, "mode": "normal", "table": "datastudent"}}, "writer": {"name": "mysqlwriter", "parameter": {"column": ["id","name","age","gender","last_mod"], "connection": [{"jdbcUrl": "jdbc:mysql://master:3306/student?useUnicode=true&characterEncoding=utf8", "table": ["student_copy1"]}], "password": "123456", "username": "root", "writeMode": "append"}}}], "setting": {"speed": {"channel": "5"}}}
}

3、执行

[root@master dataxjsons]# datax.py hbase2mysql.json

可在MySQL中查看从hbase同步过来的数据 


http://chatgpt.dhexx.cn/article/K55nTIQX.shtml

相关文章

DATAX快速上手非常详细

前言 博主在工作的过程中有一天公司决定将数据迁移的新的项目上去,当我发现数据库中的表大于有4000多张表的时我顿时懵了下,这数据迁移人力物力消耗的也太大了吧(看DataX的设计)。所以我们可以借助阿里云开源的DataX来解决这个问题。 看完这篇掌…

DataX及DataX-Web

大数据Hadoop之——数据同步工具DataX数据采集工具-DataX datax详细介绍及使用 一、概述 DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、…

datax(4): datax.py解读

datax 直接使用py文件进行任务提交,今天读一读它 一、文件位置 原始文件位置在 xx/DataX/core/src/main/bin/下,datax项目打包后会将文件拷贝到 xx/DataX\target\datax\datax\bin 下。 core模块的pom.xml 指定‘拷贝’datax.py文件的方式maven-assembly…

DataX使用指南

简介 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。DataX采用了框架 插件 的模式,目前已开源,代码托管在github。…

DataX

DataX的环境搭建以及简单测试 什么是DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、 HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 (这是一个单机多任务的ETL工具&#xff0…

DataX 简介及架构原理

DataX 简介及架构原理 概述 DataX是阿里巴巴使用 Java 和 Python 开发的一个异构数据源离线同步工具 异构数据源:不同存储结构的数据源 致力于实现包括关系型数据库 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS…

DataX的使用与介绍(1)

一、什么是DataX? DataX是阿里云商用产品DataWorks数据集成的开源版本,它是一个异构数据源的离线数据同步工具/平台(ETL工具)。DataX实现了包括Mysql,Oracle、OceanBase、Sqlserver,Postgre、HDFS、Hive、…

DataX介绍

DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 DataX设计理念 DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头…

详解DataX及使用

DataX概述 简介 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 支持数据源 DataX架构原理 设计理念 为了解决异构数据源同步问…

使用 DataX 实现数据同步(高效的同步工具)

DataX 使用介绍 前言一、DataX 简介1.DataX3.0 框架设计2.DataX3.0 核心架构 二、使用 DataX 实现数据同步1.Linux 上安装 DataX 软件2.DataX 基本使用3.安装 MySQL 数据库4.通过 DataX 实 MySQL 数据同步5.使用 DataX 进行增量同步 前言 我们公司有个项目的数据量高达五千万&…

Transpose函数的用法

Transpose函数的用法 在CNN机器学习中,经常要用到transpose函数对多维数组进行转置操作,下面是我对函数的理解过程。 1.二维数组的转换 二维数组中,原数组的第0轴的行,转换成新数组第1轴的列; 2.三维数组 三维数组较…

转置算子(transpose)的一种实现

transpose算子也叫做permute算子,根据白嫖有道英汉大词典的结果,他俩都是转置,改变排列顺序的意思。 算法逻辑是: 通过当前输出的一维偏移量(offset)计算输入矩阵对应的高维索引 然后根据参数pos重新排列输出索引,进…

论文笔记——TransPose

目录 摘要 一、前言 二、相关工作 2.1 人体姿态估计 2.2 可解释性 三、TransPose 3.1 网络结构 3.2 分辨率设置 3.3 attentions是定位关键点的依赖 四、实验 4.1 COCO实验数据对比 4.2 迁移到MPII数据对比 4.3 消融实验​编辑 4.4 量化分析 五、总结 摘要 虽然基…

numpy中的transpose函数使用

二维矩阵的transpose函数 : transpose()简单来说,就相当于数学中的转置,在矩阵中,转置就是把行与列相互调换位置; 例如:随机生成一个三行五列的二维矩阵: arr np.aran…

transpose()函数的理解

图1 输入如图1所示语句,输出如下: 图2 由以上两图说明transpose()函数的作用: 假设shape(z,x,y),在RGB图像中可以理解为z代表通道数,x代表图像的第几行,y代表图像的第几列,x和y组合而成所代表的像素构成…

详解Python的transpose函数

数组转置和换轴 import numpy as np >>> arr np.arange(16).reshape((2,2,4)) array([[[ 0, 1, 2, 3],[ 4, 5, 6, 7]],[[ 8, 9, 10, 11],[12, 13, 14, 15]]])>>> arr.transpose((1, 0, 2)) array([[[ 0, 1, 2, 3],[ 8, 9, 10, 11]],[[ 4, 5, …

np.transpose

最近看代码的时候,老是出现np.transpose()这个用法,但是对其中的原理还是不甚了解,今天就来总结一下,以及这个用法对图像的结果及效果。 参数 a:输入数组 axis: int类型的列表,这个参数是可选的。默认情况下&#xff…

np.transpose()函数详解

1. 碰见 numpy.transpose 用于高维数组时挺让人费解,通过分析和代码验证,发现 transpose 用法还是很简单的。说白了就是映射坐标轴 2. 举个例子: x np.arange(12).reshape((2,3,2))创建一个2 * 3 * 2的数组: 使用 numpy.trans…

【Python学习】transpose函数

shape:(batch_size * x * y ) 有batch_size个二维矩阵(x * y)相当于(z * x * y) 1. 多维数组的索引 import numpy as np # 创建 x np.arange(12).reshape((2,2,3)) print(x)# 得到三维数组 [[[ 0 1 2][ 3 4 5]][[ 6 7 8][ 9 10 11]]] # 相当于 b…

最简单例子解释python的transpose函数

目录 一,我们要弄清楚transpose的轴是什么意思?二,(x,y,z)的物理含义:三,transpose变换的例子四,代码验证五,关于经过了transpose变换之后,这个三维数组的形状是如何变化确定的? 二维…