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

效果图如下图所示

相关推荐
老白说数智化升级9 分钟前
制造企业如何确定物流数智化建设的优先级?
大数据·人工智能·制造
ywl47081208716 分钟前
Mysql,使用B+树存储的索引增删改查效率(七)
数据库·b树·mysql
喜欢的名字被抢了22 分钟前
MongoDB基础入门:从安装到CRUD与索引优化
数据库·mongodb
xlrqx42 分钟前
保定家电清洗培训全拆洗教涉及哪些核心要点与行业信息呢?
大数据·python
cc5725026539 小时前
高考志愿填报:大数据相关专业到底怎么选?
大数据·高考
本旺9 小时前
Elasticsearch 前缀匹配性能优化实战,附4种方式即执行计划判别
大数据·elasticsearch·性能优化
不像程序员的程序媛9 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
hhzz10 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
Jane Chiu10 小时前
Oracle DBMS_REDEFINITION(在线重定义)
数据库·oracle·分区表