大数据之路

如题所述

第1个回答  2022-08-01

人类从“IT时代”进入“DT时代”。本书介绍了阿里巴巴的大数据系统架构,为了满足不断变化的业务需求,同时实现系统的 高扩展性 灵活性 以及 数据展现的高性能
数据体系主要包括: 数据采集 数据计算 数据服务 数据应用 四大层次。

事实表包括引用的 维度 和描述具体业务的 度量

事实表中一条记录描述的业务的细节程度称为 粒度 。粒度可以使用两种方式来表示:(1)维度属性组合(2)所表示的具体业务含义。

事实包括可加性、半可加性和不可加性三种类型:
半可加性:只可以针对特定维度做聚合,例如库存(不能按照日期,可按照仓库聚合)。
可加性:可以按照任意维度聚合。
不可加性:完全不具备可加性。(例如:比率,事实表可以拆分存储分子分母)

维度属性也可以存到事实表中,称为 退化维度

事实表有三种类型:事务事实表、周期快照事实表、累计快照事实表。
事务事实表描述的是业务过程上的原子事务,也称为 原子事实表
周期快照事实表是按照周期性规律的时间间隔记录事实。
累计快照事实表:累计快照事实表用来表示过程开始和结束过程之间的关键步骤事件,覆盖整个生命周期,通常用多个日期字段记录关键时间点,记录会随着时间变化而修改。

事实表设计原则:
原则1: 尽可能包含所有与业务过程相关的事实。
即时存在冗余,也尽可能存储。

原则2:只选择与业务过程相关的事实。

原则3:分解不可加事实为可加的组件。
例如:不存成单率,转而存储成单数和提单数。

原则4:选择维度和事实前,必须先声明粒度。
建议粒度设置的越细越好,这样可以最大限度的提高灵活性。可以通过业务描述或者维度属性组合的方式来定义粒度。

原则5:在同一个事实表中,不应该有不同粒度的事实。
例如:一个事实表中不应该包含某些精确到订单粒度的度量,同时又包含只精确到城市的度量。

原则6:事实的单位一致。

原则7:尽量处理掉事实表中的null值。
SQL中大于,小于的条件不适用与null值,所以尽量用数值替代null,例如0.

原则8:使用退化维度增加事实表的易用性。
在Kimball的维度设计模型中,分拆出单独的维度表,为了节省存储。但是为了减少使用时的关联次数,可以多使用退化维度提供事实表易用性。

事实表设计方法:
1.选择业务过程及确定事实表类型。2. 声明粒度。3.确定维度。4.确定事实。5.冗余维度(设计退化维度)。

事务事实表,即针对业务过程构建的一类事实表,用来跟踪定义业务过程的个体行为,提供丰富的分析能力,作为数据仓库原子的明细数据。

单事务事实表,即针对每一个业务过程设计一个事实表,这样可以方便地对每一个业务过程进行分析研究。

表示同一个事实表包含不同的业务过程。多事务事实表有两种实现方法:(1)使用两个不同的事实字段来保存各自业务过程。(2)使用同一个字段保存,但是增加一个业务过程标签。
下面举例说明,淘宝交易事务事实表同时包含下单、支付和成功完结三个过程,三个过程粒度一致,可以放在一个事实表。下面确定维度和事实,该表中的下单度量、支付度量和成功完结度量信息分别存在不同字段,如果不是当前业务处理,则用0来处理。
当不同业务过程的度量比较相似、差异不大时使用第二种事实表(使用一个字段保存),当不同业务过程的度量差异大时,使用第一种(多字段保存)。

对于单事务事实表和多事务事实表的选择上,可以从以下一些方面来区分:
业务过程、粒度和维度(不同业务过程粒度相同,并且维度相似时,可以选用单事务事实表)、事实、下游业务使用、计算存储成本。电商环境下,有父子订单的概念,店铺多商品各生成一个订单,在一个店铺合成一个父订单。

1.事实完整性:事实表包含与其描述的过程有关的所有事实。
2.事实一致性:明确存储每一个事实以确保度量一致性。例如,有下单商品数和商品价格2个事实,同时保存下单金额(价格*商品数)。这样下游使用时,直接取下单金额,而不是再次计算,以保证指标的一致性。
3.事实可加性:为确保下游使用时,指标的可聚合性,尽量保存原始数,而不是计算后的比率指标。

