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接口,返回数据。

效果图如下图所示

相关推荐
吴声子夜歌13 小时前
Redis 6.x——监控指标
数据库·redis·缓存
布局呆星13 小时前
Git基础操作:从本地提交到远程仓库
大数据·elasticsearch·搜索引擎
再让我睡两分钟13 小时前
【无标题】
android·java·数据库·人工智能·prompt·ai应用开发
starfalling102413 小时前
【大数据体系】大数据开发能力体系增长——从初级大数据开发到高级,需要做什么
大数据
环球科讯14 小时前
建行研修中心井冈山党性教育研修院党支部赴东固开展红色研学主题党日活动
大数据
爸爸61914 小时前
30 原始 SQL 查询与聚合统计:querySql 实战
数据库·sql·华为·harmonyos·鸿蒙系统
砍材农夫14 小时前
spring|spring event|Spring内置事件驱动编程模型
java·数据库·spring
BD_Marathon1 天前
spark.sql报错
大数据·分布式·spark
tiancaijiben1 天前
阿里云SSL证书自动续签与部署完全指南:从托管服务到开源工具全方案解析
数据库
全堆鸿蒙1 天前
25 数据库设计与表结构规划:5 张表的设计思路
数据库·华为·cocoa·harmonyos