环境准备
执行DataX需要java 1.8,以及python环境,python支持2.0和3.0,我这里使用的是python3.6
下载DataX
解压DataX
tar -zxvf dataX.tar.gz
编写DataX JOB
编写job文件,后缀为json
{
"job": {
"setting": {
"speed": {
// 设置传输速度,单位为byte/s,DataX运行会尽可能达到该速度但是不超过它.
"byte": 10485762
},
//出错限制
"errorLimit": {
//出错的record条数上限,当大于该值即报错。
"record": 0,
//出错的record百分比上限 1.0表示100%,0.02表示2%
"percentage": 0.02
}
},
"content": [{
"reader": {
"name": "postgresqlreader",
"parameter": {
// 数据库连接用户名
"username": "***",
// 数据库连接密码
"password": "***",
"column": [
"data_time", "product_id", "type", "content", "create_time", "device_id", "id"
],
//切分主键
//"splitPk": "id",
"connection": [{
"table": [
"迁移目标表"
],
//"querySql": [
// "SELECT 'device_log_djzttcc_d1' AS tbname,data_time AS _ts, product_id AS productid, type , content , device_id AS deviceid from logdev_d1;"
//],
"jdbcUrl": [
"jdbc:postgresql://ip:port/数据库名"
]
}]
}
},
"writer": {
"name": "tdengine30writer",
"parameter": {
"username": "***",
"password": "***",
"column": [
"_ts",
"productid",
"type",
"content",
"createtime",
"deviceid",
"id"
],
"connection": [{
"table": [
"迁移目的库"
],
"jdbcUrl": "jdbc:TAOS://ip:port/数据库名"
}],
"batchSize": 100,
"ignoreTagsUnmatched": true
}
}
}]
}
}
这里需要注意一点,alibaba/datax 这个仓库里面只有td2.0的writer,要写入td3.0的话需要去taosdata/datax这个仓库里拉代码再编译tdengine30writer,放入到datax plugin目录下
名词解释及修改点
- reader、writer 指的是读取写入插件,官方目前支持如下
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS 关系型数据库 | MySQL | √ | √ | 读 、写 |
Oracle | √ | √ | 读 、写 | |
OceanBase | √ | √ | 读 、写 | |
SQLServer | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | 写 | ||
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
Phoenix5.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Hive | √ | √ | 读 、写 | |
Cassandra | √ | √ | 读 、写 | |
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 | ||
时间序列数据库 | OpenTSDB | √ | 读 | |
TSDB | √ | √ | 读 、写 | |
TDengine2.0 | √ | √ | 读 、写 | |
TDengine3.0 | √ | √ | 读 、写 |
- connection 指定查询或写入的表以及库连接地址
执行脚本
python datax.py 编写的job文件.json