RowKey 设计 | 学习笔记

简介: 快速学习 RowKey 设计。

开发者学堂课程【分布式数据库 HBase快速入门:RowKey 设计】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/101/detail/1766


RowKey 设计


内容介绍

一、RowKey 设计


一、RowKey 设计

一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey处于哪个一个预分区的区间内,设计 rowkey 的主要目的,就是让数据均匀的分布于所有的 region 中,在一定程度上防止数据倾斜。

接下来我们就谈一谈 rowkey 常用的设计方案。

1.生成随机数、hash、散列值

比如:

原本 rowKey 为1001的, SHA1 后变成,dd01903921ea24941c26a48f2cec24e0bb0e8cc7u

原本 rowKey 为3001 的, SHA1 后变成,49042c54de64a1e9bf0b33e00245660ef92dc7bdw

原本 rowKey 为 5001 的 , SHA1 后变成,7b61dec07e02c188790670af43e717f0f46e89134

在做此操作之前,一般我们会选择从数据集中抽取样本,来决定什么样的 rowKey 来 Hash 后作为每个分区的临界值。

2.字符串反转

20170524000001 转成 10000042507102

20170524000002 转成 20000042507102

这样也可以在一定程度上散列逐步 put 进来的数据。

for (Cell cell : cells) i

System. out.println("RK:" + Bytes.toString(CellUtil.cloneRow(cel1))

+",CF:"+Bytes.toString(Cellutil.cloneFamily(cell))

+ ",CN:" + Bytes.toString(Cellutil.cloneQualifier(cell))

+ ",VALUE:" + Bytes.toString(Cellutil.cloneValue(cell)));

}

}

3.字符串拼接

20170524000001_a12e

20170524000001_93i7

相关文章
|
4月前
|
分布式计算 关系型数据库 数据挖掘
实时数仓 Hologres产品使用合集之当使用动态分区管理功能按日期进行分区后,通过主键和segment_key进行时间范围查询性能变差是什么原因
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
3月前
|
Kubernetes 关系型数据库 MySQL
实时计算 Flink版操作报错合集之一张大表主键是多个字段组成的,按第一个主键的column划分出现了数据倾斜,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
分布式计算 关系型数据库 数据挖掘
实时数仓 Hologres产品使用合集之如果采用组合主键,比如id + 时间时间(字符串),做为组合主键后是否会导致数据倾斜呢
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
存储
分区表和分桶表(高频重点)
分区表和分桶表(高频重点)
185 0
|
SQL 分布式数据库 Apache
|
索引
《RowKey与索引设计:技巧与案例分析》电子版地址
RowKey与索引设计:技巧与案例分析
49 0
《RowKey与索引设计:技巧与案例分析》电子版地址
|
分布式数据库 Hbase
|
缓存 关系型数据库 MySQL
索引三表优化案例|学习笔记
快速学习索引三表优化案例
索引三表优化案例|学习笔记
|
关系型数据库 MySQL 开发者
索引两表优化案例|学习笔记
快速学习索引两表优化案例
106 0
索引两表优化案例|学习笔记
|
SQL 关系型数据库 MySQL
索引单表优化案例|学习笔记
快速学习索引单表优化案例
119 0