数据架构 - 设计方法



数据架构设计 是关于制定一个计划,说明组织如何收集、存储和使用其数据。在本章中,我们将探讨数据架构设计中的不同方法和理念,帮助您了解如何创建满足组织数据需求的有效系统。

目录

OLTP 和 OLAP 之间的区别

联机事务处理 (OLTP)联机分析处理 (OLAP) 是两种主要类型的数据处理系统。

联机事务处理 (OLTP) 系统旨在利用关系数据库快速处理实时事务。它们允许用户轻松创建、读取、更新和删除数据。这些系统可以同时支持许多用户,并且通常用于收银机和网上银行等场所。

联机事务处理 (OLTP) 的特点

在本节中,我们将探讨OLTP 系统的关键特性,这些特性对于处理日常事务至关重要。其中包括:

  • 专注于快速数据处理。
  • 处理大量的小型事务。
  • 保持多个用户的数据准确性。
  • 通常使用组织良好的数据库以提高效率。

示例:银行用于处理客户取款和存款的系统。

联机分析处理 (OLAP) 系统专为数据分析和报表设计。它们处理复杂的查询,允许用户从不同的角度快速查看数据。OLAP 数据库通常使用称为多维数据集的结构中的预汇总数据,从而可以轻松找到汇总信息。

联机分析处理 (OLAP) 的特点

在本节中,我们将探讨OLAP 系统的关键特性,这些特性使其对于分析数据和创建报表至关重要。其中包括:

  • 专注于检索数据和执行复杂的计算。
  • 处理较少但更复杂的查询。
  • 通常使用更简单的数据库以加快分析速度。
  • 支持以多种方式查看数据。

示例:零售公司用于分析不同地区和时间段内销售趋势的系统

OLTP 和 OLAP 的主要区别

本节展示了OLTPOLAP 系统之间的主要区别。了解这些差异有助于您选择合适的系统来处理事务或分析数据。下表显示了主要功能。

    功能 OLTP(联机事务处理) OLAP(联机分析处理)
    处理类型 处理日常事务 专注于数据分析
    数据类型 处理当前运营数据 使用汇总的、整合的数据
    用途 支持日常业务活动 辅助决策
    事务频率 频繁处理大量事务 偶尔处理数据
    查询复杂度 快速处理简单查询 管理复杂的查询以获得更深入的见解
    响应时间 提供即时结果 可能需要几秒到几小时
    数据库大小 通常为千兆字节 通常为兆兆字节

运营数据和分析数据

运营数据 是用于管理日常任务的实时数据。它由OLTP 系统处理,并提供业务的当前视图。运营数据通常具有高容量,这意味着它包含大量频繁生成的信息,这有助于做出快速决策。

运营数据的特点

当我们谈论运营数据时,我们指的是支持日常业务任务的信息。其特点包括:

  • 用于日常业务活动
  • 始终在变化并不断更新
  • 通常存储在 OLTP 系统中

示例:仓库中当前的物品数量。

分析数据 是通过转换运营数据以提供历史视图而创建的。它由OLAP 系统数据仓库管理。这些数据有助于我们了解随时间推移的趋势和模式,使其对报表和机器学习有用。通常,分析数据包含的信息较少,并且通常是从经过批量处理的大型数据集汇总而来。

分析数据的特点

在查看分析数据时,了解其关键特征非常重要,因为它们对于清晰的分析和决策至关重要。这些特征包括:

  • 用于业务决策
  • 主要包含不发生变化的旧数据
  • 通常存储在 OLAP 系统或数据仓库中

示例:过去五年的销售数据,用于预测未来的趋势。

运营数据 用于监控日常活动,而分析数据 有助于长期决策。这两种类型的数据对于有效地运营企业都至关重要。OLTP 系统管理运营数据,而 OLAP 系统或数据仓库用于分析数据。

对称多处理和海量并行处理

对称多处理 (SMP) 是一种较旧的数据库设计,其中多个处理器使用同一服务器的内存和存储。它适用于日常事务 (OLTP),但难以处理数据仓库中发现的大量数据。您可以通过向同一服务器添加更多处理器来提高性能。

对称多处理的特点

本节探讨了对称多处理 (SMP) 的关键特性,其中多个处理器共享同一内存。这些特性包括:

  • 所有处理器都使用同一内存。
  • 适用于需要一些并行处理的系统。
  • 易于管理和编程。
  • 可扩展性有限,通常最多 32 个处理器。

示例:使用多个处理器同时处理查询的数据库服务器。

海量并行处理 (MPP) 是一种较新的设计,它使用多个服务器,每个服务器都有自己的内存和存储。它允许您通过添加更多服务器来提高容量。在 MPP 中,数据分布在这些服务器上,并且任务被划分以便可以同时处理,这使得它对于大型数据集更加高效。

海量并行处理的特点

本节介绍了海量并行处理 (MPP) 的关键特性,其中每个处理器都有自己的内存。这些特性包括:

  • 每个处理器都有自己的内存和操作系统。
  • 高度可扩展;可以使用数百或数千个处理器。
  • 非常适合处理超大型数据集。
  • 管理和编程更加复杂。

示例:处理跨多个服务器的复杂查询的大数据仓库系统。

类比:想象一下搜索卡片。如果一个人在搜索 (SMP),则需要更长的时间。但是,如果几个人分别搜索较少的卡片 (MPP),则速度会快得多。

SMPMPP 系统最初都作为本地安装开始,但现在有许多基于云的选项可用。

Lambda 架构

Lambda 架构 旨在利用批处理(用于历史数据)和实时流处理(用于实时数据)来处理大量数据。它结合了这些方法,以提供信息的完整视图。

