- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(五)
五、快照
前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。
有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。
周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。
累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被打包、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。
下面说明周期快照和累积快照的细节问题。
1. 周期快照
下面以销售订单的月底汇总为例说明如何实现一个周期快照。
首先需要添加一个新的事实表。下图中的模式显示了一个名为month_end_sales_order_fact的新事实表。
该表中有两个度量值,month_order_amount和month_order_quantity。这两个值是不能加到sales_order_fact表中的,原因是,sales_order_fact表和新的度量值有不同的时间属性(数据的粒度不同)。sales_order_fact表包含的是每天一条记录。新的度量值要的是每月的数据。使用下面的脚本建立month_end_sales_order_fact表。
[sql] view plain copy 在CODE上查看代码片派生到我的代码片
USE dw;
CREATE TABLE month_end_sales_order_fact (
order_month_sk INT COMMENT order month surrogate key,
product_sk INT COMMENT product surrogate key,
month_order_amount DECIMAL(10,2) COMMENT month order amount,
month_order_quantity INT COMMENT month order quantity
)
CLUSTERED BY (order_month_sk) INTO 8 BUCKETS
STORED AS ORC TBLPROPERTIES (transactional=true);
建立了month_end_sales_order_fact表后,现在需要向表中装载数据。月底销售订单事实表的数据源是已有的销售订单事实表。month_sum.sql文件用于装载月底销售订单事实表,该文件内容如下。
[sql] view plain copy 在CODE上查看代码片派生到我的代码片
-- 设置变量以支持事务
set hive.support.concurrency=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set pactor.initiator.on=true;
set pactor.worker.threads=1;
USE dw;
SET hivevar:pre_month_date = add_months(current_date,-1);
delete from month_end_sales_order_fact
where month_end_sales_order_fact.order_month_sk in
(select month_sk
from month_dim
where month = month(${hivevar:pre_month_date})
and year = year(${hivevar:pre_month_date}));
insert into month_end_sales_order_fact
select b.month_sk, duct_sk, sum(order_amount), sum(order_quantity)
f
您可能关注的文档
- 机械设计期末考试题探究.doc
- 机械设计课程作业探究.doc
- 机械设计实验指导书探究.docx
- 机械设计优化作业探究.doc
- 机械设计题库06_带传动探究.doc
- 机械手电气设计说明书探究.doc
- 机械手的设计探究.doc
- 机械图纸常识探究.doc
- 机械外文翻译探究.doc
- 机械微粉厂安全操作规程探究.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)