最近老师布置任务学习使用DataX大数据同步技术,总结一些遇到的问题
安装:
下载页面地址:https://github.com/alibaba/DataX
在页面中【Quick Start】--->【Download DataX下载地址】进行下载。下载后的包名:datax.tar.gz。
解压后{datax}目录下有{bin conf job lib log log_perf plugin script tmp}几个目录。
测试
打开cmd,输入
python D:dataxindatax.py D:dataxjobjob.json
测试压缩包内自带.py代码,代码位置:binjon.json
乱码可输入:CHCP 65001 之后再运行实例
python 3以上版本需修改bin目录中.py文件
应用
csv文件写入mysql
创建作业的配置文件(json格式)
可以通过命令查看配置模板:
python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
例如:python D:dataxindatax.py -r txtfilereader -w mysqlwriter
将模板放到新建的json中,补充相应信息
{ "job": { "setting": { "speed": { "channel": 3 } }, "content": [ { "reader": { "name": "txtfilereader", "parameter": { "path":["D:\123.csv"], "encode":"utf-8", "column" : [ { "index":0, "type":"string" },{ "index":1, "type":"string" } ], "fieldDelimiter":"," } }, "writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "root", "password": "1234", "column": [ "first", "second" ], "preSql": [ "truncate table dataxtest" ], "connection": [ { "jdbcUrl": "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC", "table": [ "dataxtest" ] } ] } } } ] } }
将连接数据库所需jar包放入lib文件夹中
运行python D:dataxindatax.py D:dataxjobwrite.json
数据写入完成
遇到时区错误,在url中加入 serverTimezone=UTC 中文乱码 ?useUnicode=true&characterEncoding=utf8
修改后还存在中文乱码时,修改读入文件格式为"encode":"utf-8",所设置格式