HBase表结构设计--练习篇】的更多相关文章

一.表结构操作 1.建立一个表scores,有两个列族grad和course [hadoop@weekend01 ~]$ hbase shell hbase(main):006:0> create 'scores','grade','course' 0 row(s) in 0.4120 seconds => Hbase::Table - scores 2.查看Hbase中的所有表 hbase(main):007:0> list TABLE hbase_student my_data ne…
  表结构设计之  高表  与 宽表 选择       HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table).         高表 : 列少而行多.          宽表 : 行少而列多.     根据之前介绍的 KeyValue 信息的筛选粒度信息,用户应当尽量将需要查询的维度或信息存储在行键中,因为他的筛选数据的效率最高.此外,HBase只能按行分片,因此高表更有优势.设想用户将一个电子邮件都存储在一行中.这在大部分情况下都是…
非常好的一个ppt   HBase Schema design: http://www.slideshare.net/cloudera/5-h-base-schemahbasecon2012…
Hbase的表结构设计与关系型数据库有很多不同,主要是Hbase有Rowkey和列族.timestamp这几个全新的概念,如何设计表结构就非常的重要. 创建 Hbase就是通过 表 Rowkey 列族 timestamp确定一行数据. 这与关系型数据库完全不同: 属性 HBase RDBMS 数据类型 只有字符串 丰富的数据类型 数据操作 简单的增删改查 不支持join 各种函数和表连接 存储模式 基于列式存储 基于表格结构和行式存储 数据保护 更新后仍然保留旧版本 替换 可伸缩性 轻易的增加节…
在 HBase(六): HBase体系结构剖析(上) 介绍过,Hbase创建表时,只需指定表名和至少一个列族,基于HBase表结构的设计优化主要是基于列族级别的属性配置,如下图: 目录: BLOOMFILTER BLOCKSIZE IN_MEMORY COMPRESSION/ENCODING VERSIONS TTL BLOOMFILTER: Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求…
本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info' hdfs上的文本文件如下[data/hbase_input/hbase.txt] 1,xiejl,20 2,haha,30 3,liudehua,40 4,daoming,41 可以通过命令查看hadoop的classpath现在包含哪些jar包: [hadoop@master ~]$ hdfs…
两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/details/37878701?utm_source=tuicool&utm_medium=referral hbase操做 hbase web操作 hbase shell 基本操作 1建表 具体命令 2建表后查看表describe 3清空表truncate lmj_test 4删除表 5修改表结构先…
1.RBAC 概述 2.表结构设计 2.1.用户表 2.2.角色表 2.3.权限表 2.4.用户角色(关系)表 2.5.角色权限(关系)表 3.总结 1.RBAC 概述 RBAC(Role-Based Access Control)即基于角色的访问控制,是一种权限设计思想.在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员来获得这些角色的权限.相较传统的访问控制(自主访问.强制访问)来说,RBAC 能更好的支持最小权限.责任分离和数据抽象等原则,极大地简化了权限的管理. 在一个组织中…
HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大表,下面我就和大家分享一下数据是如何存放在HBase表中的 为了更好的理解HBase表的思路,先回顾一下关系数据库中表的处理方式 ①关系型数据库的表结构 例如有一个用户表user_info,有字段:id.name.tel,表名和字段需要在建表时指定 create table user_info ( id 类型, name 类型, tel 类型 ) 然后插入两条数据 insert into user_info valu…
数据库表的结构设计可谓是ofbiz除技术框架之外,另一个非常值得学习的方向.这篇文章我们来谈谈ofbiz对电子商务会员表的设计. PARTY ofbiz对人.团体进行了抽象,称之为party,翻译为中文称之为"会员"(但我觉得抛开领域,如果你也有相关的设计需求,在其他领域可能称之为团体更合适).会员在ofbiz被设计为一个抽象的概念(对应到面向对象设计中,你可以称其为一个基类),它有两个具体的延伸(继承者):分别是PERSON以及PARTY_GROUP.数据库的E-R图: 这里PERS…
数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式:第二范式在第一范式的基础之上更进一层.第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言).也…
  HBase是Hadoop大数据生态技术圈中的一项关键技术,是一种用于分布式存储大数据的列式数据库,关于HBase更加详细的介绍和技术细节,朋友们可以在网络上进行搜寻,笔者本人在接下来的日子里也会写一个HBase方面的技术专题,有兴趣的朋友们可以稍微的期待一下.不过本章节的重点是介绍下HBase表数据的分页处理,其他的就不多说了. 首先说一下表数据分页中不可回避的一个指标:总记录数.在关系数据库中很容易统计出记录总数,但在HBase中,这却是一个大难题,至少在目前,朋友们根本不要奢望能够通过类…
