总订单数1亿条 ->订单id,用户id,商品id集合,订单时间,订单完成时间,订单状态; HBase表设计: 主表 -> Rowkey: 用户ID_时间戳 列簇:info 索引表 -> https://www.2cto.com/database/201708/664664.html rowkey: 订单号 列簇:info:index value=主表的rowkey
注意点 用户id需要长度一致(索引表同理),如1要变换为"0000001". 那么rowkey为
0000001_1324324343
0000001_1648326442
0000002_1267867372
0000002_1474398648
0000002_1553762536
...
这样才能用scan 'order',{STARTROW=>'0000001',ENDROW=>'0000002'}查询到用户0000001的所有订单信息
索引表其实是主表的值与rowkey的映射,为了加快查询效率。
预分区建表,目的是避免自动splits引起性能降低,影响读写效率。
hbase
> create
't1',
'f1', SPLITS
=> ['2',
'4',
'6',
'8']