使用场景
数据库数据迁移解决方案。
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,网络不通,连不上数据库。
