Hbase schema 表设计教程整理版
近期在互联网上搜集了大量的关于 Hbase Schema 设计相关的教程,现综合在
一起,希望给向我一样在摸索 hbase Schema 设计的人一些启发。Hbase、Nutch、
Hadoop、Zookeeper 方面相关的讨论希望大家跟我交流,beyiwork@gmail.com 。
声明:此文章中涉及的资料部分来源于网上,本自由之精神传播于大众,若
有侵权,请及时联系我,即刻删除。
第一部分:Hbase Schema design 总述
HBase 与 RDBMS 的区别在于:HBase 的元(Cell,可理解为每条数据记录中
的数据项)是具有版本描述的(versioned),行是有序的,列(qualifier)在所属
列簇(Column families)存在的情况下,由客户端自由添加。以下的几个因素是
Hbase Schema 设计需要考虑的问题:
1. Joins
Hbase 中没有 joins 的概念,但是,大表的结构可以使得不需要 joins 的存
在而解决这一问题,你要考虑的是,一条行记录,加上一个特定的行关
键字,实现把所有关于 joins 的数据并在一起。
2. Row keys
对你的 Rowkey 要做一番思考,它非常重要。以存储天气数据为例,复合
的 Rowkey 由监测站(station)作为前缀(方便把某监测站的天气数据聚
在一起),倒置的时间串作为 Rowkey 的后缀可以使温度等天气数据从新
到旧排列。
如果你的 Rowkey 是整型的,用二进制的方式应该比用 String 来存储一个
数据更节约空间。