目录: hdfs 命令操作本地 hbase Azure HDInsight HBase表数据导入本地 hbase hdfs命令操作本地hbase: 参见  HDP2.4安装(五):集群及组件安装 , 创建本地 hbase集群后,使用hadoop hdfs 命令在访问 hbase 存储数据时,数据在hdfs文件中的路径依赖于 hbase-site.xml 配置中hbase.rootdir参数,默认如下图: hdp2.4默认的目录地址为: hdfs://mycluster/apps/hbase/da…
Job端的变化: 通过设置conf,配置输出表,在reduce中获取输出表名字 Configuration conf = job.getConfiguration(); //输出表1 conf.set("usertag_output", "usertag"); //输出表2 conf.set("prodtag_output", "prodtag"); job.setReducerClass(LabelReducer.class…
  本博文的主要内容有    .hbase读取数据过程 .HBase表结构 .附带PPT http://hbase.apache.org/ 读写的时候,就需要用hbase了,换句话说,就是读写的时候.需要数据库. 在哪些领域,需要数据库? 只要做大量的数据存储,就需要用到数据库. 数据库比文件系统,提供了更好的功能:随机.实时的读写. 如果,在你业务场景里,对随机.实时的读写要求不高,可不可以用数据库呢?当然可以,但没这必要.就好像是大材小用. 对于随机.实时的读写要求高的场景,如实时在线读写的…
