datax使用实践

279 阅读1分钟

datax的工具包可以根据github地址上开源的代码进行下载编译,下载后需要maven等环境。推荐直接下载开源的工具包,开箱即用。

下载工具包

datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.g…

image.png

上传到linux服务器

解压到/usr/local/datax

image.png

编写job.json

编写json需要注意对应的reader和writer有相对应的需要字段。我这里需要的是sqlserverreader和clickhousewriter,配置好对应的字段好库表、账号密码即可。如果有清空表等前置sql,可以填写到preSql字段里面。

image.png


{
   "job":{
       "setting":{
           "speed":{
               "channel":3
           },
           "errorLimit":{
               "record":0,
               "percentage":0.02
           }
       },
       "content":[
           {
               "reader":{
                   "name":"sqlserverreader",
                   "parameter":{
                       "username":"yaya_yh",
                       "password":"*******",
                       "column":[
                           "Sale_date",
                           "GMV_amount",
                           "Picture",
                           "Shop_id",
                           "Fashion_code",
                           "Channel_id",
                           "Channel_name",
                           "ETL_TIME",
                           "Category1",
                           "Category2",
                           "url"
                       ],
                       "connection":[
                           {
                               "table":[
                                   "dbo.DM_FASHION_SALE_D"
                               ],
                               "jdbcUrl":[
                                   "jdbc:sqlserver://rm-bp163rqqg8289090oeo.sqlserver.rds.aliyuncs.com;database=YaYa_BI"
                               ]
                           }
                       ]
                   }
               },
               "writer":{
                   "name":"clickhousewriter",
                   "parameter":{
                       "batchByteSize":134217728,
                       "batchSize":65536,
                       "column":[
                           "Sale_date",
                           "GMV_amount",
                           "Picture",
                           "Shop_id",
                           "Fashion_code",
                           "Channel_id",
                           "Channel_name",
                           "ETL_TIME",
                           "Category1",
                           "Category2",
                           "url"
                       ],
                       "connection":[
                           {
                               "jdbcUrl":"jdbc:clickhouse://127.0.0.1:8123/YaYa_TEST",
                               "table":[
                                   "DM_FASHION_SALE_D"
                               ]
                           }
                       ],
                       "dryRun":false,
                       "password":"*******",
                       "postSql":[

                       ],
                       "preSql":[

                       ],
                       "username":"default",
                       "writeMode":"insert"
                   }
               }
           }
       ]
   }
}

测试Job

需要python环境,一般linux上都是自带python2.7的。没有的话需要额外安装。

./bin/datax_new.py ./job/job.json

image.png

运行成功

image.png

遇到的问题 执行脚本以后没有文件或者目录。

image.png

原因是datax.py文件格式不是linux上的python格式,需要处理一下才能运行。

格式转换语句:

cat -v ./bin/datax.py | sed -e '1,$s/\^M$//g' > ./bin/datax_new.py