数据架构 - 设计方法
数据架构设计是关于制定组织如何收集、存储和使用其数据的计划。在本章中,我们将介绍数据架构设计中的不同方法和想法,以帮助您了解如何创建能够有效满足组织数据需求的系统。
目录
OLTP 和 OLAP 之间的区别
在线事务处理 (OLTP) 和 在线分析处理 (OLAP) 是两种主要的数据处理系统。
在线事务处理 (OLTP) 系统旨在使用关系数据库快速处理实时事务。它们允许用户轻松创建、读取、更新和删除数据。这些系统可以同时支持许多用户,通常用于收银机和网上银行等场所。
在线交易处理 (OLTP) 的功能
在本节中,我们将介绍 OLTP 系统 的主要功能,这些功能对于处理日常交易非常重要。这些功能包括。
- 专注于快速数据处理。
- 处理许多小额交易。
- 为多个用户保持数据准确性。
- 通常使用有组织的数据库来提高效率。
示例:银行处理客户取款和存款的系统。
在线分析处理 (OLAP) 系统专为数据分析和报告而设计。它们处理复杂的查询,允许用户从不同角度快速查看数据。 OLAP 数据库通常在称为多维数据集的结构中使用预先汇总的数据,从而可以轻松找到汇总信息。
联机分析处理 (OLAP) 的功能
在本节中,我们将介绍 OLAP 系统 的主要功能,这些功能使得它们对于分析数据和创建报告非常重要。这些包括。
- 专注于检索数据和进行复杂的计算。
- 处理更少但更复杂的查询。
- 通常使用更简单的数据库进行更快的分析。
- 支持以多种方式查看数据。
示例:一家零售公司的系统,用于分析不同地区和时间段的销售趋势
OLTP 和 OLAP 之间的主要区别
本节介绍 OLTP 和 OLAP 系统之间的主要区别。了解这些差异有助于您选择正确的系统来处理交易或分析数据。下表显示了主要功能。
功能 | OLTP(在线事务处理) | OLAP(在线分析处理) |
---|---|---|
处理类型: | 处理日常事务 | 专注于分析数据 |
数据类型: | 处理当前运营数据 | 使用汇总、合并数据 |
目的: | 支持日常业务活动 | 帮助制定决策 |
交易频率: | 频繁处理许多交易 | 偶尔处理数据 |
查询复杂性: | 快速处理简单查询 | 管理复杂查询以获得更深入的见解 |
响应时间: | 提供即时结果 | 可能需要几秒到几小时 |
数据库大小: | 通常以 GB 为单位 | 通常以 TB 为单位 |
操作和分析数据
操作数据是用于管理日常任务的实时数据。它由OLTP 系统处理,并提供业务的当前视图。操作数据通常数量很大,这意味着它包含大量频繁生成的信息,有助于快速做出决策。
操作数据的特征
当我们谈论操作数据时,我们指的是支持日常业务任务的信息。其功能包括。
- 用于日常业务活动
- 始终变化并不断更新
- 通常存储在 OLTP 系统中
示例:仓库中当前的物品数量。
分析数据是通过转换操作数据以提供历史视图而创建的。它由OLAP 系统和数据仓库管理。这些数据有助于我们了解随时间变化的趋势和模式,使其对报告和机器学习有用。通常,分析数据包含的信息较少,通常是从批量处理的较大集合中总结出来的。
分析数据的特征
在查看分析数据时,了解其主要特征非常重要,因为它们对于清晰的分析和决策非常重要。这些功能包括
- 用于制定业务决策
- 主要包含不会改变的旧数据
- 通常存储在 OLAP 系统或数据仓库中
示例:过去五年的销售数据用于预测未来趋势。
运营数据用于监控日常活动,而分析数据有助于做出长期决策。这两种类型的数据对于有效运营企业都很重要。 OLTP 系统管理操作数据,而 OLAP 系统或数据仓库用于分析数据。
对称多处理和大规模并行处理
对称多处理 (SMP) 是一种较旧的数据库设计,其中多个处理器使用同一服务器的内存和存储。它适用于日常事务 (OLTP),但难以处理数据仓库中的大量数据。您可以通过向同一服务器添加更多处理器来提高性能。
对称多处理的功能
本节介绍对称多处理 (SMP)的主要功能,其中多个处理器共享同一内存。这些功能包括。
- 所有处理器都使用相同的内存。
- 适用于需要并行处理的系统。
- 更易于管理和编程。
- 可扩展性有限,通常最多 32 个处理器。
示例:使用多个处理器同时处理查询的数据库服务器。
大规模并行处理 (MPP) 是一种较新的设计,它使用多个服务器,每个服务器都有自己的内存和存储。它允许您通过添加更多服务器来增加容量。在 MPP 中,数据分布在这些服务器上,任务被划分,以便可以同时处理,从而使处理大型数据集更加高效。
大规模并行处理的特点
本节介绍大规模并行处理 (MPP)的主要特点,其中每个处理器都有自己的内存。这些特点包括。
- 每个处理器都有自己的内存和操作系统。
- 高度可扩展;可以使用数百或数千个处理器。
- 非常适合处理非常大的数据集。
- 管理和编程更复杂。
示例:一个处理跨多个服务器的复杂查询的大数据仓库系统。
类比:想象一下寻找一张卡片。如果一个人在寻找(SMP),则需要更长的时间。但如果几个人各自寻找较少的卡片(MPP),则速度要快得多。
SMP和MPP系统最初都是作为本地安装开始的,但现在有许多基于云的选项可用。
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 架构。
多语言持久性和多语言数据存储
多语言持久性意味着在单个应用程序中使用不同的数据存储技术,具体取决于数据类型及其使用方式。这是关于为每个特定任务选择最佳工具的问题,类似于多语言编程如何使用多种编程语言来发挥它们的优势。
另一方面,多语言数据存储涉及在整个组织中使用不同的数据存储解决方案。每种类型的数据存储都针对特定数据类型或应用程序进行了优化,允许团队选择最佳选项,而不是依赖单一解决方案来解决所有问题。
例如,在电子商务平台中,您可能会使用而不是将所有数据存储在一个数据库中。
- 键值存储,用于快速检索购物车和会话数据。
- 文档存储,用于轻松管理已完成的订单。
- 关系数据库,用于结构化库存和定价数据。
- 图形存储,用于客户关系。
虽然使用多种数据存储技术可能会因为需要学习不同的系统而增加复杂性,但好处包括提高速度和性能。为每种数据类型选择正确的存储可以提高应用程序性能和开发速度。
多语言持久性的优势
在这里,我们将看到多语言持久性的一些关键优势,它允许根据不同的需求使用不同的数据库。这些包括。
- 灵活性:您可以根据需要使用不同类型的数据库。
- 效率:通过为每种数据选择最佳数据库,它可以帮助您的系统更好地运行。
- 可扩展性:随着数据的增长,它可以轻松支持新系统和技术。
多语言数据存储的优势
本节介绍多语言数据存储的主要优势,它结合了不同的存储解决方案以实现更好的数据管理。这些优势包括。
- 多样化功能:它结合了不同的存储解决方案,可以有效地处理各种数据。
- 更好的数据管理:使管理和分析来自各种来源的数据变得更简单。
- 经济高效:通过为每个任务使用正确的数据库来节省资金。
了解设计数据架构的不同方法对于构建高效的数据系统非常重要。最佳方法取决于您组织的需求和数据类型。成功的架构通常结合不同的方法来很好地管理数据。