HBase1.2官方文档——HBase and Schema Design

HBase 和 Schema 设计

一份关于各种非关系型数据库的优点和缺点的通用介绍,就是 Ian Varley的博士论文, No Relation: The Mixed Blessings of Non-Relational Databases。它的作成时间距今有一点长,但如果你有时间去了解HBase schema建模方式和RDBMS有什么不同的话,它可以作为很好的背景知识阅读材料。也可阅读 keyvalue 和 schema.casestudies,了解HBase如何内部保存数据。

在Cloud Bigtable website上的文章,Designing Your Schema,写的很不错,并且在那里列出的要学习的课程和这里关于HBase的应用相同,只是引用的数值要除以10才能在HBase上工作。

例如,那里说个体值可以在 10MB,Cloud Bigtable的最大列族数为100,要想HBase可以做的和Cloud Bigtable一样,考虑HBase的列族数在10以内

33. 模式创建Schema Creation

HBase模式(schema)可以由The Apache HBase Shell 或Java API Admin 创建或更新。

当修改列族时,表必须禁用,例:

Configuration config = HBaseConfiguration.create();
Admin admin = new Admin(conf);
TableName table = TableName.valueOf("myTable");

admin.disableTable(table); //禁用表

HColumnDescriptor cf1 = ...;
admin.addColumn(table, cf1);      // adding new ColumnFamily
HColumnDescriptor cf2 = ...;
admin.modifyColumn(table, cf2);    // modifying existing ColumnFamily

admin.enableTable(table);

参考client dependencies,获取更多配置客户端连接的信息。

0.92.x支持在线修改模式,但是0.90.x则需要禁用表。

33.1. 模式更新Schema Updates

当表或列族改变时(如 region size, block size), 这些改变在主紧缩(major compaction)执行及存储文件(StoreFiles)重写后才起作用。

参考 store 获取StoreFiles的更多信息。

34. 表模式经验法则 Table Schema Rules Of Thumb

有很多带有不同的访问方式和服务期望的不同的数据集,因此这些经验法则只是一个概括。阅读本章剩余内容可以在你看过这个列表后获得更多细节。

  • 把Region的大小设定在10到50GB
  • 不让单元大于10MB,或者如果使用mob(中等大小对象) 则不让单元大于50MB。否则,就考虑把单元数据存到HDFS中,只把数据的存储指针存到HBase中。
  • 一个典型的模式是每个表有1到3个列族。HBase表不应该被设计成仿效关系型数据库表的表。
  • 对于一个有1个或2个列族的表来说,region数在50到100左右是一个很好的数字。记住一个region是一个列族的一个连续分段。
  • 列族名尽可能短。对于每个value(忽略前缀编码),列族名会存储一次。列族名不应该像RDBMS里的列名一样可以自我描述。
  • 如果你存储的是基于时间的机器数据或日志信息,且row key行键是基于 设备ID或服务ID+时间的话,你可以以一种模式使老数据的分区不再接收超过一定时间的数据的写入。在这种情况下,你最终得到的是少量的激活状态下的region和大量的没有新数据写入的老region。这种情况下,你可以容忍大量的region因为你的资源消费只是由激活状态下的region驱动。
  • 如果仅有1个列族忙着写,则只有那个列族在占用越来越多的内存。在分配资源时要注意写模式。
时间: 2024-08-26 07:34:47

HBase1.2官方文档——HBase and Schema Design的相关文章

HBase 官方文档0.90.4

HBase 官方文档0.90.4 Copyright ? 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision 0.90.4 配置,数据模型使用入门 Abstract 这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库. 我(译者)熟悉Hbase的源代码,从事Hbase

hbase官方文档(转)

Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Software Foundation.保留所有权利. Apache Hadoop, Hadoop, MapReduce, HDFS, Zookeeper, HBase 及 HBase项目 logo 是Apache Software Foundation的商标. Revision History Revision 0.95-SNAPSHOT 2012-12-03T13:38 中文版

hBase官方文档以及HBase基础操作封装类

HBase 官方文档 0.97 http://abloz.com/hbase/book.html HBase基本操作 package cn.crxy.spider.utils; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HColum

使用oracle官方文档(11G)简单举例

使用oracle官方文档(11G)举例 以下正是oracle官方文档界面,想要学好oracle,读官方文档是必经之路,此文为给初学者大致了解官方文档的使用,对官方文档有一个更直观的认识.文档可通过文章关联的链接查看到,或登录到oracle官网查看(内容更加丰富). <官方文档>阅读来源 官网链接:Oracle11G官方文档      下载地址:Oracle11G官方文档下载 以下,简单几个例子,帮助读者对于文档的使用有进一步的理解: [举例1]:在Windows下远程连接数据库使用的指令是什么

Hive官方文档

Hive官方文档 内容列表 Cloudera制作的Hive介绍视频 安装与配置 系统需求 安装Hive发行版 从Hive源码编译 运行Hive 配置管理概览 运行时配置 Hive, Map-Reduce 与本地模式 错误日志 DDL 操作 元数据存储 DML 操作 SQL 操作 查询示例 SELECTS 和 FILTERS GROUP BY JOIN MULTITABLE INSERT STREAMING Simple Example Use Cases MovieLens User Ratin

Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

在前面的文档中讲解了Spring MVC的特殊beans,以及DispatcherServlet使用的默认实现.在本部分,你会学习两种额外的方式来配置Spring MVC.分别是:MVC Java config 和  MVC XML namespace. 原文: Section 22.2.1, "Special Bean Types In the WebApplicationContext" and Section 22.2.2, "Default DispatcherSer

官方文档 恢复备份指南三 Recovery Manager Architecture

本节讨论以下问题: About the RMAN Environment                        关于RMAN环境 RMAN Command-Line Client                            RMAN命令行 RMAN Channels                                                      RMAN通道 RMAN Repository                                

常用SQL_官方文档使用

SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于select关键字完成,查询语句是SQL语句中最复杂,功能最丰富的语句. ②DML(Data Munipulation Language,数据操作语言)语句,DML语句修改后数据将保持较好的一致性:操作表的语句,如增插insert.更新update.删除delete等: ③DDL(Data Defini

官方文档 恢复备份指南二 Getting Started with RMAN

本章对RMAN进行基本的熟悉和了解 1.Overview of the RMAN Environment RMAN运行时需要的最小环境: target database          :RMAN用target命令连接的数据库,在该数据库上执行备份和恢复操作,并备份信息(RMAN reposity 资源库)记录在target数据库的控制文件中. RMAN client              :rman客户端,即RMAN可执行程序.在$ORACLE_HOME/bin下 RMAN运行时可能需要