Coursera 笔记

Module 03 · Data Engineering Lifecycle数据工程生命周期

Factors for Selecting and Designing Data Stores数据存储设计考量:类型、规模与用途

Coursera ↗

数据存储 (Data Store) 或数据存储库 (Data Repository) 是一个通用术语,指的是经过收集、组织和隔离的数据,以便用于业务运营或用于报告和数据分析的挖掘。

💡 存储库类型:一个存储库可以是数据库、数据仓库、数据集市、大数据存储或数据湖。

关键:设计良好的数据存储库对于构建一个可扩展且能够应对高工作负载的系统至关重要。

本视频将探讨设计数据存储库的一些主要考量因素:

  1. 数据的类型 (Type of Data)
  2. 数据量级 (Volume of Data)
  3. 数据的预期用途 (Intended Use of Data)
  4. 存储考量 (Storage Considerations)
  5. 组织的隐私、安全和治理需求 (Privacy, Security, and Governance Needs)

Ⅰ. 数据的类型与数据库选择

选择合适的数据库是设计的关键部分。数据库本质上是数据的集合,专为数据的输入、存储、搜索、检索和修改而设计。

根据数据的类型,数据库可分为两大类:关系型和非关系型。

1. 关系型数据库 (RDBMS)

  • 用途:最适合结构化数据。
  • 特点:具有明确定义的模式 (Schema),可以组织成表格格式。

2. 非关系型数据库 (NoSQL)

  • 用途:最适合半结构化和非结构化数据。
  • 特点:即无模式 (Schema-less) 和自由形式的数据。
  • 四种类型:根据数据类型和查询方式,非关系型数据库可分为四种:
    • 键值 (Key-Value)
    • 文档 (Document)
    • 列 (Column)
    • 图 (Graph-based)

📌 选择匹配性:

  • 如果您需要运行复杂的搜索查询和多操作事务,文档型数据库可能不是最佳选择。
  • 如果您需要处理高容量事务,您就不会选择图数据库,因为图数据库未针对大容量分析查询进行优化。

Ⅱ. 数据量级与存储模型

数据存储设计的另一个重要考量是数据的体量或规模。

  • 数据湖 (Data Lake):当您需要以其原始格式存储海量原始数据时,数据湖是合适的选择。
    • 特点:您可以不定义数据的结构和模式,扩展存储关系型和非关系型数据。
  • 大数据存储 (Big Data Store):当您处理大数据(不仅是高体量,还具有高速度、多样性,需要分布式处理以进行快速分析)时,大数据存储是您可以探索的选项。
    • 特点:大数据存储将大文件拆分到多台计算机上,允许并行访问。计算在存储数据的每个节点上并行运行。

Ⅲ. 数据的预期用途

您打算如何使用收集到的数据,是选择和设计数据存储的另一个重要考量。

事务数量、更新频率、数据上执行的操作类型、响应时间和备份恢复要求都需要在数据存储设计中进行规划。

系统类型 设计用途 关键设计要求
事务系统 (Transactional Systems) 用于捕获高容量事务数据(如 OLTP)。 必须设计为实现高速读取、写入和更新操作。
分析系统 (Analytical Systems) 用于对从事务系统聚合的大量历史数据应用复杂查询。 需要对复杂查询有更快的响应时间。

性能优化与规范化

  • 性能要素:模式设计、索引和分区策略对于系统性能(基于数据的使用方式)起着重要作用。
  • 可扩展性 (Scalability):数据的预期用途也会推动可扩展性作为设计考量。数据存储的可扩展性是其处理数据量、工作负载和用户增长的能力。
  • 数据库规范化 (Normalization):在设计阶段的另一个重要考量。
    • 定义:有效组织数据库中数据的过程。
    • 作用:如果做得好,有助于优化存储空间的使用,使数据库维护更容易,并提供更快的数据访问。
    • 适用性:对于处理事务数据的系统很重要。但对于设计用于处理分析查询的系统,规范化可能导致性能问题。

Ⅳ. 关键存储设计考量 (PAIR)

从存储的角度来看,一些关键的设计考量包括:

  • 性能 (Performance)
    • 参数:包括吞吐量(信息可以从存储中读取和写入的速率)和延迟(访问存储中特定位置所需的时间)。
  • 可用性 (Availability)
    • 要求:存储解决方案必须确保您在需要时能够访问数据,无一例外,不应有停机时间。
  • 完整性 (Integrity)
    • 要求:您的数据必须安全,免受损坏、丢失和外部攻击。
  • 可恢复性 (Recoverability)
    • 要求:存储解决方案应确保在发生故障和自然灾害时,您可以恢复数据。

Ⅴ. 隐私、安全与治理

安全的数据策略是一种分层方法,包括:

  • 访问控制 (Access Control)
  • 多区域加密 (Multizone Encryption)
  • 数据管理 (Data Management)
  • 监控系统 (Monitoring Systems)

合规性与设计

  • 法规限制:GDPR、CCPA 和 HIPAA 等法规限制了个人和敏感数据的所有权、使用和管理。
  • 数据保护:需要通过使用多种数据保护技术,利用受控的数据流和数据管理来提供数据。
  • 设计整合:数据隐私、安全和治理法规的策略需要从一开始就成为数据存储设计的一部分,后期才进行会导致修修补补。

在本视频中,我们了解了指导数据存储设计的一些考量因素。