package com.bank.service; import java.io.IOException; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf.Configured;import org.apache.hadoop.fs.Path;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hba…
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=23916356&id=3321832 最近因为生产环境hbase中某张表的数据要导出到测试环境(数据不多,大概200W条左右),如果用程序掉接口导入的话太慢,所以考虑直接用 hbase的功能来导入导出.因为此次是实验,所以我在正式环境建了一张小表,只有两条数据,目的是将它导入到一张新表中(空表,但是表结构一样) hbase(main):004:0> scan 'xy…
HBase shell窗口进入 执行命令hbase shell HBase表的创建 # 语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}# 例如:创建表t1,有两个family name:f1,f2,且版本数前者为3,后者为1hbase(main)> create 't1',{NAME => 'f1', VERSIONS => 3},{NAME => 'f2',…
比较常用的数据库是关系型数据库,但很多场景下nosql数据库会更加擅长,从sql到nosql实施的第一步就是设计表结构,这是两种不同的思维方式,这里说下HBase表设计. 需求:需要一张stock表用于保存市场所有股票的分钟走向,即每个股票每分钟记录一次价格. 方案一:瘦表. 用stockId+datetime作为RowKey,这样方便通过stockId或datetime快速扫描获取到相关记录. RowKey ColumnFamily "stock_cf" stockId+dateti…
1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这 个region足够大了才进行切分.一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照 region分区情况,在集群内做数据的负载均衡. 预分区的一个例子: public static boolean createTable(HBaseA…
MySQL基于左右值编码的树形数据库表结构设计   在关系型数据库中设计树形的数据结构一直是一个十分考验开发者能力的,最常用的方案有主从表方案和继承关系(parent_id)方案.主从表方案的最大缺点是树形结构的深度扩展困难,一般来说都是固定的,适合深度固定的需求.继承关系方案设计和实现自然而然,非常直观和方便.缺点当然也是非常的突出:由于直接地记录了节点之间的继承关系,因此对Tree的任何 CRUD操作都将是低效的,这主要归根于频繁的“递归”操作,递归过程不断地访问数据库,每次数据库IO都会有…
1.建表高级属性 建表过程中常用的shell命令 1.1 BLOOMFILTER 默认是 NONE 是否使用布隆过虑及使用何种方式,布隆过滤可以每列族单独启用 使用HColumnDescriptor.setBloomFilterType(NONE|ROW|ROWCOL)对列族单独启用布隆 - Default = ROW 对行进行布隆过滤 - 对 ROW,行键的哈希在每次插入行时将被添加到布隆 - 对 ROWCOL,行键 + 列族 + 列族修饰的哈希将在每次插入行时添加到布隆 使用方法: crea…
说明:近期做部分表结构设计,在word里设计调整好了,需要整理到PowerDesigner中,但是手工录入太麻烦. 找了个工具(地址:http://www.cnblogs.com/hwaggLee/p/5542078.html),将其做了部分修改和完善,并支持多个表同时导入. 使用方法: 1.整理Excel.文件名为Temp.xlsx,放到D:根盘目录下.每个sheet页是一个表,格式如下: 2.打开PowerDesinger,新建模型 3.打开命令执行功能. 4.将脚本复制到窗口中,点Run,…
表结构设计1详细注释代码 # _*_coding:utf-8_*_ __author__ = 'luoahong' from assets.myauth import UserProfile from django.db import models class Asset(models.Model): asset_type_choices = ( ('server', u'服务器'), ('networkdevice', u'网络设备'), ('storagedevice', u'存储设备'),…
hive与hbase表结合级联查询的问题,主要hive两个表以上涉及到join操作,就会长时间卡住,查询日志也不报错,也不会出现mr的进度百分比显示,shell显示如下图 如图: 解决这个问题,需要修改配置hive-site.xml,添加如下配置: <property> <name>hive.auto.convert.join</name> <value>false</value> </property> hive.auto.conv…
1.背景调研: 目前存在的hbase数据迁移主要分如下几类: 根据上图,可以看出: 其实主要分为两种方式:(1)hadoop层:因为hbase底层是基于hdfs存储的,所以可以通过把hdfs上的数据拷贝的方式来实现,即:DistCp. (2)hbase层:主要是基于hbase数据层的 CopyTable:需要scan全表数据,效率比较低下 Export/Import:scan全表数据到文件然后再import其他集群上 Snapshot:通过快照的方式,只对元数据进行克隆,不拷贝实际数据,因此性能…
一.HBase表的基本结构 1.概述: 平时常见的MySQL.Oracle数据库都是传统型关系数据库,它们都是按行查询.按行存储:而HBase为非关系型数据库,它是按列存储的的. 在HBase插入数据时,先输入数据的格式为rowkey => info => column => value rowkey:行键,唯一且不重复 info:列族(数量一般不超过3个) column:列(在列族下,一个列族下可有许多个列) value:值 timestamp:时间戳 cell:单元格 表的基本结构如…
商品规格表结构设计 商品规格包括规格组合.规格项,规格项为规格组的成员. 规格组 |-规格项:规格值 |-规格项:规格值 规格组 |-规格项:规格值 |-规格项:规格值 同一类商品的规格相同. 方案一 使用多个表存储商品规格.在已有的商品分类表和商品表的基础上,增加商品规格分组表.商品规格项表.商品规格值表. 表设计 商品表:tb_item 列名       类型       键   说明 item_id  bigint     P     商品id cat_id    bigint     F…
说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少.与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位. 先前设计 idusernamepassword用户名加上密码,解决简单需求,留个id作为其他表的外键.当然,那时候密码还可能是明文存储,好点的知道md5. 后来呢,随着业务需求的拓展,要加个用户状态 st…
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-2.6.5 hbase-0.98.12.1-hadoop2 HBase中表的设计 主要是将原来的关系解开 问题: 例子: 表设计一: 表设计二: 这是一个双向查询,根据人员查角色,根据角色查人员 问题: 0为顶级部门,1为子部门 放到一张表中不会对效率产生影响,因为HBASE是海量存储,海量读写的. Redis是一个内存数据库,新浪微博是使用R…