DataX

DataX

简介

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。

安装

前置条件

  • JDK 1.8+
  • Python 2+
1
2
3
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/<version>/datax.tar.gz
tar -zxvf datax.tar.gz
cd datax

检测环境脚本:

1
python ./bin/datax.py ./job/job.json

读取 MySQL 并存储至 Hive

DataX 是通过写入 HDFS 文件的方式完成了写入 Hive 的功能,所以需要注意写入文件的位置和数据表的存储类型。

1
2
3
4
5
6
7
8
9
use default;
CREATE TABLE demo
(
id INT,
username String
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "xxxx",
"column": [
"id",
"username"
],
"connection": [
{
"table": [
"user"
],
"jdbcUrl": [
"jdbc:mysql://xxx.xxx.xxx.xxx:3306/test"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://xxxx.xxxx.xxxx:8020",
"fileType": "text",
"path": "/user/hive/warehouse/demo",
"fileName": "20221116",
"column": [
{
"name": "id",
"type": "INT"
},
{
"name": "username",
"type": "STRING"
}
],
"writeMode": "append",
"fieldDelimiter": "\t",
"haveKerberos": true,
"kerberosKeytabFilePath": "/<path>/hive.keytab",
"kerberosPrincipal": "hive/xxx"
}
}
}
]
}
}
1
python ./bin/datax.py <path_to_json_file>

参考资料

官方项目


DataX
https://wangqian0306.github.io/2022/datax/
作者
WangQian
发布于
2022年11月15日
许可协议