分布式数据库HBase表设计



比较常用的数据库是关系型数据库,但很多场景下nosql数据库会更加擅长,从sql到nosql实施的第一步就是设计表结构,这是两种不同的思维方式,这里说下HBase表设计。



需求:需要一张stock表用于保存市场所有股票的分钟走向,即每个股票每分钟记录一次价格。


方案一:瘦表。

  • 用stockId+datetime作为RowKey,这样方便通过stockId或datetime快速扫描获取到相关记录。
RowKey ColumnFamily “stock_cf”
stockId+datetime stock_cf:price
“00000120160615100000” 10.02
“00000120160615100001” 10.10
“00000120160615100002” 10.08
“00000220160615100000” 8.00
“00000220160615100001” 8.10
“00000220160615100002” 8.20
 craete 'stock' , 'stock_cf'

优点:不受记录数限制,通过id查询时能很快跳过行,拥有很好的扩展性,高表也是推荐的用法。
缺点:不利于原子性,hbase只有行具备原子性。

方案二:宽表。

  • 用stockId作为RowKey,datetime作为列,随着时间增长列会不断地增加,获取某个时间的记录将时间作为列。一个表的列族不要超过3个。
RowKey ColumnFamily “stock_cf”
stockId “stock_cf:20160615100000” “stock_cf:20160615100001” “stock_cf:20160615100003”
000001 10.02 10.10 10.08
000002 8.00 8.10 8.20
 craete 'stock' , 'stock_cf'

优点:更好的事务性。
缺点:宽表列数最多到百万级别,可扩展性较差。



后面有时间会写些hbase源码及其维护的相关的文章。

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

时间: 2024-11-18 19:05:19

分布式数据库HBase表设计的相关文章

Hadoop白皮书(2):分布式数据库HBase简介

HBase 是一个面向列的分布式数据库.HBase 不是一个关系型数据库,其设计目标是用来解决关系型数据库在处理海量数据时的理论和实现上的局限性.传统关系型数据库在上世纪七十年代为交易系统设计,以满足数据一致性 (ACID)为目标,并没有考虑数据规模扩大时的扩展性,以及单点系统失效时的可靠性.虽然经过多年的技术发展,产生了一些对关系性数据库的修补(并行数据库),然而受限于理论和实现上的约束,扩展性从来没有超过 40 个服务器节点.而 HBase 从一开始就是为 Terabyte 到Petabyt

什么是面向列开源分布式数据库Hbase - 产品和技术

什么是面向列开源分布式数据库Hbase 发布时间:2012.04.16 14:41      来源:和讯     作者:和讯 HBase是一个分布式的.面向列的开源数据库,由Apache基金会开发.HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.它基于列的而不是基于行的模式.用户存储数据行在一个表里.一个数据行拥有一个可选择的键和任意数量的列.用户可根据键访问行,以及对于一系列的行进行扫描和过滤.HBase一个可以横向扩张的表存储系统,能够为大规模数据提供速度极快的低等

分布式数据库的存储设计改进

  分布式数据库的存储设计改进       目录 背景... 4 核心思想... 5 负载情况... 5 数据分布规则... 7 基本均衡策略... 8 列表... 8 范围... 9 取余(节点数为除数,即除以节点数取余数) 9 基本均衡策略的分析... 10 基本均衡策略下的数据重新分布... 11 组合均衡策略... 13 两个基本均衡策略的组合... 13 三个基本均衡策略的组合... 15 数据动态重新分布... 19 场景... 19 业务影响分析... 20 如何处理数据重新分布.

数据仓库专题(4)-分布式数据仓库事实表设计思考---讨论精华

一.前言 陆续有各位兄弟参加大讨论,提出了各种问题,关于分布式环境下,维表和事实表设计,进行了比较深入的探讨,在此汇集整理,分享给大家.希望能有更多人参与尽力啊,共同探索分布式数据仓库数据模型的设计. 二.纪要 [活跃]北京-RTB-胖哥(1106110976) 10:21:36  分布式模式下事实表设计思考: 做大做强事实表,做小做弱维表: [冒泡]杭州-电子病历<ruanjizhou@qq.com> 10:23:31  能举例子说明吗? 您这句话,我似懂非懂,但是确实在临床上又有非常多的问

HBase学习总结(5):HBase表设计

一.如何开始模式设计 当我们说到模式(schema),要考虑以下内容: (1)这个表应该有多少个列族? (2)列族使用什么数据? (3)每个列族应该有多少列? (4)列名应该是什么?(尽管列名不必在建表时定义,但是读写数据时是需要知道的.) (5)单元存放什么数据? (6)每个单元存储多少个时间版本? (7)行键结构是什么?应该包括什么信息? 1.问题建模 一个特定列族的所有数据在HDFS上会有一个物理存储.这个物理存储可能由多个HFile组成,理想情况下可以通过合并得到一个HFile.一个列族

分布式数据库 Hbase 的高可用管理和监控(一)

HBase 作为 BigTable 的一个开源实现,随着其应用的普及,越来越被各大企业应用于海量数据系统中.本文将向读者简要介绍 Apache HBase 的基本知识,并展开介绍 IBM 对 HBase 的改进和扩展,HBase Master 多结点高可用支持,以及如何利用 IBM BigInsights 在 IBM Hadoop 集群中对 HBase 服务和作业提交进行监控和管理.本文将帮助读者在大数据云计算 Hadoop 集群应用中利用 HBase 更加高效.直观.便捷地进行存储,查询和优化

数据仓库专题(3)-分布式数据仓库事实表设计思考

一.前言 最近在设计数据仓库的数据逻辑模型,考虑到海量数据存储在分布式数据仓库中的技术架构模式,需要针对传统的面相关系型数据仓库的数据存储模型进行技术改造.设计出一套真正适合分布式数据仓库的数据存储模型. 二.事实表设计基础       事实表记录发生在现实世界中的操作型事件,其所产生的可度数值.事实表的设计完全依赖于物理活动,不受可能产生的最终报表的影响.事实表中,除数字度量外,事实表总是包含外键,用于关联与之相关的维度,也可以包含退化的维度键和日期/时间戳. 三.传统模式 以FS-LDM数据

分布式数据库 HBase

http://www.aliyun.com/zixun/aggregation/13713.html">HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统:Google运行MapReduce来

分布式数据库 Hbase 的高可用管理和监控(二)

图 5. BigInsights Web 管理界面 在 BigInsights Web 管理界面中点击"Cluster Status"页面,可以实现对 http://www.aliyun.com/zixun/aggregation/13713.html">HBase, Zookeeper 以及其他模块状态的监控.启停. "Cluster Status"页面左上方分别列出 BigInsights 集群中所有组件的服务的运行状态.可以看到所有服务目前都处