栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据仓库原理&实战【2】

数据仓库原理&实战【2】

文章目录

表的分类

1.1维度建模中表的类型1.2事实表的三种分类

1.2.1事务事实表1.2.2周期快照事实表1.2.3累计快照事实表 1.2拉链表 ETL策略任务调动


表的分类 1.1维度建模中表的类型

(1)事实表:一般是指一个现实存在的业务对象,比如用户、商品、商家、销售员等,根据表的功能不同可以分为事务事实表、周期快照事实表、累计快照事实表;

(2)维度表:

一般是指对应一些业务状态,代码的解释表。也可以称之为码表通常使用维度对事实表中的数据进行统计、聚合运算就是在查询过程中可以对数据进行筛选或组织,主要是增加多维分析的一个性能,使多维分析变得更加灵活。
1.2事实表的三种分类 1.2.1事务事实表

其概念是随着业务不断产生的数据,一旦产生就不会在改变,如交易流水、操作日志、出库入库记录等,以交易流水为例:

这种表在数仓这块建设起来比较容易,因为数仓本身就不予许修改,这种顺序追加的表就很好实现。

1.2.2周期快照事实表

其实就是随着业务周期的变化,需要重新计算。

随着业务周期型的推进而变化,完成间隔周期内的度量统计,如年、季度累计统计方式是周期+状态度量的组合,如年累计订单数,年是周期,订单总数是量度
1.2.3累计快照事实表

前面两种事实表是累计追加的,而此表是可以随时修改的,对数仓来说实现难度比较大的。

定义:记录不确定周期的度量统计(可能发生随机的修改),完全覆盖一个事实的生命周期,如订单状态表;通常有多个时间字段,用于记录生命周期中的关键时间点;只有一条记录,针对此记录不断更新。

累计快照事实表的具体实现
(1)实现方式一使用日期分区表,全量数据记录,每天的分区存储昨天全量数据与当天增量数据合并的结果;数据量大会导致全量表膨胀,存储大量永远不更新的冷数据,对性能影响较大;适用于数据量少的情况。

(2)实现方式二

使用日期分区表,推测数据最长生命周期,存储周期内数据;周期外的冷数据存储到归档表;需要保留多天的分区数据,存储消耗依然很大

(3)实现方式三

使用日期分区表,以业务实体的结束时间分区,每天的分区存放当天结束的数据;设计一个时间非常大的分区,如9999-12-31,存放截止当前未结束的数据;已结束的数据存放到相应分区,存放未结束数据的分区,数据量也不会很大,ETL性能好无存储浪费,数据全局唯一;业务系统可能无法标识业务实体的结束时间,可以使用其它相关业务系统的结束标志作为此业务系统的结束,也可以使用最长生命周期时间或前端系统的数据归档时间。 1.2拉链表

拉链表不属于维度建模表里,是很常用的表

拉链表记录每条信息的生命周期,用于保留数据的所有历史(变更)状态拉链表将表数据的随机修改方式,变为顺序追加

ETL策略

(1)全量同步

数据初始化装载一定使用全量同步的方式因为业务、技术原因,使用全量同步的方式做周期数据更新,直接覆盖原有数据即可

如果数据量比较大,会导致整个ETL流程比较慢,甚至有些全量同步的周期会长达几个月
(2)增量同步

传统数据整合方案中,大多采用merge方式(update+insert)主流大数据平台不支持update操作,可采用全外连接+数据全量覆盖方式如果担心数据更新出错,可以采用分区方式,每天保存最新的全量版本,保留较短周期增量数据 任务调动

(1)任务调动可以解决什么问题?

解决任务单元间的依赖关系自动化完成任务的定时执行

以数据仓库为例:

(2)常见任务类型

Shell(用于启动仓库的一些组件,比如ETL的采集组件)Java程序(一般用于数据清洗,或实现其他自定义的功能)Mapreduce程序(一般用于数据清洗,或实现其他自定义的功能,自带分布式特性,吞吐量更高)SQL脚本(数据库的DDL、数据处理的一些任务)

(3)常见调度工具

AzkabanOozie

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号