对于事务度量,事务性事实表可以很好地表征。但是对于一些 状态度量 ,例如买卖家累计交易金额、商品库存、买卖家星级、温度(事务事实表无法聚合得到)等,事务事实表的效率较低或者无法处理。为了解决状态度量问题,引入周期性快照事实表(也称为 快照事实表 )。

1.用快照采样状态:快照事实表以预定的间隔采样状态度量。
2.快照粒度:快照事实表通常总是被多维声明,即快照需要采样的周期以及什么将被采样。
3.密度和稠密性:稠密性是快照事实表的重要特征。事务事实表一般都是稀疏的,只要发生业务才会有相应记录。
4.半可加性:快照事实表的状态度量都是半可加的,例如商品库存,只针对商品维度可加,对日期维度不可加。

设计快照事实表,首先确定快照粒度,然后确定采样的状态度量。下面介绍几个快照事实表实例。
单维度每天快照事实表、混合维度每天快照事实表,这两种快照表都可以从事务事实表汇总得到。另外的一种产出模式是直接使用操作型系统作为数据源来加工,例如淘宝卖家的星级评分是在操作型系统中计算得出的,仓库直接拿来这部分数据加入事实表。全量快照事实表,是特殊类型的周期快照表,例如设计无事实的事实表来记录评论的状态度量。

对于研究事件之间的时间间隔需求时,累计快照事实表能较好符合需求。
特点:
1.数据不断更新:例如,在下单、支付和确认收货三个业务过程中,事务事实表会生成3条记录,而累计快照表会不断更新一条记录(不生成新记录)。
2.多业务过程日期:
累计快照表适用于具有较明确起止时间的短生命周期的实体,对于每个实体都经历从诞生到消亡等步骤。
3.存储历史全量数据。

1.事件类的,例如浏览日志。
2.条件范围资格类的,例如客户和销售人员的分配情况。

主要是提前聚合,为了增加数据访问的效率(不用再聚合了),减少数据不一致的情况。这类聚集汇总数据,被称为“公共汇总层”。
聚集的基本步骤:1.确定聚集维度。2.确定一致性上钻。3.确定聚集事实。

元数据主要记录数据仓库中模型的定义、各层级间映射关系、监控数据仓库的数据状态及ETL任务的运行状态。元数据分为 技术元数据 业务元数据
阿里巴巴技术元数据包括:
数据表、列等信息;ETL作业的信息;数据同步、任务调度、计算任务等信息。数据质量和运维相关元数据。
阿里巴巴业务元数据包括:
维度属性、业务过程、指标等。数据应用元数据,例如数据报表、数据产品等。

元数据价值:
元数据在数据管理方面为集团数据在计算、存储、成本、质量、安全、模型等治理领域上提供数据支持。

阿里MaxCompute提供了archive压缩方法,采用了具有更高压缩比压缩算法,将数据以RAID file的形式存储。这样可以节省空间,但是恢复起来也更复杂,所以适用于冷备份的数据。

MaxCompute基于列存储,通过修改表的数据重分布,避免列热点,将会节省一定存储空间。

存储治理项以元数据为基础,列出例如“62天内未访问的分区”、“数据无更新的任务列表”等等管理项推动ETL优化。形成现状分析、问题诊断、管理优化、效果反馈的存储治理项优化的闭环。

生命周期管理的目的是用最少的存储成本来满足最大业务需求,实现数据价值最大化。
1.周期性删除策略:
2.彻底删除策略:主要针对无用表,ETL中间过程表。
3.永久保存策略:
4.极限存储策略:
5.冷数据管理策略:针对重要且访问频率低的数据。
6.增量表merge全量表策略:

将一个数据表的成本分为存储成本和计算成本,除此之外,上游表对该表的扫描成本也应该计入。相应的计费分别核算为:计算付费、存储付费和扫描付费。数据资产的成本管理分为数据成本计量和数据使用计费。

相似回答
大家正在搜