Lambda 架构的关键概念

本节解释了Lambda 架构用于处理数据的主要思想。这些概念是:

  • 批处理层:处理大量历史数据。
  • 速度层:处理实时数据流。
  • 服务层:使用批处理和实时视图响应查询。

Lambda 架构的关键原则

在这里,我们将探讨Lambda 架构的关键原则,这些原则使其能够良好运行。这些原则包括:

  • 双数据模型:使用一个系统用于批处理数据,另一个系统用于实时数据。
  • 统一视图:在一个地方显示批处理和实时结果。
  • 独立的处理层:批处理和实时处理独立工作,以便于开发和扩展。

Lambda 架构流程

在本节中,我们将了解Lambda 架构用于管理数据的流程。这些步骤包括:

  • 数据层:从不同的来源收集数据,无论是连续传入(流式)还是按设定的时间传入(定期)。
  • 流层:快速处理最新数据,以牺牲一些准确性来换取更快的结果。这些数据通常存储在数据湖中,以便于访问。
  • 批处理层:将所有数据一起处理以确保准确性,作为信息的主要来源。
  • 展示层:根据用户的需求决定何时使用批处理层或流层的数据。

Lambda 架构的优势

以下是Lambda 架构用于数据管理的主要优势。

  • 它有效地处理数据,提供实时和历史信息。
  • 它提供对数据的清晰理解,这对于现代应用程序至关重要。

Lambda 架构的用例和局限性

Lambda 架构非常适用于需要实时和历史数据的应用程序,例如推荐系统。但是,它可能很复杂,并且可能不是以下情况的最佳选择:

  • 高实时数据:对于需要快速处理大量实时数据的系统,Lambda 架构可能无法很好地工作,在这种情况下,Kappa 架构可能是更好的选择。
  • 状态跟踪:如果您需要随时间监控事件,Lambda 架构可能不是最佳选择,因为它不跟踪状态。

Kappa 架构

Kappa 架构完全专注于实时处理数据。它不像 Lambda 架构那样处理批处理数据。它旨在管理高容量数据并快速响应。

Kappa 架构的关键特性

本节介绍了使**Kappa 架构**有效的关键特性。这些特性包括:

  • **实时处理:**数据在到达时立即进行处理,从而实现更快的响应。
  • **单一事件流:**所有数据都通过一个主数据流,这使得系统易于扩展和从故障中恢复。
  • **无状态处理:**每个数据片段都是独立处理的,因此无需记住过去的数据。这使得扩展系统变得更容易。

Kappa 架构的优势

在本节中,我们将讨论**Kappa 架构**的一些关键优势,使其成为一个极佳的选择。这些优势包括:

  • 比 Lambda 架构更容易构建和维护。
  • 为实时数据和历史数据提供一致的处理。
  • 更易于理解和调试。

Kappa 架构的局限性

在这里,我们将探讨**Kappa 架构**的一些关键局限性,这些局限性可能会影响其使用。这些包括:

  • **复杂性:**由于其结构,设置和维护可能很困难。
  • **无批处理:**Kappa 难以处理旧数据和批量处理,使其不太适合分析历史信息。
  • **有限的即席查询:**它可能不适用于需要大量历史数据的快速搜索。

何时使用 Kappa 架构

**Kappa 架构**最适合需要快速实时数据处理而无需分析历史数据的应用程序。在以下情况下它表现出色:

  • **实时应用:**它非常适合需要快速更新的服务,例如流媒体或股票交易。
  • **关注当前数据:**这种架构非常适合您只需要最新信息的情况。
  • **对于历史数据需求:**如果您还需要分析过去的数据,最好选择 Lambda 架构。

多语言持久性和多语言数据存储

**多语言持久化**是指根据数据类型及其用途,在一个应用程序中使用不同的数据存储技术。这类似于多语言编程使用多种编程语言来利用其优势,即为每个特定任务选择最佳工具。

另一方面,**多语言数据存储**涉及在整个组织中使用不同的数据存储解决方案。每种类型的数据存储都针对特定数据类型或应用程序进行了优化,允许团队选择最佳选项,而不是依赖于单一的解决方案来处理所有问题。

**例如,**在一个电子商务平台中,您可以使用以下方法,而不是将所有数据存储在一个数据库中:

  • 键值存储,用于快速检索购物车和会话数据。
  • 文档存储,用于轻松管理已完成的订单。
  • 关系数据库,用于结构化的库存和定价数据。
  • 图存储,用于客户关系。

虽然使用多种数据存储技术可能会因需要学习不同的系统而增加复杂性,但其好处包括提高速度和性能。为每种数据类型选择合适的存储方式可以带来更好的应用程序性能和开发速度。

多语言持久化的优势

在这里,我们将看到**多语言持久化**的一些关键优势,它允许根据不同的需求使用不同的数据库。这些优势包括:

  • **灵活性:**您可以根据需要使用不同类型的数据库。
  • **效率:**通过为每种数据选择最佳数据库,它有助于提高系统的运行效率。
  • **可扩展性:**随着数据量的增长,它可以轻松支持新的系统和技术。

多语言数据存储的优势

本节介绍了**多语言数据存储**的主要优势,它结合了不同的存储解决方案以实现更好的数据管理。这些优势包括:

  • **多样的功能:**它结合了不同的存储解决方案,可以有效地处理各种数据。
  • **更好的数据管理:**简化了来自各种来源的数据的管理和分析。
  • **经济高效:**通过为每个任务使用正确的数据库来节省成本。

了解**设计数据架构**的不同方法对于构建高效的数据系统至关重要。最佳方法取决于组织的需求和数据类型。成功的架构通常会结合不同的方法来有效地管理数据。

广告