hbase字典顺序存储
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这一天 的数据。
column key
column key是rowkey之后,数据按rowkey字典排序后,如果rowkey相同,则是根据column key来排序的,也是按字典排序。
我们在设计table的时候要学会利用这一点。比如我们的收件箱。我们有时候需要按主题排序,那我们就可以把主题这设置为我们的column key,即设计为columnFamily+主题.,这样的设计。
timestamp
timestamp 时间戳,是第三维,这是个按降序排序的,即最新的数据排在最前面
hbase字典顺序存储的更多相关文章
- HBase应用
太多column family的影响 每个 MemoryStore分配到的内存较少,进而导致过多的合并,影响性能 几个column family比较合适呢 推荐是:1-3个 划分column fa ...
- HBASE学习笔记(四)
这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...
- HBase学习笔记(四)—— 架构模型
在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...
- Hbase详细架构图解
@ 目录 主要组件 数据模型 注意:Hbase是依赖zookeeper和hdfs的,需要启动zk和hdfs. 主要组件 Zookeeper: HBase 通过 Zookeeper 来做 Master ...
- Hbase的基本架构以及对应的读写流程
一.HBase简介 1,定义: HBase 是一种分布式.可扩展.支持海量数据存储的 NoSQL 数据库. 2,HBase的架构图: 架构角色: 1)Master Master是所有Region Se ...
- HBase高级特性、rowkey设计以及热点问题处理
在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式.列存储.支持实时读写.存储的数据类型都是字节数组byte[],主要用来处理结构化和半结构化数据,底层数据存储基于hdfs ...
- HBase面试
宕机问题: MapReduce读写HBase HBase特点: 1.大:一个表可以有上亿行,上百万列 2.面向列:面向列表(蔟)的存储和权限控制,列(蔟)独立检索 3.稀疏:对于为空(NULL)的列, ...
- HBase概念入门
HBase简介 HBase基于Google的BigTable论文而来,是一个分布式海量列式非关系型数据库系统,可以提供大规模数据集的实时随机读写. 下面通过一个小场景认识HBase存储.同样的一个数据 ...
- 大数据技术之HBase原理与实战归纳分享-上
@ 目录 概述 定义 特点 数据模型 概述 逻辑结构 物理存储结构 数据模型 应用场景 基础架构 安装 前置条件 部署 启动服务 高可用 Shell操作 基础操作 命令空间 DDL DML 概述 定义 ...
随机推荐
- Invalid argument value:无效参数值。原因是:把Session值user0当做username作为参数了。 而实际上此时username是user0的成员变量。参数应该是user0.getUsername();然后发现别人的List得加泛型,我的怎么不用加,运行报错,上网收了错误原因,因为导包错误,不小心导错包了,改为util.List包对了。
- HTML5 新模块元素兼容问题
新增块元素默认样式 下列HTML5新模块元素在IE8.9版本浏览器中没有被定义默认样式.为解决该问题,给下列元素添加“block”显示属性. 代码: article, aside, details, ...
- VMware Workstation 10 简体中文安装教程
分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 分享到 一键分享 QQ ...
- Mybatis 动态insert动态插入的坑
在写insert子句的时候,由于不知道需要插入多少字段,mybatis通过prefix,suffix,suffixOverrides很好的解决了该问题,实现了动态insert语句. 用这种动态插入时& ...
- 分离vue文件,方便后期维护
参考: https://www.cnblogs.com/wy120/p/10179901.html https://blog.csdn.net/sinat_36146776/article/detai ...
- Entity Framework Code First 模式-建立一对多联系
一.建立一对多联系 使用的例子为Product与Category,一个种类(Product)对应多个商品(Product) 1.外键列名默认约定 在“一”这边的实体增加一个集合属性(public vi ...
- springboot中activeMQ消息队列的引入与使用(发送短信)
1.引入pom依赖 <!--activemq--><dependency> <groupId>org.springframework.boot</groupI ...
- python 简单的图片比较
# by movie on 2019/12/18 from PIL import Image from PIL import ImageChops path1 = 'images/trumpA689. ...
- [JZOJ5232] 【NOIP2017模拟A组模拟8.5】带权排序
题目 题目大意 有一个数列AAA,数列上的每个数都是在[li,ri][l_i,r_i][li,ri]范围内随机的数. 将这个数列进行稳定排序,得到每个位置在排序后的排名pip_ipi. f(A) ...
- thinkphp 数据创建
在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['email'] ...