数据仓库分层架构

简介: 【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_业务表名。
  • 旧数据更新方式:直接覆盖。


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

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

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

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

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

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

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
1月前
|
负载均衡 关系型数据库 应用服务中间件
高可用系列文章之二 - 传统分层架构技术方案
高可用系列文章之二 - 传统分层架构技术方案
|
2天前
|
XML 前端开发 JavaScript
后端请求响应和分层解耦web开发的三层架构
后端请求响应和分层解耦web开发的三层架构
7 0
|
1月前
|
存储 SQL 分布式计算
【Hive】为什么要对数据仓库分层?
【4月更文挑战第15天】【Hive】为什么要对数据仓库分层?
|
1月前
|
分布式计算 API 数据处理
Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
【2月更文挑战第15天】Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
88 1
|
1月前
|
存储 自然语言处理 前端开发
软考实践之分层架构思想的理论和应用实践
软考实践之分层架构思想的理论和应用实践
249 0
|
1月前
|
消息中间件 前端开发 测试技术
DDD - 分层架构:有效降低层与层之间的依赖
DDD - 分层架构:有效降低层与层之间的依赖
127 0
|
2天前
|
监控 持续交付 数据安全/隐私保护
Python进行微服务架构的监控
【6月更文挑战第16天】
16 5
Python进行微服务架构的监控
|
1天前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
1天前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
1天前
|
运维 Kubernetes 监控
自动化运维的新篇章:容器化与微服务架构的融合
【6月更文挑战第22天】在数字化时代的浪潮中,企业IT架构正经历着一场深刻的变革。本文将探讨自动化运维如何通过容器化技术与微服务架构的结合,提升系统的可维护性、扩展性和敏捷性。我们将深入分析这一结合背后的技术细节,以及它如何影响日常运维工作,同时提供一系列实用的操作建议和最佳实践。

热门文章

最新文章