HBase RowKey的设计原则
1.什么是HBase
1.HBase是面向列式存储的分布式的NoSql数据库;
2.HBase底层是基于HDFS实现的,集群是通过Zookeeper管理的;
3.海量存储,快速访问。
2.什么是RowKey
RowKey与关系型数据库中的主键相似,HBase 使用 RowKey 来唯一标识某行的数据。
3.RowKey的设计原则
- 业务
需要满足实时查询需求 - 散列
避免热点数据,使数据集中在一个Region上,查询速率低 - 唯一
必须保证RowKey的唯一性,由于在HBase中数据存储是Key-Value形式,若向HBase中同一张表插入相同RowKey的数据,则原先存在的数据会被新的数据覆盖 - 长度
RowKey的长度不宜过长,不宜超过16个字节,目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用了操作系统的最佳特性,hbase将部分数据加载到内存当中,如果rowkey过长,内存的有效利用率就会下降
3.1 散列原则的RowKey设计方法
- 预分区的设计,比如预先设计10个region;
- Salt加盐,在 rowkey前面加了一个随机前缀,使其不同于 rowkey之前的开头。前缀类型的分配数量应该与您希望使用数据分布到不同 region的数量一致。在加盐之后, rowkey将基于随机生成的前缀分布在各个 region上,以避免出现热点;
- Hash或者Mod,目的都是散列数据,达到负载均衡,Hash和加盐区别在于前缀不是随机的,通过确定Hash,客户端可以重建完整的RowKey,直接通过get获取想要的行
- Reverse反转,针对固定长度的Rowkey反转后存储,这样可以使Rowkey中经常改变的部分放在最前面,可以有效的随机rowkey。例如手机号就可以使用反转。
HBase RowKey的设计原则相关推荐
- 【Hbase】(十一)详解 HBase 表的设计原则
文章目录 一.建表高级属性 1. BLOOMFILTER 2. VERSIONS 3. COMPRESSION 4. TTL 5. alter 6. describe/desc 7. disable_ ...
- Habse中Rowkey的设计原则——通俗易懂篇
Hbase的Rowkey设计原则 一. Hbase介绍 HBase -> Hadoop Database,HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它 ...
- HBase行键设计原则
[原理] HBase是一个分布式的.面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式. 既然HBase是采用KeyVa ...
- Hbase中RowKey的设计原则和热点问题
Rowkey设计需要遵循三个原则,即长度原则.散列原则.唯一原则. 1. 长度原则 由于Rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10- 100bytes,以b ...
- hbase行健设计原则
行健的设计问题 行健的热点问题 是由于行健相似.连续且数据量过大操作成单region的数据量过大,进而影响读写效率 行健应该尽量的随机.不要出现连续行健. 常见的行健设计就是,比如手机号码倒置+时间戳 ...
- 大数据_MapperReduce_Hbase的优化_RowKey设计原则---Hbase工作笔记0028
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们接着去看一下,这个rowkey的设计原则,这个在面试的时候是个重点. 可以看到我们的这个r ...
- 干货 | 大白话彻底搞懂 HBase RowKey 详细设计
作者 | 且听风吟 责编 | Carol 封图 | CSDN 付费下载于视觉中国 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中的分布,还会影响我们查询效率, ...
- 用大白话彻底搞懂 HBase RowKey 详细设计
来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...
- 用大白话彻底搞懂 HBase RowKey 详细设计!
来源 | 且听_风吟 来源 | CSDN 博客,责编 | Carol 封图 | CSDN 付费下载于东方 IC 前言 RowKey作为HBase的核心知识点,RowKey设计会影响到数据在HBase中 ...
最新文章
- Intellij IDEA 2020.1 的Plugins 搜索不了插件,连接超时
- 高通转战服务器 能否撼动英特尔统治地位
- 2019-11-10 等价、相似、合同的一些概念
- H.263 H.263+ Payload Type
- 密码编码学之AES及其工作模式详解
- linux 文件乱码_RedHatlinux系统虚机启动后/etc/fstab中的文件系统未能挂载上
- DNS欺骗的艺术 | 域名劫持和网页挂马
- bp神经网络预测模型实例,bp神经网络模型的建立
- NetSarang旗下网络通讯系列产品v5版本更新合集丨附下载
- 心理学上的被动_心理学基本原理之二 : 主动与被动原理
- 树莓派python调用摄像头拍照
- SPI驱动之南瑞NRSEC3000加密芯片驱动开发总结
- 夏普清除小太阳和小人的方法
- 计算机solidwork实训报告,SolidWorks实训报告.doc
- 一种基于视频帧差异视频卡顿检测方案
- MySQL用逗号进行拼接、以逗号进行分割
- MySQL数据库初体验
- 路由器的工作原理——微云网络
- 说一说我们合肥黑马程序员
- Qt基于定时器实现简单动图展示(2例)
热门文章
- PhotoView——支持图片缩放、平移、旋转的一个优雅的三方组件
- Atlas 200dk官方镜像制作
- 职场内把一个PPT做成了书页翻卷效果-我的天哪快来看怎么做的吧
- WIN7激活显示 系统保留分区未分配驱动器号,怎么分配?求解!!!!!
- 小白必看!关于欧盟商标注册须知事项?
- java小窗打不开_JAVA做个小窗口时候为什么用SetLayout(null)时候窗口里什么东西都不显示?...
- linux中chkconfig命令的作用,Linux下chkconfig命令详解
- 3_读取遥感影像信息
- TortoiseGit 显示文件状态图标
- intellij idea远程开发remote