做ETL,设计HBase有段时间了,虽然还是很不成熟,但是有点小小经验,做个笔记
HBase暂不谈他负载均衡,容灾性能这堆,只说他在应用上的一些小小经验作为第一节
先谈谈rowkey cf cq的设计
keyvalue的结构是
------------- | ---- | --------Key--- | -------- | -------- | ------------ | -------- | |||
key length | value length | row length | row |
column family length |
column family |
column Qualifer |
time stamp | key type | value |
Hbase的存储数据结构是基于B+Tree的LSM tree
所以设计好rowkey cf cq是提高hbase查询速度的关键,尤其是rowkey,因为如果一次匹配只在rowkey就可以前缀匹配出,则将省略了遍历了巨大的cq。
rowkey
在工作中的物理模型,通常现在考虑建立在哪个维度上,因为通常会对这个维度进行操作,如对信息中人这个维度进行建模,就需要将人的唯一标识放在rowkey中(有时维度的标识不会只有一个名词性属性,如地理位置:经度+维度)。
之后需要考虑对于这个物理模型中的通用属性,如时间戳,数据源类型等这种通用属性,也需要拼接在rowkey中,举个例子人id_Long.Max-time_sourceid这样的一个rowkey,就可以在人这个维度上,找到时间段time上执行数据源sourceid的记录了。
cf
对于hbase的cf,个人不太建议使用,首先hbase的cf不是很成熟,在region split和file split的时候,多个cf的效果都不好;而且在设计上,cf的确在理论上可以在一个表建立多个维度,但是多个cf在实际中的优点暂时没有看出来(可能是因为工作局限性所导致)
cq
对于cq,因为是B+Tree的最后一层,而且hbase这个列式存储不对key进行压缩(很可惜,可能不想违背列式存储数据只在最后数据获取才解压的原则),所以首先不建议把cq设计的过长。cq也是支持前缀匹配的,而且因为hbase是列式存储,非结构化得数据,所以cq上可以有value这样的值,在反向索引中,会经常这样设计。
反向索引
hbase是列式存储,所以没有索引这样的东西。但是要是想通过hbase表中列的值,获得rowkey,那么就需要反向索引了,反向索引一般rowkey就是查询内容如手机号值,或查询类型_查询内容,cq为主表rowkey,value可以设置为一些权重,时间戳等附加信息,或是主表rowkey中一些常用信息,如人的姓名,这样就可以减少一次查询
统计
数据挖掘中,关联和统计恐怕是各占半壁江山,比起关联,统计还是比较简单的。
统计是按照新的维度,对现有的信息进行分类,并获得所要的维度属性,如次数,top等等。
比如,从刚刚那个表 rowkey:人id_long.max-time_sourceid 中,获得每天登陆某某网站次数最多的前100人
设计的物理模型为:rowkey:yyyyMMdd_long.max-count_人id cq:人属性类型 value: 人属性值
在统计时,只需要对人+天这两个维度做分类,同时需要sourceid为某某网站,做求和计算,就可以得出count值,在最后存储时,保存成物理模型的样子就可以了。
下一节的物理模型想谈谈建模
相关推荐
Hbase思维导图之物理模型
Hbase的物理模型及逻辑模型的简单介绍。
hadoop 集群环境下 hbase 的shell 基本操作命令
本文来自于csdn,主要为对HBase简介,HBase数据模型及物理模型,HBase架构及工作原理。HBase是一个构建在HDFS之上的,分布式的、面向列的开源数据库HBase是GoogleBigTable的开源实现,它主要用于存储海量数据个人...
本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构,HBase调优、HBase Shell访问等。
├─01_讲义 │ Day15[Hbase 基本使用及存储设计].pdf │ ├─02_视频 │ Day1501_Hbase的介绍及其发展.mp4 │ Day1502_Hbase中的特殊概念.mp4 ...│ Day1511_Hbase的物理模型.mp4 │ Day1512_Hbase的存储模型.mp4
本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构,HBase调优、HBase Shell访问等。
HBase官方指南——数据模型篇
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
hbase-1.2.3-bin.tar.gz 本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构,HBase调优、HBase Shell访问等
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
第一章 HBase入门 1. 简介 2. 集群搭建 3. HBase数据模型 4. 常用shell操作 5. shell管理操作 6. Hbase Java编程 7. HBase高可用 8. HBase架构 第二章 陌陌海量存储案例 1. 案例介绍 2. 打招呼消息数据集介绍 3. ...
1. HBase有哪些基本的特征? 1 HBase特征: 1 2. HBase相对于关系数据库能解决的问题是什么? 2 HBase与关系数据的区别? 2 HBase与RDBMS的区别? 2 3. HBase的数据模式是怎么样的?即有哪些元素?如何存储?等 3 1...
HBase思维导图,便捷整理思路,HBase简介、HBase架构、HBase数据模型、HBase角色
一、Hbase数据库概述; 二、Hbase体系结构; 三、Hbase数据库模型; 四、总结Hbase整体特点; 五、案例:搭建Hbase分布式数据库系统
HBase开发实战,HBase学习利器:HBase实战
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
第 2 节 HBase数据模型HBase的数据也是以表(有行有列)的形式存储HBase逻辑架构HBase物理存储概念描述NameSpace(数据库)命名空间,类
HBase概述——HBase的存储模型.pdf 学习资料 复习资料 教学资源
HBase 官方文档.pdf HBase的操作和编程.pdf HBase Cpressr优化与实验 郭磊涛.pdf null【HBase】Data Migratin frm Gri t Clu Cmputing - Natural Sienes .pdf 分布式数据库HBase快照的设计与实现.pdf 【HBase】...