数据仓库 Archi结构、组件和图表 Concepts

⚡ 智能摘要

数据仓库 Archi结构定义了如何将来自多个来源的历史和累积数据组织成分层结构和连接组件,从而实现可靠的报告、分析以及为组织决策和预测提供单一的真实版本。

  • 🏛️ 核心宗旨: 数据仓库存储面向主题、集成、随时间变化且非易失性的数据,以支持分析,而不是日常事务处理。
  • 🧱 分层设计: Archi架构范围从单层到广泛使用的三层模型,包括底层数据库、中间 OLAP 服务器和顶层客户端。
  • 🗄️ 核心数据库: 中央存储库运行在关系数据库管理系统 (RDBMS) 上,通常会扩展并行数据库、新的索引结构和多维数据库,以提高规模和速度。
  • 🔄 ETL组件: 采购、获取、清理和转换工具将数据整合为统一格式,并保持数据仓库的更新。
  • 🏷️ 元数据角色: 技术和业务元数据描述数据的来源、含义和处理方式,将原始值转化为可用的知识。
  • 📊 查询和OLAP工具: 报表、托管查询、应用程序开发、数据挖掘和 OLAP 工具使用户能够从多个角度探索数据仓库。
  • 最佳实践: 优化数据模型以实现检索,整合为单一真实版本,并在需要时考虑 ODS 或 3NF 模型。

数据仓库 Archi结构图展示了数据仓库的层级和核心组件。

数据仓库 Concepts

A 数据仓库 其存在的目的是为公司提供单一数据源,用于决策和预测。它是一个信息系统,存储着来自一个或多个数据源的历史数据和累积数据。

数据仓库通过对数据进行分析而非交易处理,简化了整个组织的报告和分析工作。

数据仓库的特点

数据仓库具有四个显著特征,使其区别于普通的操作型数据库:

  • 面向主题
  • 多材料
  • 时变
  • 非易失性

面向主题

数据仓库是面向主题的,因为它提供的是关于某个主题的信息,而不是公司日常运营的信息。典型的主题包括销售、市场营销和分销。

该数据仓库并非进行日常数据处理,而是侧重于建模和分析以辅助决策。它提供每个主题的简洁明了的视图,并剔除与决策过程无关的数据。

多材料

集成与主题导向密切相关。在数据仓库中,集成意味着为从不同数据库中提取的所有类似数据建立通用的计量单位,并以通用且普遍接受的方式存储这些数据。

数据仓库是通过整合来自各种来源的数据而构建的,例如大型机、关系数据库和平面文件。它还必须保持一致的命名约定、格式和编码。

命名、属性度量和编码结构的一致性使得有效的分析成为可能。请看以下示例:

数据仓库集成示例,标准化来自三个应用程序的性别、日期和余额字段

在上面的例子中,三个应用程序分别标记为 A、B 和 C,它们都存储性别、日期和余额信息,但每个应用程序的存储方式都不同:

  • 应用程序 A 将性别字段存储为 M 或 F 等逻辑值。
  • 应用程序 B 将性别字段存储为数值。
  • 应用程序 C 将性别字段存储为字符值。
  • 日期和余额字段也存在同样的变化。

经过转换和清洗过程后,所有这些数据都以通用格式存储在数据仓库中。

时变

数据仓库的时间跨度远比运营系统长。数据以特定的时间段为单位进行识别,并提供历史视角,因此它始终包含时间元素,无论是显式的还是隐式的。

这种时间差异体现在记录键的结构中。仓库中的每个主键都应该包含时间元素,例如日、周或月。

时间差异的另一个方面是,一旦数据被插入到数据仓库中,就无法更新或更改。

非易失性

数据仓库也是非易失性的,这意味着新数据到达时,旧数据不会被删除。数据是只读的,并且会定期刷新,这有助于分析师研究历史数据,了解事件的来龙去脉。

由于数据仓库不需要事务处理、数据恢复或并发控制,因此它省略了操作型应用程序中常见的删除、更新和插入操作。数据仓库中只执行两种数据操作:

  1. 资料载入
  2. 资料存取

下表列出了操作型应用程序和数据仓库之间的一些主要区别:

Opera国内应用 数据仓库
必须编写复杂的程序以确保数据升级过程保持最终产品的高度完整性。 这类问题不会发生,因为没有执行数据更新。
数据以规范化形式放置,以确保最小冗余。 数据不是以规范化形式存储的。
支持交易、数据恢复、回滚和死锁解决等问题的技术相当复杂。 它在技术上相对简单。

