使用DataX将HBase数据库中的全量数据同步到表格存储(Tablestore)中。
准备工作
步骤一:下载DataX
DataX?是一个异构数据源离线同步工具,本示例中使用DataX将HBase中的数据同步到表格存储。
您可以选择下载DataX的源代码(开源)进行本地编译或者直接下载编译好的压缩包。
步骤二:Maven打包
步骤三:准备全量导出的JSON文件
DataX提供了HbaseReader插件从HBase中读取数据。在底层实现上,HbaseReader通过HBase的Java客户端连接远程HBase服务,并通过Scan方式读取指定rowkey范围内的数据,然后将读取的数据使用DataX自定义的数据类型拼装为抽象的数据集,并传递给下游Writer处理。
- Hbase0.94 XReader
- Hbase1.1 XReader
- Hbase2.0 XReaderHbase2.0XReader插件从Phoenix读取数据。
配置样例
{
"job": {
"setting": {
"speed": {
"channel": 1
}
},
"content": [
{
"reader": {
"name": "hbase11xreader",
"parameter": {
"hbaseConfig": {
"hbase.zookeeper.quorum": "xxxf"
},
"table": "users",
"encoding": "utf-8",
"mode": "normal",
"column": [
{
"name": "rowkey",
"type": "string"
},
{
"name": "info: age",
"type": "string"
},
{
"name": "info: birthday",
"type": "date",
"format":"yyyy-MM-dd"
},
{
"name": "info: company",
"type": "string"
},
{
"name": "address: contry",
"type": "string"
},
{
"name": "address: province",
"type": "string"
},
{
"name": "address: city",
"type": "string"
}
],
"range": {
"startRowkey": "",
"endRowkey": "",
"isBinaryRowkey": true
}
}
},
"writer": {
"name": "txtfilewriter",
"parameter": {
"path": "/Users/shf/workplace/datax_test/hbase11xreader/result",
"fileName": "qiran",
"writeMode": "truncate"
}
}
}
]
}
}
步骤四:执行同步命令
执行如下命令同步数据。
python datax.py -j"-Xms4g -Xmx4g" hbase_to_ots.json
其中-j"-Xms4g -Xmx4g"
可以限制占用JVM内存的大小;如果不指定,将会使用conf/core.json
中的配置,默认为1 GB。
相关操作
HBase数据迁移到表格存储后,您可以使用Tablestore SDK或者Tablestore HBase Client读取表格存储的数据,详情请参见从HBase Client迁移到Tablestore HBase Client。