首先需要明白HBase表的排序规则:
(1)rowkey排序(字典排序)——升序
(2)Column排序(字典排序)——升序
(3)时间戳排序——降序
rowkey 字典序排序可点击下方链接了解。
[HBase] - 理解 HBase Rowkey 字典排序
https://www.jianshu.com/p/d4609b5bb9f3
如果想按照某列字段来排序,则需要再设计该表的rowkey上做文章,既满足字典排序,又能按照想要的字段排序来存储数据。
下面给出我的一个设计思路,仅供参考
业务需求:按照 发布日期 listdate 降序排列数据
伪代码:
---- 在设计rowkey时做文章
---对基础表数据进行排序(row_number()函数)
--第一步
select
a.*,
ROW_NUMBER() over( order by listdate asc) as rn
from
XXX.t_XXX a
--第二步
- 综合考虑字典排序的规则,及预估表数据量,设定一个较大的数值(比如99999999)作为rowkey设计子字段
insert into XXX.XXXXX
select
concat(99999999 - a.rn, '_', a.XXXX_code) as rowkey,
a.*
from
(
select
a.*,
ROW_NUMBER() over( order by listdate asc) as rn
from
XXX.t_XXX a
) a
最后的实现效果是,存储在HBase的数据,是按照listdate 降序顺次存储,方便后续开发api接口,返回数据。
效果图如下图所示








![2023年中国溶瘤病毒药物上市产品、研发现状及行业市场规模前景[图]](https://img-blog.csdnimg.cn/img_convert/a631ed03315ecb8888788ad8e0ac976a.png)








![[GAMES101]透视投影变换矩阵中为什么需要改变z值](https://img-blog.csdnimg.cn/de0693beeaa74ff6b8d4aa380789d207.png#pic_center)


