本文目录导读:
数据仓库各层表结构类型的确定方法
数据仓库多层结构概述
数据仓库通常包含多个层次,常见的有源数据层、ODS(操作数据存储)层、DW(数据仓库)层(又可细分为DWD - 明细数据层、DWS - 汇总数据层等)以及应用层(ADS - 应用数据层),每个层次在数据仓库体系中都有着独特的功能和定位,这也决定了各层表结构类型的差异。
源数据层表结构类型
1、多样化的结构来源
图片来源于网络,如有侵权联系删除
- 源数据层的数据来源于企业内外部的各种数据源,企业内部的业务系统(如ERP系统、CRM系统等),这些系统可能使用关系型数据库,其表结构多为规范化的关系型结构,以满足事务处理的高效性,以ERP系统中的订单表为例,会有订单编号、客户编号、订单日期、订单金额等字段,通过外键关联客户表、产品表等,以保证数据的一致性和完整性。
- 外部数据源可能包括日志文件、传感器数据等,日志文件的数据结构可能比较松散,通常是按照时间顺序记录事件,是一种半结构化的数据,Web服务器的访问日志,每一行可能包含访问时间、IP地址、访问的URL等信息,虽然有一定的格式,但不像关系型表那样严格规范化。
2、应对源数据结构的策略
- 对于关系型源数据,在源数据层可能需要尽量保留其原始结构,以便进行数据的抽取和追溯,可以对一些复杂的关系型结构进行简单的映射和整理,去除一些不必要的关联关系,为后续的数据处理做准备。
- 对于半结构化和非结构化的源数据,需要采用特定的技术进行解析,对于日志文件,可以使用正则表达式或专门的日志解析工具将其转化为一种可以在数据仓库中处理的格式,可能是将每行日志数据解析成多个字段后存储在类似关系型表的结构中,或者存储在专门的文档型数据库结构中(如果数据仓库支持)。
ODS层表结构类型
1、接近源数据的结构
- ODS层主要是对源数据进行初步的整合和清洗,其表结构在很大程度上仍然保留了源数据的特征,对于从关系型源数据抽取过来的数据,ODS层的表结构可能与源表结构相似,但可能会增加一些用于数据处理的辅助字段,如数据抽取时间戳、数据来源标识等。
- 从多个不同的销售业务系统抽取销售订单数据到ODS层,每个销售订单表可能仍然包含订单的基本信息,但会新增一个字段表明是从哪个业务系统抽取过来的,以便在后续的数据处理中进行区分和溯源。
2、适应数据清洗的结构调整
图片来源于网络,如有侵权联系删除
- 在数据清洗过程中,ODS层的表结构可能会根据清洗规则进行一些调整,如果源数据中存在一些重复的数据或者数据格式不统一的情况,在ODS层可能会通过调整表结构来解决这些问题,如果某个源表中的日期字段格式不一致,在ODS层可能会新增一个统一格式的日期字段,同时保留原始日期字段用于审计和追溯。
DWD层表结构类型
1、明细数据的整合与规范
- DWD层是对ODS层数据进一步的加工和整合,其表结构更加规范化和标准化,在DWD层,会将来自不同数据源但相关的明细数据进行整合,将销售订单明细、客户信息明细、产品信息明细等相关数据进行整合。
- 表结构会按照数据仓库的建模规范进行设计,通常采用星型模型或雪花模型,以星型模型为例,以销售事实表为中心,周围关联客户维度表、产品维度表等,销售事实表中会包含如销售数量、销售金额等可度量的事实数据,而客户维度表会包含客户的基本属性如客户名称、客户地址等。
2、数据粒度的确定
- DWD层表结构需要明确数据的粒度,对于销售数据,是按照每一笔订单记录,还是按照每天的汇总订单记录,如果是按照每一笔订单记录,那么表结构中的字段会详细到每一个订单的具体信息,如订单中的每个产品的数量、单价等;如果是按照每天的汇总订单记录,那么表结构会包含日期、当天的总销售数量、总销售金额等字段。
DWS层表结构类型
1、汇总数据的结构特点
- DWS层主要是对DWD层的明细数据进行汇总,其表结构是基于汇总需求而设计的,如果要汇总不同地区、不同产品的销售情况,DWS层的表结构可能会包含地区维度、产品维度以及相应的汇总销售数量、销售金额等字段。
- 表结构相对DWD层更加简洁,重点在于提供快速的查询和分析功能,为了提高查询效率,可能会对一些维度进行编码处理,如将地区名称转换为地区编码,减少数据存储和查询时的字符串比较操作。
图片来源于网络,如有侵权联系删除
2、多维度汇总的结构设计
- 当需要进行多维度汇总时,DWS层的表结构会更加复杂,除了地区和产品维度外,还要考虑时间维度(如按季度、年度汇总)和客户类型维度(如个人客户、企业客户)等,表结构需要能够容纳这些多维度的组合,可能会采用多层嵌套的结构或者使用特殊的编码方式来表示不同维度的组合情况。
ADS层表结构类型
1、面向应用的结构定制
- ADS层是直接为应用服务的,其表结构完全根据应用需求来定制,对于一个销售分析报表应用,ADS层的表结构可能会包含报表中需要展示的所有数据字段,并且这些字段的排列顺序和格式都是按照报表的要求来设计的。
- 如果应用是一个数据可视化大屏,用于展示实时销售数据,那么ADS层的表结构可能会包含当前的销售金额、销售数量、同比环比数据等,并且这些数据会以一种适合实时更新和展示的结构进行存储,可能会采用内存数据库结构或者特殊的缓存结构来提高数据的获取和展示速度。
2、与前端应用的适配
- ADS层表结构需要与前端应用的接口和数据格式要求相适配,如果前端应用是一个基于Web的报表工具,那么ADS层的表结构可能需要以JSON格式或者其他易于在Web环境中传输和解析的格式进行存储,如果前端应用是一个移动应用,那么在考虑数据量和网络传输效率的基础上,ADS层的表结构可能会更加紧凑,并且会采用适合移动设备数据存储和查询的结构,如SQLite数据库结构或者基于文件的存储结构。
数据仓库各个层表结构类型的确定是一个基于数据来源、数据处理需求、查询分析需求以及应用需求的系统工程,需要综合考虑各方面的因素,以构建一个高效、灵活、可扩展的数据仓库体系。
评论列表