本文目录导读:
图片来源于网络,如有侵权联系删除
数据仓库各层表结构类型的确定策略
数据仓库分层概述
数据仓库通常分为多个层次,常见的有ODS(操作数据存储)层、DW(数据仓库)层(包含DWD - 明细数据层、DWS - 汇总数据层等)和ADS(应用数据层),每个层次在数据处理流程中扮演着不同的角色,而确定各层表的结构类型需要综合考虑数据来源、业务需求、数据处理方式等多方面因素。
(一)ODS层表结构类型
1、接近源系统结构
- ODS层主要是对源系统数据的初步集成和存储,它的表结构往往与源系统的表结构有较高的相似度,如果源系统是关系型数据库,例如MySQL或Oracle,ODS层的表结构可能会采用与源系统类似的范式化结构,对于一个电商业务的订单源系统,订单表在ODS层可能仍然保留着订单编号、用户编号、下单时间、订单金额等基本字段,并且这些字段的类型(如订单编号为字符串类型、下单时间为日期时间类型等)也与源系统保持一致。
- 这是因为ODS层的一个重要目的是尽可能完整地记录源数据,以便在后续的数据处理中有据可查,这种结构也方便进行数据的抽取、转换和加载(ETL)操作,减少数据转换过程中的复杂性。
2、包含额外的操作字段
- 在ODS层的表结构中,除了源系统的原始字段外,有时还会添加一些与数据操作相关的字段,比如数据抽取时间戳字段,用于记录数据从源系统抽取到ODS层的时间,这个字段对于数据的追溯和数据质量监控非常重要,当发现ODS层数据存在问题时,可以通过数据抽取时间戳来确定是在哪个数据抽取周期内出现的问题。
(二)DWD层表结构类型
图片来源于网络,如有侵权联系删除
1、维度模型的构建基础
- DWD层是在ODS层基础上进行进一步的数据清洗和整合,在这个层次,表结构开始向维度模型靠拢,对于事实表,它会包含业务过程中的核心度量值以及与维度表相关的外键,在销售业务的数据仓库中,销售事实表在DWD层可能包含销售金额(度量值)、销售日期(与日期维度表关联的外键)、产品编号(与产品维度表关联的外键)、门店编号(与门店维度表关联的外键)等字段。
- 维度表则主要包含描述性的属性信息,比如产品维度表会有产品名称、产品类别、产品品牌等属性字段,这种结构有助于提高数据的分析效率,因为它将数据按照业务逻辑进行了重新组织。
2、适度的反范式化
- 与ODS层相比,DWD层可能会进行一定程度的反范式化,为了减少查询时的关联操作,可能会将一些经常一起查询的字段合并到一张表中,但是这种反范式化是适度的,要避免过度冗余带来的数据不一致性风险,在用户维度表中,可能会将用户的基本信息(如姓名、性别、年龄)和用户的注册来源信息(如是通过网页注册还是手机APP注册)合并到一张表中,而不是将注册来源信息单独放在另一张关联表中。
(三)DWS层表结构类型
1、汇总结构为主
- DWS层主要是对DWD层数据进行汇总操作,它的表结构以汇总结构为主,在销售业务中,DWS层可能会有按日汇总的销售报表表,表中包含日期、总销售额、总销售量、不同产品类别的销售额等汇总字段,这种结构是为了满足企业中高层管理人员对宏观数据的快速查询需求。
- 汇总的维度可以根据业务需求而定,除了按时间维度汇总外,还可以按地区、按产品类别等进行汇总,按地区汇总的销售报表表可能包含地区名称、地区内的总销售额、地区内的总销售量等字段。
图片来源于网络,如有侵权联系删除
2、预计算结果存储
- DWS层的表结构设计是为了存储预计算的结果,这些预计算结果是根据业务经常查询的分析指标进行计算得到的,对于电商业务,可能会计算每个月的新用户数量、活跃用户数量等指标,并将这些指标存储在DWS层的用户分析报表表中,这种预计算和存储的方式可以大大提高查询效率,因为在查询时不需要重新从明细数据进行复杂的计算。
(四)ADS层表结构类型
1、面向应用需求定制
- ADS层是直接为应用程序或业务用户提供数据服务的层次,它的表结构完全是面向应用需求定制的,对于一个销售数据分析的前端应用,ADS层可能会有一张表,表中的字段是按照前端应用界面的展示需求进行设计的,如果前端应用需要展示每个季度的销售趋势图,ADS层可能会有一张表包含季度、销售额、销售量等字段,并且这些字段的顺序和格式也是按照前端应用的要求进行调整的。
2、与前端工具适配
- ADS层的表结构还要与前端的分析工具或报表工具相适配,如果前端使用的是Tableau等可视化工具,ADS层的表结构可能需要满足Tableau对数据结构的要求,Tableau可能对日期字段有特定的格式要求,ADS层的日期字段就需要按照这种要求进行存储和处理,为了提高数据的交互性,ADS层的表可能会包含一些临时计算字段或者排序字段,以方便用户在前端工具中进行灵活的操作。
评论列表