使用场景
数据库数据迁移解决方案。
DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。
1,拉下项目;
DataX项目地址:https://github.com/alibaba/DataX
在页面中【Quick Start】下,点击【Download DataX】下载地址,如果浏览器不能下载,就换个浏览器。
2,环境
1,Window10 cmd窗口,Lunix;
2,JDK(1.6以上,推荐1.6);
3,安装Python(推荐Python2.6.X),python3 执行语法会错误;
3.1,Python下载地址 搜索版本2.6.6,Download Windows x86-64 MSI installer;
3.2,下载,安装,注意文件路径,盘符;
3.3,配置环境变量;
3.3.1,系统属性 -> 环境变量 -> 系统变量 -> Path 编辑 -> 新增 -> python安装路径:D:\Program Files\python
3.4,检查是否安装;
3.4.3,win+r -> cmd -> python
4,Apache Maven 3.x (Compile DataX)
3,datax-编写json,执行命令。
3.1,找到datax项目 -> job目录 -> 编写脚本;
示例JSON -> 读:Oracle,写:PostgreSQL
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "oraclereader",
"parameter": {
"username": "username",
"password": "pwd",
"where": "",
"connection": [
{
"querySql": [
"查询结果SQL,eg:select * from BPSDOONE.tb_bps_blacklistdata WHERE 1=1"
],
"jdbcUrl": [
"jdbc:oracle:thin:@//IP:端口/XXX"
]
}
]
}
},
"writer": {
"name": "postgresqlwriter",
"parameter": {
"print": true,
"encoding": "UTF-8",
"username": "username",
"password": "pwd",
"column": [
"*"
],
"preSql": [],
"connection": [
{
"jdbcUrl": "jdbc:postgresql://IP:端口/XXX",
"table": [
"[表明]bpsdoone.tb_bps_blacklistdata"
]
}
]
}
}
}
]
}
}
3.2,执行脚本
命令行:python [bin目录]/datax.py [job目录]/demo.json
python [bin目录下]datax.py [job目录下]demo.json
4,问题点收集
1,datax项目下载,压缩包datax.tar.gz;
2,python下载python-2.6.6.amd64.msi,配置环境变量,检查安装是否完成;
3,如果cmd出现乱码,输入CHCP 65001;
4,datax项目 job 目录是执行脚本,注意json格式规范;
5,写入库-主键自增字段影响插入数据;
6,网络不通,连不上数据库。