数据仓库 Archi质地

数据仓库 Archi由于系统存储来自多个数据源的历史数据和累积数据,因此其架构十分复杂。构建数据仓库层有三种方法:单层、双层和三层。

单层架构 旨在通过消除冗余来最大限度地减少存储的数据量。但在实践中很少使用。

两层架构 它将物理上可用的数据源与数据仓库分离。它不易扩展,支持的最终用户数量较少,并且由于网络限制,可能会出现连接问题。

三层架构 是数据仓库中最广泛使用的设计。

它由上、中、下三个层级组成:

  1. 底层: 仓库的数据库位于底层。它通常是一个关系型数据库系统,数据通过后端工具进行清洗、转换和加载到这一层。
  2. 中层: 中间层是采用 ROLAP 或 MOLAP 模型实现的 OLAP 服务器。它提供了一个绝对值。tracted 提供数据库视图,并充当最终用户和数据库之间的中介。
  3. 顶级: 最上层是前端客户端层。它包含用于连接数据仓库并从中提取数据的工具和 API,例如查询工具、报表工具、托管查询工具、分析工具和数据挖掘工具。

数据仓库组件

数据仓库的各个组成部分和整体架构协同工作,如下图所示。

数据仓库架构组件包括数据库、ETL 工具、元数据、查询工具和数据集市。

数据仓库基于关系数据库管理系统 (RDBMS) 服务器,这是一个中央信息存储库,周围环绕着关键组件,这些组件使整个环境能够正常运行、易于管理且易于访问。

数据仓库由以下五个主要部分组成。

数据仓库数据库

中央数据库是仓储环境的基础,并且是在……上实现的。 RDBMS 技术方面,由于传统的RDBMS是针对事务处理而非数据仓库进行优化的,因此资源密集型操作(例如即席查询、多表连接和聚合)会降低其速度。

因此,人们采用了其他数据库方法:

  • 关系数据库采用并行部署方式以实现可扩展性,在各种多处理器或大规模并行配置上使用共享内存或无共享模型。
  • 采用新的索引结构来绕过关系表扫描,从而提高速度。
  • 多维数据库(MDDB)用于克服关系型数据仓库模型的局限性。例如,Essbase 就是一个多维数据库。 Oracle.

采购、获取、清理和转换工具 (ETL)

数据源、转换和迁移工具执行所有必要的转换、汇总和更改,将数据转换为统一的仓库格式。它们也被称为 Ex。tract、转换和加载 (ETL) 工具。

其功能包括以下方面:

  • 根据监管规定匿名化数据。
  • 在将数据加载到数据仓库之前,先从运营数据库中删除不需要的数据。
  • 搜索和替换来自不同来源的数据的通用名称和定义。
  • 计算汇总数据和衍生数据。
  • 用默认值填充缺失数据。
  • 对来自多个来源的重复数据进行去重。

这些 ETL工具 可能会生成 cron 作业、后台作业、Cobol 程序和 shell 脚本,这些作业和脚本会定期刷新仓库并帮助维护元数据。

由于 ETL 工具需要从多个系统中提取数据,因此它们还必须应对数据库和数据的异构性。

元数据

元数据听起来可能很高级,但它其实就是定义数据仓库的数据。它用于构建、维护和管理数据仓库。

在架构中,元数据指定了数据的来源、用途、值和特征,并定义了如何更改和处理数据,因此它与数据仓库保持紧密联系。

例如,销售数据库中的一行可能包含:

4030 KJ732 299.90

这原本毫无意义,直到元数据解释说它代表型号 4030、销售代理 ID KJ732 和总销售额 299.90 美元。

因此,元数据是把数据转化为知识的重要组成部分,它有助于回答诸如以下问题:

  • 仓库中包含哪些表、属性和键?
  • 数据从何而来?
  • 数据重新加载了多少次?
  • 采用了哪些转化和净化方法?

元数据分为两类:

  1. 技术元数据: 这部分描述了设计人员和管理员构建和运行仓库的过程。
  2. 业务元数据: 这为最终用户提供了一种轻松了解仓库中存储的信息的方法。

查询工具

数据仓库的主要目标是为企业提供制定战略决策所需的信息,而查询工具则是用户与系统交互的方式。

这些工具分为四类:

  1. 查询和报告工具
  2. 应用开发工具
  3. 数据挖掘工具
  4. 联机分析处理工具

查询和报告工具

