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 分钟前
SAP-ABAP:SELECT查询性能优化基础——索引匹配、条件顺序与缓冲机制利用技巧
数据库·性能优化·select·sap·abap·开发交流·交流学习
AcaDesign14 分钟前
上海市东方英才计划项目答辩PPT设计案例模板 | WordinPPT
大数据·人工智能
zhoupenghui16815 分钟前
ClickHouse merge引擎详解以及应用
数据库·clickhouse·merge·mergetree
@insist12320 分钟前
信息系统管理工程师-任务、标准、EDM 过程与关键域
java·大数据·数据库
qq_3660862235 分钟前
关于接口路径中中文值解码问题
java·开发语言·数据库
ClouGence43 分钟前
数据库为什么需要 SSL?一文了解 SSL 连接原理与配置
数据库·开源
联盟分享专家44 分钟前
联盟营销自动化指南:如何扩展您的联盟营销规模与提升转化率?
大数据·人工智能
一十九的酒1 小时前
Oracle 密码恢复实战:使用 SPARE4 哈希值还原用户密码
数据库·oracle·密码丢失·密码恢复·账户锁定
冰暮流星1 小时前
mysql之新建表及对表的查询
android·数据库·mysql
C语言Plus1 小时前
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库
数据库·sql·安全·c++20