读数据架构知识体系指南04数据湖(下)

读数据架构知识体系指南04数据湖(下)

1. 数据湖设计的最佳实现方案

1.1. 设计数据湖应该是一个耗时的过程

  • 1.1.1. 通常公司在设计数据湖时没有花足够的时间考虑所有用例,后来不得不重新设计和重建

  • 1.1.2. 公司必须仔细考虑现在和将来使用的所有数据源,并了解数据的大小、类型和速度

  • 1.1.3. 尽可能多地了解有关数据湖设计的信息,并选择适合的设计方案

1.2. 数据湖通常不会对它所采集的数据规定特定的结构,这是数据湖的一个关键特性

1.3. 为了使数据可用并且防止数据湖变成“数据沼泽”​(即无组织和难以管理的数据集合)​,重要的是应用一些组织和治理数据的实践经验

1.4. 逻辑上将数据湖分为多个层次(也称为区域)​,这些层次与数据质量的逐步提高相对应

  • 1.4.1. 所有文件被放在一个文件夹中,这将严重影响性能、可管理性和安全性

1.5. 从未经处理的原始数据逐步进化到高度精炼且适用于业务的信息

  • 1.5.1. 原始层

  • 1.5.1.1. 原始事件数据通常会永久保存(不可更改)​,以供将来参考

  • 1.5.1.2. 可以将原始层想象为一个水库,其中存储的数据处于其自然和原始状态(未进行任何转换)​,未经过滤和净化

  • 1.5.1.3. 称为青铜层、暂存层或着陆区

  • 1.5.2. 符合层

  • 1.5.2.1. 很多时候,原始层中的数据以不同的格式存储,例如CSV、JSON和Parquet

  • 1.5.2.2. 符合层是将所有文件格式转换为一种格式的地方,通常转换为Parquet格式

  • 1.5.2.3. 称为基础层或标准化层

  • 1.5.3. 清洗层

  • 1.5.3.1. 原始事件被转换(数据被清洗、合并和汇总)为可以直接使用的数据集

  • 1.5.3.2. 可以将清洗层看作过滤层,它可以去除杂质,还可能会丰富数据

  • 1.5.3.3. 目的是使存储的文件在编码、模式、格式、数据类型和内容等方面统一

  • 1.5.3.4. 称为银色层、转换层、精炼层、整合层、处理层或丰富层

  • 1.5.4. 表示层

  • 1.5.4.1. 在对数据进行清洗后,将在此层应用业务逻辑,来生成可供用户或应用程序使用的数据,通常以易于理解和使用的格式呈现

  • 1.5.4.2. 转换可能涉及汇总或概括,也可能意味着将文件放入特定的布局中,以便在报表工具中使用,通常每个文件中还包含有关数据(元数据)的信息

  • 1.5.4.3. 称为应用程序层、工作空间层、可信层、金层、安全层、生产就绪层、受控层、精选层、服务层、分析层或消费层

  • 1.5.5. 沙箱层

  • 1.5.5.1. 可选层用于“试验”​

  • 1.5.5.2. 通常,这一层是数据科学家使用的

  • 1.5.5.3. 常是原始层的副本,数据在这里不仅可以被读取*,还可以被修改

  • 1.5.5.4. 可以创建多个沙箱层

  • 1.5.5.5. 称为探索层、开发层或数据科学工作区

  • 1.5.6. 一致层和清洗层

