数据仓库分层标准
数据仓库分层的好处
通过将复杂的计算任务分解到多个阶段执行,将所有的复杂计算,拆分成多个简单计算来进行,逻辑更清晰,单个任务更简单。
将所有的数据按照不同的加工程度分层,明确了取用某一种加工程度的数据应该去哪一层,通过分层梳理了所有数据的结构。
将不同程度的聚合数据全部存储起来,避免了使用数据时的二次聚合,减轻了计算量。
分层数仓的每一层的任务可以并行处理,可以最大限度发挥计算引擎的性能,提升计算性能。
数据仓库如何分层
原始数据层(Operational Data Store)
存放未经过处理的原始数据,结构上与源系统保持一致,是数据仓库的数据准备区。本层的数据需要做到以下几点:
- 保持数据原貌不做任何修改,起到备份数据的作用。
-
创建分区表,防止后续的全表扫描。
举例:以 App Store 数据为例,我们将每天通过 API 接口抓取的数据存储在 ODS 层表中,并按日期创建分区,每个分区的数据即为当日抓取的所有数据。
明细数据层(Data Warehouse Detail)
存放经过清洗的明细数据,此处应该让数据摆脱 ODS 层的结构,准备进行进一步的关联和聚合。本层的数据处理任务应当完成以下几项工作:
- 将原始数据进行清洗,字段名称改为标准化的命名
- 进行 IP 解析等需要对基础数据进行处理的 UDF 操作
- 将脏数据、不合规数据、垃圾数据等不符合预期的数据过滤掉
- 应当尽量将 ODS 层中的所有信息提取出来,保证其他层的任务不需要再访问 ODS 层
举例:以 App Store 数据为例,DWD 层的处理任务会将原始数据中包含的信息从 ODS 层提取出来,从 JSON 格式变成列式存储的 ORC 格式。
基础数据层(Data Warehouse Base)
在 DWD 层表的基础上,进行维度关联,生成拥有所有维度的明细汇总宽表。本层的数据处理任务应当完成一下几项工作:
- 将 DWD 层中的关于某一主题的所有信息关联在一起,生成一张没有聚合的明细汇总表
- 使用 DIM 维度表将明细汇总表打宽,变成一张明细汇总宽表
举例:以 OmniSDK 数据为例,在 DWB 层将订单的创建、完成等多个 DWD 层表按照订单 ID 关联,形成一张包含了所有订单主题事件的明细汇总宽表
轻度聚合层(Data Warehouse Service)
在 DWD 或者 DWB 层的基础上,进行轻度聚合,主要用于多维度 OLAP 分析:
- 所谓轻度聚合,指的是结果中的数据仍保留了较多的维度,还有再次聚合的空间
- 对于一些 DWD 层维度齐全,没有必要制作 DWB 表的数据,可以直接按照 DWD 聚合
举例:以 App Store 数据为例,在 DWS 将商品这一维度抹去,按照游戏、币种、版本、地区其他维度进行轻度聚合,用于 App Store 收入的多维度分析
主题聚合层(Data Warehouse Topic)
在 DWD 或 DWB 或 DWS 的基础上,进行聚合,直接产生相关的结论,用于后续展示:
- 所谓主题聚合,指的是为具体的某个分析任务或者报表服务,保留较少的维度,通常没有多少再次聚合的空间
- 对于某些可以直接通过 DWB 甚至 DWD 计算产生具体结论,且 DWS 没有必要创建相关表的情况,可以直接进行计算
举例:以游戏留存计算为例,依赖 DWB 层的活跃明细,计算多日留存、经过模型处理的真实留存等具体指标,存入 DWT 层。
维度表(Dimension)
维度表,主要包含配置表、枚举含义表或者商品资料表等数据。需要注意,维度表中的数据应该是变化相对不频繁的数据,基于 ODS 数据计算出来的维度表应该放在 DWD 层,命名以 dwd_dim 开头。包含的数据例如:
- 高基数维度数据表,如用户资料表,包含用户手机号、用户ID、注册时间、所在省份/城市、性别、生日、用户等级等各种信息。此表需要依赖于 ODS 层表,则需要放在 DWD 层。
- 低基数维度数据表,以 App Store 数据为例,依据苹果官网提供的资料建立。包括货币维度表 dim_currency(币种的英文缩写和中文名字对照关系)、地区维度表 dim_region(地区英文缩写和中文名字的对照关系)等
数仓分层后的任务依赖关系
- 分层后,构建数据仓库的任务应当由互相独立的多组任务组成。
- 按照数据仓库自底向上的顺序串行执行(ODS -> DWD -> DWB -> DWS -> DWT)。
- 每一组任务内的任务应该互相没有依赖和影响,可以并行执行。
- 原则上每一层的任务可以依赖的层如下表所示:
任务所属层 |
可以依赖的表所属层 |
DWD |
ODS |
DWB |
DWD |
DWS |
DWD、DWB |
DWT |
DWD、DWB、DWS |
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiabigh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22