有需求使用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 |