1.6. 另一个最佳实现方案是创建一个文件夹结构,通常为每一层创建一个不同的文件夹,可以根据不同的原因以多种不同的方式进行划分

  • 1.6.1. 数据分离

  • 1.6.1.1. 按照来源、业务部门或数据类型来组织数据,能让数据科学家和分析师更轻松地找到并使用相关数据

  • 1.6.2. 访问控制

  • 1.6.2.1. 组织内的不同团队或个人对数据的访问权限可能各不相同

  • 1.6.2.2. 根据用户角色或部门来构建文件夹,组织能够实施精细的访问控制策略

  • 1.6.3. 性能优化

  • 1.6.3.1. 以特定的方式组织数据可以提高性能

  • 1.6.4. 数据生命周期管理

  • 1.6.4.1. 数据通常有一个生命周期,从采集到归档或删除

  • 1.6.4.2. 可能会使用不同的文件夹根据数据在生命周期中的阶段来分离数据

  • 1.6.5. 元数据管理

  • 1.6.5.1. 文件夹可以用来管理和分离原始数据中的元数据

  • 1.6.5.2. 这种分离可以简化元数据管理并加快数据查询速度

  • 1.6.6. 合法要求

  • 1.6.6.1. 在许多行业中,法律规定某些类型的数据必须以特定的方式存储和管理

  • 1.6.6.2. 不同的文件夹结构可以帮助组织满足这些要求

  • 1.6.7. 备份和灾难恢复

  • 1.6.7.1. 拥有不同的文件夹结构可以帮助创建战略备份和灾难恢复计划

  • 1.6.7.2. 某些文件夹可能会根据其重要性进行更频繁的备份或保留更长的时间

  • 1.6.8. 数据版本控制

  • 1.6.8.1. 不同的文件夹可以用来管理同一数据集的不同版本

  • 1.6.9. 数据分区

  • 1.6.9.1. 数据可以通过关键属性进行分区,以获得更快的查询性能

  • 1.6.10. 采集和处理的需要

  • 1.6.10.1. 根据来源,数据可能需要不同的处理过程

  • 1.6.10.2. 不同的文件夹可以帮助管理和简化这些过程

1.7. 大多数情况下,所有这些层级都在一个云订阅服务中,但也有一些例外情况,比如你对计费有特定要求、即将达到订阅限制,或者希望为开发、测试和生产环境分别订阅服务

1.8. 大多数客户为每一层创建一个存储账户(因此三层意味着三个存储账户)​,所有都在一个资源组中(为解决方案保存相关资源的容器)​

  • 1.8.1. 各层被隔离开,有助于提高性能的可预测性,并允许在存储账户级别提供不同的特性和功能

1.9. 大多数云服务提供商通常会在每个存储账户层级提供一些典型的功能特性,其中包括生命周期管理,它可以通过自动化数据管理任务(如将数据在不同存储层级之间迁移或在数据不再需要时将其删除)来降低成本

  • 1.9.1. 可以设置防火墙规则,仅允许向某些可信的组或个人提供访问权限,或者防止触及账户的存储或带宽限制

1.10. 大多数数据湖使用云存储访问层级,原始层和符合层使用归档层,清洗层使用冷层,表示层和沙箱层使用热层

  • 1.10.1. 每个层提供了不同的存储成本和访问成本,其中热层的存储成本最高,而归档层的检索成本最高

1.11. 应该在数据流经各个层级时进行审计或完整性检查,以确保数据的准确性

2. 多数据湖

2.1. 理想情况下,只需创建一个大型数据湖并用于所有数据

  • 2.1.1. 可简化查询或生成报表时的数据查找和合并工作

  • 2.1.2. 可能需要创建多个物理上分离的数据湖,而不是仅将一个数据湖划分为不同的部分

2.2. 潜在的好处包括增加安全性、提高合法性,以及跨不同业务部门或特定用例的更好的数据管理

2.3. 优点

  • 2.3.1. 组织结构和所有权

  • 2.3.1.1. 维护多个数据湖有很多好处,其中大多数与组织结构和所有权有关

  • 2.3.1.2. 不同的团队或部门可能需要为特定的用例或项目创建各自独特的数据湖

  • 2.3.1.3. 公司还可以从拥有一个源数据湖以及一个消费者数据湖中获益

  • 2.3.1.4. 可以将数据复制到消费者数据湖中,并进行转换以使其更容易理解

  • 2.3.1.5. 将源数据湖和消费者数据湖分开而不是使用单一的数据湖可以简化数据处理过程

  • 2.3.2. 合法性、管理方式和安全性

  • 2.3.2.1. 是建立多个数据湖还是只建立一个,这个问题受到合法性、管理方式和安全性等多个因素的影响

  • 2.3.2.2. 因为不同地区的数据驻留或主权要求各不相同,所以多区域部署需要多个数据湖

  • 2.3.2.3. 另一个关键因素是,多个数据湖可以将敏感或机密数据与不太敏感的数据分离开来

