datax动态传参指定SQL语句

需求:动态的修改sql语句来读mysql,动态的修改hbase表名来指定写入的hbase表。

脚本:

{
    "job": {
        "setting": {
          "speed": {
            "byte": 8388608,
            "channel": 3
          },
          "errorLimit": {
            "record": 0,
            "percentage": 0.02
          }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "xxx",
                        "password": "xxx",                                 
                        "connection": [
                            {
                                "querySql": ["$DS"],
                                "jdbcUrl": ["jdbc:mysql://xxx:3306/xxx"]
                            }
                        ]
                    }                   
                },
                "writer": {
                    "name": "hbase11xwriter",
                    "parameter": {              
                        "hbaseConfig": {
                          "hbase.zookeeper.quorum": "xxx"
                        },
                        "table": "$DT",
                        "mode": "normal",
                        "rowkeyColumn": [
                            {
							"index":0,
							"type":"string"
							},
							{
							"index":-1,
							"type":"string",
							"value":"-"
							},
							{
							"index":1,
							"type":"string"
							}               
                        ],
                        "column" : [ {
                                "index":1,
                                "name": "data:studentName",
                                "type": "string"
                              }
                        ],
                        "encoding": "utf-8"
                    }
                }
            }
        ]
    }
}

执行:

$ python ../bin/datax.py -p "-DDS='select xx,xx from xx where xx = xx' -DDT=student" mysql2Hbase-test.json

很简单,就是通过-Dxx在执行时传参,json脚本中使用$xx接收参数即可。

你可能感兴趣的:(ETL)