数据仓库分层架构

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【5月更文挑战第21天】一个数据仓库的分层架构,包括缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。

数据仓库采用分层架构,分为缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。如图为数据仓库分层架构示意图。

1、缓冲层

概念:用于存储每天的增量数据和变更数据。

  • 数据生成方式:直接从Kafka接收源数据或从业务库抽取,需要业务表每天生成update、delete、insert数据,只生成insert数据的业务表,数据直接接入操作数据层。
  • 讨论方案:只把Kafka消息直接接入缓冲层,对于其他有拉链数据的业务,也接入缓冲层。
  • 日志删除方式:只存储最近几天的数据。
  • 表Schema:一般按天创建分区。

2、操作数据层

概念:数据仓库的细节数据层,对缓冲层数据进行沉淀,减小了抽取的复杂性。同时ODS 的信息模型组织主要遵循企业业务事务处理的形式,将各种专业数据进行集中,操作数据层的粒度跟缓冲层一致。

  • 数据生成方式:部分数据直接来自Kafka,部分数据为缓冲层数据与历史数据的合成。
  • 讨论方案:每天把操作数据层的前天全量数据和缓冲层的昨天新数据合成一个新的数据表,覆盖旧表。
  • 日志删除方式:长久存储。
  • 表Schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。

3、明细数据层

概念:数据仓库的明细数据层,同时 DWD 的信息模型组织主要遵循企业业务事务处理的形式,将各种专业数据进行集中,明细数据层的粒度跟操作数据层一致,属于分析的公共资源。 ○

  • 数据生成方式:在操作数据层清洗或JOIN维度表之后生成。
  • 日志删除方式:长久存储。
  • 表Schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。
  • 库与表命名:库名为dwd;表名,初步考虑格式为dwd_业务表名。
  • 旧数据更新方式:直接覆盖。

4、汇总数据层

概念:在数据仓库中明细数据层和数据集市层之间的一个过渡层次,对明细数据层的生产数据进行轻度综合和汇总统计。汇总数据层与明细数据层的主要区别在于二者的应用领域不同,明细数据层的数据来源于生产型系统,并为满意一些不可预见的需求而进行沉淀;汇总数据层则面向分析型应用进行细粒度的统计和沉淀。

  • 数据生成方式:由明细数据层按照一定的业务需求生成轻度汇总表。明细数据层需要复杂清洗的数据和需要MR处理的数据也经过处理后接入汇总数据层。
  • 日志删除方式:长久存储。
  • 表Schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。
  • 库与表命名:库名为dws;表名,初步考虑格式为dws_日期_业务表名。
  • 旧数据更新方式:直接覆盖。

5、数据集市层

概念:数据集市层又称为数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询、OLAP分析、数据分发等。

  • 数据生成方式:由汇总数据层和明细数据层的数据计算生成。
  • 日志删除方式:长久存储。
  • 表Schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。
  • 库与表命名:库名为dm;表名,初步考虑格式为dm_业务表名。
  • 旧数据更新方式:直接覆盖。


总结起来,数据仓库分层有如下好处。

第一,数据结构更明确。分层之后,每一层都有其作用域,这样我们在使用表的时候,能更方便地理解,提高工作效率。

第二,数据血缘追踪,便于管理。数据团队产出的是一个个能直接使用的业务表,这些表的来源有很多,假如某一个来源表出问题了,但有了分层,数据血缘关系更清晰,它能够帮助我们快速准确地定位到问题,并清楚问题的影响范围。

第三,复杂问题简单化。分层之后,一个复杂的任务被分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复即可。

第四,表共用,减少了重复计算。由于数据仓库的分层设计,通过开发一些共用的中间层数据表,进而减少了重复计算,节省了计算资源。

第五,屏蔽原始数据的异常和业务变更的影响。比如,当业务发生变更(如对日志增加了一个新的字段)时只会影响最底层的数据仓库表结构,不会影响上层的数据业务层(如数据集市层),应用方对底层的数据异常无感知,从而降低了应用方因数据异常和业务变更带来的风险。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
4月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
2月前
|
人工智能 前端开发 JavaScript
前端架构思考 :专注于多框架的并存可能并不是唯一的方向 — 探讨大模型时代前端的分层式微前端架构
随着前端技术的发展,微前端架构成为应对复杂大型应用的流行方案,允许多个团队使用不同技术栈并将其模块化集成。然而,这种设计在高交互性需求的应用中存在局限,如音视频处理、AI集成等。本文探讨了传统微前端架构的不足,并提出了一种新的分层式微前端架构,通过展示层与业务层的分离及基于功能的横向拆分,以更好地适应现代前端需求。
|
4月前
|
存储 NoSQL 关系型数据库
MPP架构数据仓库使用问题之Visibility bitmap表被删除的文件信息是如何记录的
MPP架构数据仓库使用问题之Visibility bitmap表被删除的文件信息是如何记录的
|
26天前
|
数据库
分层架构
表现层(Presentation Layer):处理用户界面和用户交互逻辑。 业务逻辑层(Business Logic Layer):处理业务相关的逻辑和规则。 数据访问层(Data Access Layer):负责与数据库或其他数据源进行 [Something went wrong, please try again later.]。
|
2月前
|
JSON 前端开发 Java
Spring Boot框架中的响应与分层解耦架构
在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。
69 3
|
2月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
4月前
|
SQL 算法 关系型数据库
MPP架构数据仓库使用问题之ADB PG对于sort scan算子要如何生成并优化
MPP架构数据仓库使用问题之ADB PG对于sort scan算子要如何生成并优化
|
4月前
|
缓存 Cloud Native 关系型数据库
MPP架构数据仓库使用问题之Calcite 是一个什么样的类库,它主要用于什么地方
MPP架构数据仓库使用问题之Calcite 是一个什么样的类库,它主要用于什么地方
|
4月前
|
缓存 Cloud Native 关系型数据库
MPP架构数据仓库使用问题之DADI的文件异步预取机制是怎么工作的
MPP架构数据仓库使用问题之DADI的文件异步预取机制是怎么工作的
|
4月前
|
存储 缓存 安全
MPP架构数据仓库使用问题之DADI相比其他方案,在资源使用上有什么优势
MPP架构数据仓库使用问题之DADI相比其他方案,在资源使用上有什么优势

热门文章

最新文章