华为云FusionInsight Phoenix之--CsvBulkLoadTool入库流程分析
【摘要】 入库命令hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool --table $1 --input $2 2 执行逻辑2.1 Map 逻辑CsvBulkLoadTool使用的是hbase bulkload入库方式,重写了map 和reduce等实现。Map逻辑在CsvToKeyValueMapper类中。Map读取csv文件中的每一行数据,在c...
入库命令
hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool --table $1 --input $2
|
2 执行逻辑
2.1 Map 逻辑
CsvBulkLoadTool使用的是hbase bulkload入库方式,重写了map 和reduce等实现。Map逻辑在CsvToKeyValueMapper类中。
Map读取csv文件中的每一行数据,在conf中获取数据表名。然后根据表名,和数据构造一个upsert 语句,生成执行逻辑,最后生成每一个mutation对象。一行数据可以构造多个mutation对象,因为如果索引表不是disable的话,会生成写索引表的mutation对象。如果索引表是disable状态,就不会构造插入索引表的mutation对象。
然后解析每一个mutation,从中取得表名和value。生成一个key是表名
Reduce逻辑
逻辑较简单,根据map的输出,构造put或者delete对象,key中依然携带表的信息,最终的hfile生成在MultiHfileOutputFormat中,生成不同表的hfile文件。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)