一、什么是RowKey?
1.增删改查的过程中RowKey就充当了主键的作用,它和众多的nosql数据库一样,可以唯一的标识一行记录。
2.RowKey行键 (RowKey)可以是任意字符串,只要保证这个字符串不重复就可以了。
3.由于数据按照RowKey的字典序(byte order)排序存储,因此HBase中的数据永远都是有序的。
二、RowKey的使用方式:
• get:通过指定单个RowKey来获取对应的唯一一条记录;
1 精确查询某一个 RowKey 中存储的内容:get ‘表的名称‘,’RowKey‘
2 精确查询某一个 RowKey 中的一个单元格中存储的内容。语法:get ‘表的名称‘,’RowKey‘,‘列名’
• like:通过RowKey的range来进行匹配;
• scan:通过设置startRow和stopRow参数来进行范围匹配(注意:如果不设置就是全表扫描)。
步骤 1 查询 RowKey 从“123002”(RowKey)开始,然后读两行的数据:
> scan '表名',{STARTROW=>'123002','LIMIT'=>2
步骤 2 查询 RowKey 从“123001”开始,然后读取两行,读取列名称为 name 的单元格中存 储的信息:
> scan '表名', {STARTROW=>'123001','LIMIT'=>2,COLUMNS=>'info:name'}
三、RowKey的作用可以归纳如下两点:
Hbase在读写数据时需要通过RowKey找到对应的Region;
MemStore和HFile中的数据都是按照 RowKey 的字典序排序。
在HBase中,一个Region就相当于一个数据分片,每个Region都有StartRowKey和StopRowKey(用来表示 Region存储的RowKey的范围),HBase表里面的数据是按照RowKey来分散存储到不同的Region 里面的。
而将数据记录均衡的分散到不同的Region中避免热点现象就是RowKey最主要的作用。
原文链接:https://blog.csdn.net/qq_26803795/article/details/105994960