2.3.2.3.1. 可以针对敏感数据湖专门应用更严格的安全控制措施,从而提高整体数据安全性

  • 2.3.2.4. 如果某些个体拥有较高的访问权限,那么分离的数据湖可以限制这些权限的范围,仅限于该个体正在使用的特定数据湖

2.3.2.4.1. 有助于创建更安全的数据环境

  • 2.3.2.5. 多样化的管理和合法要求可能是拥有多个数据湖的驱动力

  • 2.3.3. 云订阅、服务限制和政策

  • 2.3.3.1. 拥有多个数据湖也有一些优势,这些优势主要与云订阅、服务限制和政策有关

  • 2.3.3.2. 多个数据湖可以实施不同的云策略

  • 2.3.3.3. 云服务提供商通常提供数百种不同的策略选项,可以为每个数据湖单独进行定制

  • 2.3.3.4. 灵活性有助于确保符合公司政策

  • 2.3.3.5. 当你为每个数据湖单独订阅云服务时,就可以更直观地追踪成本,以便进行账单结算

  • 2.3.4. 性能、可用性和灾难恢复

  • 2.3.4.1. 性能、可用性和灾难恢复也是考虑使用多个数据湖的因素

  • 2.3.4.2. 原因是延迟的改善。如果全球用户正在访问一个数据湖,那些距离较远的用户可能会发现服务相当慢

  • 2.3.4.3. 通过将数据湖放置在与查询数据的终端用户或应用程序相同的地区,可以显著减少访问数据所需的时间

  • 2.3.4.4. 如果一个地区的数据湖无法访问,终端用户可以被重定向到另一个拥有相同数据的备用地区

  • 2.3.4.5. 拥有多个数据湖还可以为不同类型的数据实施不同的数据恢复和灾难恢复策略

  • 2.3.4.6. 通过多个数据湖,可以为不同类型的数据实现不同的服务级别

  • 2.3.4.7. 这种策略通过对优先级较低的数据使用较低成本的存储和处理资源,来优化数据管理基础设施的成本和性能

  • 2.3.5. 数据存储和环境管理

  • 2.3.5.1. 多个数据湖可以让数据存储和环境管理更加高效

  • 2.3.5.2. 可以最大限度地减少数据生命周期不同阶段之间的干扰或冲突的风险

  • 2.3.5.3. 可以实施不同的数据存储策略。法律或监管要求通常会规定需要存储数据的特定期限

  • 2.3.5.4. 如果不同类型的数据有单独的数据湖,可以轻松地执行针对这些类型量身定制的不同存储政策

  • 2.3.5.5. 这种方法可以高效地管理数据存储,在优化存储资源的同时确保符合各种法规

2.4. 缺点

  • 2.4.1. 使用多个数据湖会增加数据管理基础设施的复杂性和成本,需要更多的资源和更多的专业知识来维护,所以如果可以选择,权衡利弊是很重要的

  • 2.4.2. 在多个数据湖之间正确地传输数据,同时保持数据一致性,可能需要额外的集成和管理工具

  • 2.4.3. 查询或报表需要来自多个数据湖的数据时,拥有多个数据湖增加了组合数据的性能挑战

  • 2.4.4. 如果这些湖的物理位置非常遥远,甚至可能位于世界的不同地方,那么将所有数据复制到一个位置可能会非常耗时

posted @ 2026-09-23 06:45  躺柒  阅读(6)  评论(0)    收藏  举报