查询和报表工具分为两类:报表工具和托管查询工具。

报告工具 进一步细分为生产报表工具和桌面报表编写工具:

  1. 报告撰写者: 这些功能是为构建自己的分析的最终用户设计的。
  2. 生产报告: 这些工具使组织能够生成常规运营报告,并支持打印和计算等大批量作业。常见的例子包括 Brio 和 Business Objects。 OraclePowerSoft 和 SAS Institute。

托管查询工具 通过在用户和数据库之间插入元层来帮助最终用户,从而隐藏 SQL 和数据库结构的复杂性。

应用程序开发工具

当内置的图形和分析工具无法满足组织的分析需求时,可以使用应用程序开发工具构建自定义报告。

数据挖掘工具

数据挖掘能够从大量数据中发现有意义的新关联、模式和趋势,而数据挖掘工具则可以自动完成这一发现过程。

OLAP 工具

OLAP 这些工具建立在多维数据库之上,使用户能够通过复杂的多维视图来分析数据。

数据仓库总线 Archi质地

数据仓库总线决定了数据在仓库中的流动方式。这种流动可以分为流入、上行、下行、流出和元流。

在设计总线时,必须考虑跨数据集市的共享维度和事实。

数据集市

A 数据集市 数据仓库是用于向用户提供数据的访问层。它适用于大型数据仓库,因为构建起来耗时耗力,尽管目前对于数据仓库还没有统一的定义。

简单来说,数据集市是数据仓库的一个子集。它针对特定用户群体对数据进行分区,可以与数据仓库位于同一数据库中,也可以位于物理上独立的数据库中。

数据仓库 Archi架构最佳实践

要设计一个完善的数据仓库架构,请遵循以下最佳实践:

  • 无论是否使用针对信息检索优化的数据仓库模型, 尺寸的非规范化或混合方法。
  • 选择合适的设计方法,无论是自上而下还是自下而上。
  • 确保数据得到快速准确的处理,同时将其整合为单一的真实版本。
  • 精心设计数据仓库的数据采集和清洗流程。
  • 设计一种元数据架构,允许在仓库的各个组件之间共享元数据。
  • 考虑使用于 Opera当检索需求接近数据绝对值的底部时,采用国家数据存储(ODS)模型。trac信息金字塔或需要访问多个操作资源的情况。
  • 确保数据模型是集成的,而不仅仅是整合的;在这种情况下,使用 3NF 数据模型,这也是获取 ETL 和数据清洗工具时的理想选择。

常见问题

操作型数据库使用规范化的表来处理频繁的插入、更新和删除操作,从而实现事务处理。数据仓库是只读的、非易失性的,它以非规范化的结构存储历史数据,并且针对查询、报表和分析进行了优化,而非日常运维。

数据仓库是一个企业级存储库,用于存储来自多个来源的集成数据。 数据集市 是一个较小的子集,专注于一个部门或主题,例如销售或财务,这使得构建速度更快、成本更低,查询也更容易。

两者都是维度设计。星型模式将一个中心事实表直接链接到非规范化的维度表,形状像一颗星星。雪花模式则将这些维度规范化为相关的子表。参见 维度建模 事实和维度是如何组织的。

云数据仓库是由服务提供商托管的受管分析数据库,例如 Amazon 红移, Google BigQuery,又称 Snowflake。它可按需扩展存储和计算能力,减少硬件维护,并支持与本地数据仓库相同的分层架构和 ETL 管道。

单一数据源意味着每个用户和报告都基于同一套一致且完整的数据集。通过整合和标准化来自不同来源的数据,数据仓库消除了相互冲突的数据,从而确保决策基于相同的可信数字。

ETL extracELT 先加载原始数据,然后在暂存区进行转换,最后将其加载到数据仓库中。ELT 则先加载原始数据,并利用其计算能力在数据仓库内部进行转换。了解更多信息,请参阅…… ETL过程 解释。

人工智能和机器学习工具可提出模式设计建议,并自动执行 ETL 映射。ping它可以检测数据质量异常,并推荐能够加快查询速度的索引或分区。它们还可以预测存储增长。工程师在将每项建议应用到生产仓库之前都应该进行审核。

是的。 ChatGPT 能够根据描述生成 SQL、维度模型和 ETL 逻辑, GitHub 副驾驶 在编辑器中自动补全转换脚本。务必验证生成的模式和查询,因为 AI 可能会引用过时的语法或默认值。

总结一下这篇文章: