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

原文地址:https://www.cnblogs.com/1gaoyu/p/12398498.html