- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Hadoop生态圈的数据仓库实践——进阶技术(五)要点
基于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
您可能关注的文档
- 城市综合管廊规划设计及运行管理-2015.06.pptx
- 城镇土地使用税等课件.ppt
- 城市规划概论说明书.docx
- 浙大图书馆服务双一流.pptx
- 城镇土地使用税.ppt
- 培训--烟气处理系统简述.ppt
- 海南大学论文封面例.doc
- 海南定安总体规划文本.doc
- 基于51单片机的6路抢答器.doc
- 基于51单片机的电子琴设计.doc
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)