DataX实战(Datax闭坑)
学习了安装并学习了dataX的使用
首先安装Datax
1.下载压缩包:
下载页面地址:https://github.com/alibaba/DataX 在页面中【Quick Start】--->【Download DataX下载地址】进行下载。下载后的包名:datax.tar.gz。解压后{datax}目录下有{bin conf job lib log log_perf plugin script tmp}几个目录。
2.安装
将下载后的压缩包直接解压后可用,前提是对应的java及python环境满足要求。(要求是必须使用Python2版本,我装的Python3其实并不影响,既然Python3的print需要加“()”那么我们直接修改data.py中的代码,对于输出的地方加上括号,另外对于错误处理exception ,e改成excption as e)
另外对于第200行的Copyright()函数中的print输出比较长加括号是应注意要加到第205行末尾(红色加粗部位)
def printCopyright(): print (''' DataX (%s), From Alibaba ! Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved. ''' % DATAX_VERSION) sys.stdout.flush()
另外在控制台运行的时候输出信息中的中文会出现乱码:
所以:cmd 中输入:输入CHCP 65001 (即可解决dos界面的乱码问题)
数据库中的数据中文乱码解决:在json文件中jdbcUrl项加上:?characterEncoding=utf8
实验中用到的json文件(一定要注意文件路径中对“/”在Windows中如果直接复制路径是路径中是“\”这在运行时就会出错,提示json文件中存在错误.........亲身体验)
{ "job": { "setting": { "speed": { "channel": 1 } }, "content": [ { "reader": { "name": "txtfilereader", "parameter": { "path": ["C:/Users/32016/Desktop/spark/xinjian.csv"], "encoding": "gbk", "column": [ { "index": 0, "type": "string" }, { "index": 1, "type": "string" }, { "index": 2, "type": "string" }, ], "fieldDelimiter": ",", "skipHeader": "true" } }, "writer": { "name": "mysqlwriter", "parameter": { "writeMode": "insert", "username": "root", "password": "gy1212", "column": [ "leixing", "laixinren", "tongwen", ], "session": [], "connection": [ { "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/xin?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8", "table": ["xinjain"] } ] } } } ] } }
然后启动datax运行json文件
python datax.py ../job/csv-mysql.json
然后就可将csv文件导入到MySQL数据库中
json在线构建:https://github.com/alibaba/DataX