1、datax简述

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

2、datax在windows下的简单使用步骤

  在命令提示符界面进入datax\bin目录下,如CD E:\datax\bin

  用Python2执行此处为json文件的路径

  注意:必须使用Python2!!!!!!

  Python3会报以下错误:

  File "datax.py", line 114
print readerRef
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(readerRef)?

  原因是python2的print在python3中变为了print()函数。

  因此可以安装python2,并用 py -2  来执行python代码,如:py -2 datax.py E:\New1.json 来执行python2的代码

  同理py -3执行python3的代码。

3、datax简单示例参考(json文件)

  从CSV到MySQL数据库

 {
"job": {
"content": [
{
"reader": {
"name": "txtfilereader",
"parameter": {
"path": ["E:/Yi211.csv"],
"encoding":"gbk",
"column": [
{
"index": 0,
"type": "string"
},
{
"index": 1,
"type": "string"
},
{
"index": 2,
"type": "string"
},
{
"index": 3,
"type": "string"
},
{
"index": 4,
"type": "string"
},
{
"index": 5,
"type": "string"
},
],
"fieldDelimiter":","
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": [
"shengfen",
"chengshi",
"quezhen",
"zhiyu",
"siwang",
"shijian"
],
"connection": [
{
"jdbcUrl": "jdbc:mysql://localhost:3306/dbtest?useUnicode=true&characterEncoding=utf8",
"table": ["yi211"]
}
],
"password": "364624",
"username": "root",
"preSql":[""],
"session":["set session sql_mode='ANSI'"],
"writeMode":"insert"
}
}
}
],
"setting": {
"speed": {
"channel": "1"
}
}
}
}
  • "path": ["E:/Yi211.csv"],  为要导入的csv文件路径。
  • "encoding":"gbk", 为读取CSV文件的编码格式,这里应注意可能导致中文乱码!!!
  • "column": 参考CSV文件列数进行(安装示例格式)进行进行修改。
  • "name": "mysqlwriter",  代表该部分代码为写入MySQL的部分,同理"name": "txtfilereader",  代表该部分代码为读文本的部分。
  • "jdbcUrl": "jdbc:mysql://localhost:3306/dbtest?useUnicode=true&characterEncoding=utf8", 参考自己连接数据库的部分进行修改,localhost此处代表ip;3306代表端口;dbtest修改为数据库名。characterEncoding代表写入表的编码格式
  • "username": "root", 数据库的用户名。
  • "password": "364624", 数据库的密码。
  • "writer": 部分的 "parameter":  填写MySQL数据表内的表头。

  这里给出MySQL到MySQL数据库的部分json文件,与上部分同理。

 {
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"column": ["id","name","num"],
"connection": [
{
"jdbcUrl": ["jdbc:mysql://localhost:3306/dbtest?useUnicode=true&characterEncoding=utf8&yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewriteBatchedStatements=true"],
"table": ["test1"]
}
],
"password": "364624",
"username": "root", }
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"column": ["id","name","num"],
"connection": [
{ "jdbcUrl": "jdbc:mysql://localhost:3306/dbtest",
"table": ["test2"]
}
],
"password": "364624",
"username": "root",
}
}
}
],
"setting": {
"speed": {
"channel": 1
}
}
}
}

4、可能出现的错误

json文件格式错误:

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误. 您提供的配置信息不是合法的JSON格式: unclosed string : * . 请按照标准json格式提供配置信息.

命令提示符界面出现出现乱码:

可以在cmd中输入: CHCP 65001 ,然后进行后续操作。

py -2 datax.py E:\New1.json

最新文章

  1. 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore
  2. StartFP
  3. 【BZOJ1067】【POJ2637】降雨量
  4. Linux高级字符设备驱动
  5. 【.NET基础】--委托、事件、线程(1)
  6. .net 后台中对html标签按钮跳转后台以及后台简单验证
  7. 一、JSP、Servlet 概要
  8. [置顶] mysql中的set和enum类型的用法和区别
  9. C#第一节课
  10. Android 调用图库选择图片实现和参数详解
  11. SD和SDHC和SDXC卡的区别是什么
  12. iOS中的触摸事件,手势识别,摇晃事件等
  13. js 动态 key value
  14. CCF-201509-3-生成模板系统
  15. 分享一些JAVA相关资源
  16. Mac下CUDA开启及Tensorflow-gpu安装
  17. Linux自定义分隔符IFS引发的文本处理问题
  18. javascript基础 之 void
  19. 在Ubuntu16上安装mininet和floodlight过程,超全篇
  20. hiho1255 Mysterious Antiques in Sackler Museum

热门文章

  1. 今天更新IDEA后,我依旧要永久激活(支持2019.3.3版本)
  2. 一口气说出Redis 5种数据结构及对应使用场景,面试要加分的
  3. step1:准备歌词之《前端开发是个啥》
  4. 大神是如何学习 Go 语言之 Channel 实现原理精要
  5. MacBook Pro突然蓝牙突然消失
  6. MacBook通过SSH远程访问Parallel中的Ubuntu简明教程
  7. 基于webpack的vue开发环境搭建
  8. Linux安装Redis,在测试阶段即make test出现“You need tcl 8.5 or newer in order to run the Redis test”问题解决方案
  9. dict的使用
  10. Linux kernel简介