有需求使用DataX将HBase表中数据迁移到MySQL中,有的表在Phoenix中定义,使用hbase20xsqlreader读取。有的没有在Phoenix中定义,数据是动态插入,列是不固定的。
- hbase20xsqlreader,读取Phoenix
 - hbase11xreader,读取HBase
 
不管读取HBase还是Phoenix都要求填写column,但是可以写sql占位,传进来。
我这里由于业务原因就没有使用占位符的方式传递。
现在的业务需求是我HBase横表迁移到MySQL纵表中。
动态列中的列名有在MySQL表中记录,所以实现流程就是
- shell 脚本调用mysql读取出要在HBase中读取的列
 - 循环生成hbase11xreader读取-写入txt的DataX json
 - 调用DataX执行上面的json文件导出txt
 - 循环txt为每行加入MySQL要插入的列key
 - 生成读取txt,写入MySQL
 
代码
1  | !/bin/bash  |