彻底反规范化
分布式关系型数据库(MPP)上的数据分布
在 Hadoop,例如 Hive、SparkSQL 上建立维度模型,要很好地舆铰一?技巧上的核心特点,就是它和分布式关系型数据库(MPP)上的建立方法是不一样的。在 MPP 中的节点上分布数据,可以控制每条数据记录的地位。基于分区策略,例如 Hash、List、Range 等,可以在同一个节点上跨表同定位(co-located)各个记录的键值。因为数据的局部性获得包管,接洽关系速度会异常快,因为不须要在收集上发送任何数据。参考下面图示的例子,在 ORDER 和 ORDER_ITEM 表中有雷同 ORDER_ID 的记录存储在同一节点上:
ORDER 和 ORDER_ITEM 表中 ORDER_ID 对应的键值,在雷同的节点做到同定位。
为什么须要为数据建模?
Hadoop上的数据分布
数据分布在基于 Hadoop 的体系中是异常不合的,我们将数据瓜分成大年夜型的块(chunks),并在 Hadoop 分布式文件体系(HDFS)的各个节点进行分发和复制。这种数据分发策略不克不及包管数据的一致性。参考下面图示的例子,记录 ORDER_ID 的键被存储在不合的节点:
为了接洽关系它们,须要在收集上发送数据,如许做会影响机能。
处理这个问题的一个策略,是在集群的所有节点上复制要接洽关系的表,该策略被称为广播式接洽关系(broadcast join)。如不雅对 MPP 应用雷同的策略,可以想象,只能用在较小的 lookup 或维度表中。
那么当接洽关系一个大年夜的事实表和一个大年夜的维度表,比如客户或产品,甚至接洽关系两个大年夜型事实表时,我们该怎么办?
Hadoop汕9依υ?度建模
为懂得决机能问题,可以应用反规范化将大年夜的维度表放进事实表,以包管数据是同定位的(co-located),而对较小的维度表可以在所有节点上广播(broadcast)。
接洽关系两个大年夜型事实表时,可以把低粒度的表嵌套到更高粒度的表中,例如把 ORDER_ITEM 表嵌套到 ORDER 表中。高等的萌芽引擎,比如 Impala 或 Drill 可以让数据扁平化(flatten out):
嵌套数据的策略很有效,类似于 Kimball 概念顶用桥接表来表示维度模型中的 M:N 关系。
我们都知道,Ralph Kimball 已经退休了,但他设计原则的思惟和不雅念仍然是有效的,也将会持续存在。即使我们不得不让它们适应新的技巧和存储类型,它们仍然可以或许带来巨大年夜的价值。
Hadoop懈弛慢变更维
Hadoop 文件体系中的存储是弗成变的,换句话说,只能插入和追加记录,不克不及修改数据。如不雅你熟悉的是关系型数据仓库,这看起来可能有点奇怪。然则大年夜内部机制看,数据库是以类似的机制工作,在一个过程异步地更新数据文件中的数据之前,将所羽蹦更保存在一个弗成变的预写式日记(WAL- write-ahead log,Oracle中称为redo log)中。
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散!
弗成变性(immutability)对维度模型有什么竽暌拱响?你也许还记得维度建模课程中渐变维的概念(Slowly Changing Dimensions - SCDS)。SCDS 有选择地保存属性值变革的汗青,于是可以在某个时光点上对属性值进行度量。但这不是默认的处理方法,默认情况下会用最新的值来更新维度表。那么在 Hadoop 上若何选择呢?记住!我们不克不及更新数据。我们可以简单地为 SCD 选择默认方法并对每一个变更进行审核(audit)。如不雅想运行基于当前值的报表,可以在 SCD 之上创建一个视图,让它仅仅检索到最新值,应用 Windows 函数可以很轻易做到这一点。或者,可以运行一个所谓归并(Compaction)的办事,用最新的值物理地创建维度表的一个零丁版本。
Hadoop的存储演变
判决:维度模型和星型模式过时了吗?
本文翻译自“Dimensional Modeling and Kimball Data Marts in the Age of Big Data and Hadoop”,翻译已获得原作者 Uli Bethke 授权。Uli Bethke 是 Sonra 公司的 CEO,爱尔兰 Hadoop 用户组主席,也是 Oracle 的 ACE。
【编辑推荐】
- 关于Hadoop你须要知道的一些事项
- 干货 | 98道常见Hadoop面试题及谜调剂析(一)
- 荣之联DataZoo大年夜数据平台:基于hadoop但不仅仅只是hadoop
- 大年夜数据前景分析:Hadoop将被Spark替代?
- Hadoop技巧之Hadoop HA 机制进修
推荐阅读
MySQL order by原理以及优化?这篇来给你逐步解析
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 一 简介偏向于营业的 (MySQL)DBA 或者营业的开辟者来说,order by 排序是一个常见的营业功能,将结不雅根据>>>详细阅读
本文标题:大数据和Hadoop时代的维度建模和Kimball数据集市
地址:http://www.17bianji.com/lsqh/38203.html
1/2 1