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

效果图如下图所示

相关推荐
曹牧4 分钟前
Oracle统计每日发生次数
数据库·oracle
范纹杉想快点毕业15 分钟前
返璞归真还是拥抱现代?——嵌入式研发中的“裸机开发”与RTOS全景解析
c语言·数据库·mongodb·设计模式·nosql
辗转.95315 分钟前
MongoDB入门指南:从零开始掌握NoSQL数据库
数据库·mongodb·nosql
有什么东东19 分钟前
山东大学软件学院2024-2025非关系型数据库背诵整理
数据库·nosql
李少兄19 分钟前
一文搞懂什么是关系型数据库?什么是非关系型数据库?
数据库·redis·mysql·mongodb·nosql
ja哇20 分钟前
NoSql数据库原理期末(课后思考题)
数据库·nosql
sysinside21 分钟前
Elasticsearch 9.2 发布 - 分布式搜索和分析引擎
大数据·分布式·elasticsearch
会开花的二叉树21 分钟前
即时通讯系统核心模块实现
数据库·mysql·elasticsearch
kkce24 分钟前
vsping 推出海外检测节点的核心目的
大数据·网络·人工智能
Jinkxs25 分钟前
Elasticsearch - 倒排索引的压缩算法 Elasticsearch 如何节省空间
大数据·elasticsearch·搜索引擎