HBase总结(十八)Hbase rowkey设计一
hbase所谓的三维有序存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)三部分组成的三维有序存储。
1.rowkey。我们知道rowkey是行的主键,并且hbase仅仅能用个rowkey,或者一个rowkey范围即scan来查找数据。所以 rowkey的设计是至关重要的,关系到你应用层的查询效率。我们知道。rowkey是以字典顺序排序的。而存储的字节码,字典排序,我们知道,假设是字
母,那就是字母的顺序,比方,有两个rowkey,rowkey1:aaa222,rowkey2:bbb111,那么rowkey1是排在 rowkey2前面的,由于按字典,a排在b前面,假设rowkey2的第一位也是a,那么就依据第二位来比較,假设还相同,则比較第三为。后面相同。这 个理解了,我们在依据rowkey范围查询的时候,我们通常是知道startRowkey,假设我们通过scan仅仅传startRowKey : d开头的。那么查询的是全部比d大的都查了,而我们仅仅须要d开头的数据,那就要通过endRowKey来限制。
我们能够通过设定endRowKey为:d
开头。后面的依据你的rowkey组合来设定,通常是加比startKey大一位。
比方说rowkey设计为:用户ID-日期,那么查某个用户某天的数 据,startKEY为3231-20121212,endKey为:3231+201213,那么你查到的就是用户为3231在20121212这一天 的数据。
2.column key
column key是第二维,数据按rowkey字典排序后,假设rowkey同样。则是依据column key来排序的。也是按字典排序。
我们在设计table的时候要学会利用这一点。比方我们的收件箱。我们有时候须要按主题排序。那我们就能够把主题这设置为我们的column key。即设计为columnFamily+主题.,这种设计。
3.timestamp
timestamp 时间戳,是第三维。这是个按降序排序的,即最新的数据排在最前面。这个就没有什么说的了。
网上其它的博客也提到比較多。
本文章主要是简单说下rowkey的字典排序即(三维有序)
HBase总结(十八)Hbase rowkey设计一的更多相关文章
- Hbase 学习(七) rowkey设计
一直以来对rowkey的设计都比较迷茫,<hbase权威指南>倒是给出了个还算靠谱的例子. 下面这个例子有点儿像帖子表结构,它的rowkey设计是这样的,可以简单的理解为,什么人在什么时间 ...
- HBase(十)HBase性能调优总结
一. HBase的通用优化 1 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整 ...
- Hbase对hive的支持没有hdfs的好的原因 及hbase什么时候使用 及rowkey设计技巧
hive-=mareduce 的 split 在 hbase就是 region了,,,,,,,访问region必须通过hregionserver 会造成regionser负担过大, 另外 reg ...
- Hadoop HBase概念学习系列之RowKey设计(二十九)
HBase里的RowKey设计,分为随机查询的RowKey设计和连续查询的RowKey设计.
- HBase学习(四) 二级索引 rowkey设计
HBase学习(四) 一.HBase的读写流程 画出架构 1.1 HBase读流程 Hbase读取数据的流程:1)是由客户端发起读取数据的请求,首先会与zookeeper建立连接2)从zookeepe ...
- Hbase Rowkey设计
转自:http://www.bcmeng.com/hbase-rowkey/ 建立Schema Hbase 模式建立或更新可以通过 Hbase shell 工具或者使用Hbase Java API 中 ...
- HBase的RowKey设计原则
HBase是三维有序存储的,通过rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据进行快速定 ...
- 大数据性能调优之HBase的RowKey设计
1 概述 HBase是一个分布式的.面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式. 既然HBase是采用KeyValue ...
- Hbase笔记——RowKey设计
一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...
随机推荐
- 最小生成树的Prim算法
构造最小生成树的Prim算法 假设G=(V,E)为一连通网,其中V为网中所有顶点的集合,E为网中所有带权边的集合.设置两个新的集合U和T,其中集合U用于存放G的最小生成树的顶点,集合T用于 ...
- [c] 段错误(core dump): 一个格式化输出引起的问题
#include <stdio.h> int len = sizeof(int); printf("%s\n",len); /* 编译的时候是没问题的,运行的时候就报错 ...
- 51nod 1082 与7无关的数【打表/预处理】
1082 与7无关的数 题目来源: 有道难题 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 一个正整数,如果它能被7整除,或者它的十进制表示法中某个 ...
- 关于 hibernate 中 hashCode爆栈的探讨
今天在 hibernate 的一对多映射测试 merge 方法时,出现了以下的异常: 我们可以看到,这里的错误有非常明显的重复性,很显然是做了间接递归,并且递归的调用是 hashMap 中的hashC ...
- hadoop学习二:hadoop基本架构与shell操作
1.hadoop1.0与hadoop2.0的区别:
- 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP)
layout: post title: 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP) author: "luowentaoaa" catalog: true ...
- 18、Django实战第18天:课程机构收藏功能
这里点击"收藏"也是ajax异步操作,我在operation.model.py中创建了一个用户收藏表,其中fav_id字段,如果我们收藏的是课程,那就是课程id,如果收藏的是课程机 ...
- IntelliJ 常用设置
一.智能代码提示忽略大小写 打开设置(CTRL+ALT+S)搜索editor,找到“Code Completion”->点击Case sensitive completion后面的选择框,选中N ...
- Android中将Bitmap转换成单色的Bmp图片
添加权限 :
- Mac下Git的安装和卸载
1.安装最新版本:https://git-scm.com/download/mac,下载pkg进行安装 2.卸载:运行/usr/local/git/uninstall.sh