HBase 表如何按照某表字段排序后顺序存储的方法?

首先需要明白HBase表的排序规则:

(1)rowkey排序(字典排序)------升序

(2)Column排序(字典排序)------升序

(3)时间戳排序------降序

rowkey 字典序排序可点击下方链接了解。

HBase - 理解 HBase Rowkey 字典排序https://www.jianshu.com/p/d4609b5bb9f3

如果想按照某列字段来排序,则需要再设计该表的rowkey上做文章,既满足字典排序,又能按照想要的字段排序来存储数据。

下面给出我的一个设计思路,仅供参考

业务需求:按照 发布日期 listdate 降序排列数据

伪代码:

sql 复制代码
---- 在设计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接口,返回数据。

效果图如下图所示

相关推荐
小柯南敲键盘1 分钟前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
我不是疯子是傻子17 分钟前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
观远数据24 分钟前
零售连锁BI选型清单:什么样的场景适合ChatBI,什么样的场景不适合
大数据·人工智能·零售
大大大大晴天1 小时前
实时数仓怎么建:基于 StarRocks 的分层设计与实践
大数据
这个DBA有点耶1 小时前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
名字还没想好☜2 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
roman_日积跬步-终至千里2 小时前
【计算资源节省与稳定性治理】自助查询系统请求幂等性设计
大数据
迷迭香yy2 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB3 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB3 小时前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库