基于Hadoop生态圈的数据仓库实践 —— 进阶技术(八)

八、多路径和参差不齐的层次        本节讨论多路径层次,它是对单路径层次的扩展。上一节里数据仓库的月维度只有一条层次路径,即年-季度-月这条路径。在本节中加一个新的级别——促销期,并且加一个新的年-促销期-月的层次路径。这时月维度将有两条层次路径,因此具有多路径层次。本节讨论的另一个主题是不完全层次,这种层次在它的一个或多个级别上没有数据。1. 增加一个层次        下面的脚本给mon...
阅读(2451) 评论(1)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(七)

七、递归        数据仓库中的关联实体经常表现为一种“父—子”关系。在这种类型的关系中,一个父亲可能有多个孩子,而一个孩子只能属于一个父亲。例如,一个人只能被分配到一个部门,而一个部门可能被分配许多人。“父—子”之间是一种递归型树结构,是一种最理想、最灵活的存储层次树的数据结构。本节说明一些递归处理的问题,包括数据装载、树的展开、递归查询、树的平面化等技术实现。为了保持销售订单示例的完整性,...
阅读(3450) 评论(2)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(六)

六、维度层次        大多数维度都具有一个或多个层次。例如,日期维度就有一个四级层次:年、季度、月和日。这些级别用date_dim表里的列来表示。日期维度是一个单路径层次,因为除了年-季度-月-日这条路径外,它没有任何其它层次。本节讨论在维度的层次上进行分组和钻取查询。多路径层次在下一节“多路径和参差不齐的层次”中讨论。        为了识别数据仓库里一个维度的层次,首先要理解维度中列的含...
阅读(2938) 评论(0)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(五)

五、快照        前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。        有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。        周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。        累积快照用于跟踪事实表的...
阅读(3740) 评论(2)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(四)

四、角色扮演维度        当一个事实表多次引用一个维度表时会用到角色扮演维度。例如,一个销售订单有一个是订单日期,还有一个交货日期,这时就需要引用日期维度表两次。        本节将说明两类角色扮演维度的实现,分别是表别名和数据库视图。这两种都使用了Hive的功能。表别名是在SQL语句里引用维度表多次,每次引用都赋予维度表一个别名。而数据库视图,则是按照事实表需要引用维度表的次数,建立相同...
阅读(9281) 评论(1)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(三)

三、维度子集        有些需求不需要最细节的数据。例如更想要某个月而不是某天的记录。再比如相对于全部的销售数据,可能对某些特定状态的数据更感兴趣等。这些特定维度包含在从细节维度选择的行中,所以叫维度子集。维度子集比细节维度的数据少,因此更易使用,查询也更快。        本节中将准备两个特定维度,它们均取自现有的维度:月份维度(日期维度的子集),Pennsylvania州客户维度(客户维度...
阅读(7734) 评论(3)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(二)

二、按需装载        前面已经做了“初始装载”和“定期装载”。还有一种需要熟悉的装载类型,按需装载。所谓“按需装载”指的是,在正常调度之外,当源数据有效或者数据仓库需要时进行装载。例如,促销销售源数据只有在促销期内有效,而在其它时间是无效的,而对促销期数据就要进行按需装载。        在“建立数据仓库示例模型”中讨论的日期维度数据生成可以看做是一种按需装载。数据仓库预先装载了日期,当日期...
阅读(3965) 评论(1)

基于Hadoop生态圈的数据仓库实践 —— 进阶技术(一)

一、增加列         数据仓库最常碰到的扩展是给一个已经存在的维度表和事实表添加列。本节说明如何在客户维度表和销售订单事实表上添加列,并在新列上应用SCD2,以及对定时装载脚本所做的修改。假设需要在客户维度中增加送货地址属性,并在销售订单事实表中增加数量度量值。        先看一下增加列时模式发生的变化。        修改后源数据库模式如下图所示。        修改后DW数据库模式如...
阅读(8677) 评论(2)

基于Hadoop生态圈的数据仓库实践 —— ETL(三)

三、使用Oozie定期自动执行ETL1. Oozie简介(1)Oozie是什么        Oozie是一个管理Hadoop作业、可伸缩、可扩展、可靠的工作流调度系统,其工作流作业是由一系列动作构成的有向无环图(DAGs),协调器作业是按时间频率周期性触发的Oozie工作流作业。Oozie支持的作业类型有Java map-reduce、Streaming map-reduce、Pig、 Hive...
阅读(12972) 评论(4)

基于Hadoop生态圈的数据仓库实践 —— ETL(二)

二、使用Hive转换、装载数据1. Hive简介(1)Hive是什么        Hive是一个数据仓库软件,使用SQL读、写、管理分布式存储上的大数据集。它建立在Hadoop之上,具有以下功能和特点:通过SQL方便地访问数据,适合执行ETL、报表、数据分析等数据仓库任务。提供一种机制,给各种各样的数据格式加上结构。直接访问HDFS的文件,或者访问如HBase的其它数据存储。可以通过MapRed...
阅读(8493) 评论(7)

基于Hadoop生态圈的数据仓库实践 —— ETL(一)

一、使用Sqoop抽取数据 1. Sqoop简介         Sqoop是一个在Hadoop与结构化数据存储(如关系数据库)之间高效传输大批量数据的工具。它在2012年3月被成功孵化,现在已是Apache的顶级项目。Sqoop有Sqoop1和Sqoop2两代,Sqoop1最后的稳定版本是1.4.6,Sqoop2最后版本是1.99.6。需要注意的是,1.99.6与1.4.6并不兼容,而且截止...
阅读(10836) 评论(4)
    个人资料
    • 访问:1386230次
    • 积分:18207
    • 等级:
    • 排名:第533名
    • 原创:256篇
    • 转载:20篇
    • 译文:5篇
    • 评论:168条
    博客专栏
    文章分类
    最新评论