datax同步oracle数据到hbase,hbase的rowkey使用hash生成

  • Post author:
  • Post category:其他


  1. 配置Oracle Reader插件

在DataX的作业文件中,需要配置Oracle Reader插件,指定Oracle数据库的连接信息、要同步的表和列等参数。示例配置如下:

{


“job”: {


“content”: [

{


“reader”: {


“name”: “oraclereader”,

“parameter”: {


“username”: “root”,

“password”: “123456”,

“column”: [“id”, “name”, “age”],

“connection”: [

{


“jdbcUrl”: “jdbc:oracle:thin:@localhost:1521:test”,

“table”: [“user”]

}

]

}

},

“writer”: {


“name”: “hbasewriter”,

“parameter”: {


“hbaseConfig”: {


“hbase.zookeeper.quorum”: “localhost:2181”

},

“table”: “user”,

“column”: [“id”, “name”, “age”],

“rowkeyColumn”: “rowkey”,

“rowkeyGenerated”: true,

“rowkeyGenerateScript”: “python /path/to/hash.py”

}

}

}

],

“setting”: {


“speed”: {


“channel”: 1

}

}

}

}

其中,reader参数表示Oracle Reader插件的配置信息,包括Oracle数据库连接信息、要同步的表和列等;writer参数表示HBase Writer插件的配置信息,包括HBase数据库连接信息、要同步的表和列等;rowkeyColumn参数表示作为HBase行键的列名;rowkeyGenerated参数表示是否自动生成rowkey;rowkeyGenerateScript参数表示自定义脚本的路径。

自定义脚本生成hash rowkey

import hashlib

def generate(row):
    # 将row转换为字符串
    row_str = str(row)
    # 使用hashlib生成md5值
    md5 = hashlib.md5()
    md5.update(row_str.encode('utf-8'))
    # 返回md5值的前8位作为rowkey
    return md5.hexdigest()[:8]

运行DataX作业

$ python bin/datax.py /path/to/job.json



版权声明:本文为weixin_46005650原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。