华为云FusionInsight Phoenix之--CsvBulkLoadTool入库流程分析

举报
wangchao316 发表于 2021/10/29 15:17:43 2021/10/29
【摘要】 入库命令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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。