datax示例 - 从mysql读数据,写入db2

参考地址:https://github.com/alibaba/DataX/blob/master/rdbmswriter/doc/rdbmswriter.md

1.配置rdbmswriter的db2驱动(首次使用)

说明:datax暂时没有独立插件支持db2,需要使用通用RDBMS;这里是写入db2,使用rdbmswriter,对应目录为/usr/soft/datax/plugin/writer/rdbmswriter/

  • 修改该目录下的plugin.json,注册数据库驱动

{
    "name": "rdbmswriter",
    "class": "com.alibaba.datax.plugin.reader.rdbmswriter.RdbmsWriter",
    "description": "useScene: prod. mechanism: Jdbc connection using the database, execute select sql, retrieve data from the ResultSet. warn: The more you know about the database, the less problems you encounter.",
    "developer": "alibaba",
    "drivers":["com.ibm.db2.jcc.DB2Driver"]
}

  • 上传db2驱动到该目录下的libs,如图所示

datax示例 - 从mysql读数据,写入db2_第1张图片

  • 替换该目录下的rdbmswriter-0.0.1-SNAPSHOT.jar(原版有bug,不支持db2),如图所示

datax示例 - 从mysql读数据,写入db2_第2张图片

2.添加抽取数据任务

说明:job文件都放在/usr/soft/datax/job目录

  • 在该目录下新建xian-langchao-stock.json,内容如下(注意修改数据库地址、账号、密码、SQL)

datax示例 - 从mysql读数据,写入db2_第3张图片

{
    "job": {
        "setting": {
            "speed": {
                "channel": 1
            }
        },
        "content": [{
            "reader": {
                "name": "mysqlreader",
                "parameter": {
                    "username": "root",
                    "password": "xxxxxx",
                    "connection": [{
                        "querySql": [
                            "select c.corp_code CORP_CODE,a.cust_licence CUST_LICENCE,REPLACE(a.data_date,'-','') INVE_DATE,
                            right(a.update_time, 8) INVE_TIME, a.product_id BAR_CODE, a.stock_qty QTY
                            from data_summary_sale_date a
                            left join t_base_city_corp c on a.city_code = c.city_code
                            where c.corp_code = '11610101'
                            and a.data_date = '2018-11-11'"
                        ],
                        "jdbcUrl": [
                            "jdbc:mysql://源数据库IP:3306/daas_retail?useSSL=false"
                        ]
                    }]
                }
            },
            "writer": {
                "name": "rdbmswriter",
                "parameter": {
                    "connection": [{
                        "jdbcUrl": "jdbc:db2://目标数据库IP:50000/temold",
                        "table": [
                            "GY_CUST_ITEM_WHSE_ZR"
                        ]
                    }],
                    "username": "db2admin",
                    "password": "xxxxxx",
                    "table": "GY_CUST_ITEM_WHSE_ZR",
                    "column": [
                        "ORG_CODE",
                        "CUST_CODE",
                        "DATE1",
                        "UPD_TIME",
                        "CGT_CODE",
                        "QTY"
                    ],
                    "preSql": [
                        "delete from GY_CUST_ITEM_WHSE_ZR where ORG_CODE = '11610101'"
                    ]
                }
            }
        }]
    }
}

3.执行任务命令

python /usr/soft/datax/bin/datax.py /usr/soft/datax/job/xian-langchao-stock.json 

4.配置定时执行任务

  • 登录xxl-job-admin管理页面http://你的域名/xxl-job-admin/toLogin
  • 新增定时GLUE(Shell)任务,内容为步骤3的命令

你可能感兴趣的:(datax)