什么是数据湖?定义 Archi架构与最佳实践

⚡ 智能摘要

数据湖架构采用扁平化设计,以原生格式存储结构化、半结构化和非结构化数据。每个元素都拥有唯一的标识符和元数据标签,从而无需预定义的企业级模式即可进行分析。

  • 🗄️ 核心定义: 一个以原始形式存储所有数据类型的存储库,对帐户大小或文件大小没有固定限制。
  • ????️ 层级结构: 摄取、存储、提炼、处理、洞察和统一操作构成了六个架构层级。
  • ???? 关键零件: 摄取、存储、治理、安全、质量、发现、审计、血统和探索必须协同工作。
  • 📈 成熟路径: 四个阶段将组织从原始吸收过渡到在湖内进行全面的企业治理。
  • 仓库对比: 数据湖在读取时应用模式供数据科学家使用,数据仓库在写入时应用模式供业务报告使用。
  • ⚠️ 主要风险: 薄弱的访问控制和缺乏监管将一个无人管理的湖泊变成了一个无法使用的数据沼泽。

什么是数据湖 Archi质地

什么是数据湖?

数据湖是一个存储库,可以存储大量结构化、半结构化和非结构化数据。它是以原生格式存储每种类型数据的地方,对帐户大小或文件没有固定限制。它提供大量数据以提高分析性能和原生集成。

数据湖就像一个巨大的容器,与真实的湖泊和河流非常相似。就像湖泊中有多个支流流入一样,数据湖中有结构化数据、非结构化数据、机器对机器数据、实时流经的日志。

数据湖
数据湖

如上图所示,许多独立的数据流汇聚到一个存储的数据集中。数据湖实现了数据的民主化,并以经济高效的方式存储组织的所有数据以供后续处理。研究分析师可以将精力集中在发现数据中的意义模式,而不是数据本身。

与等级制度不同 数据仓库 数据湖采用扁平架构,数据存储在文件和文件夹中。数据湖中的每个数据元素都被赋予一个唯一的标识符,并标有一组元数据信息。

为什么选择数据湖?

构建数据湖的主要目的是向数据科学家提供未精炼的数据视图。

使用数据湖的原因是:

  • 随着存储引擎的出现 Hadoop的 存储不同的信息变得容易。无需使用数据湖将数据建模为企业范围的模式。
  • 随着数据量、数据质量和元数据的增加,分析的质量也随之提高。
  • 数据湖提供业务敏捷性
  • 机器学习 并且人工智能可以用来做出有利可图的预测。
  • 它为实施组织提供了竞争优势。
  • 没有数据孤岛结构。数据湖可以360度查看客户,使分析更加可靠。

数据湖 Archi质地

数据湖 Archi质地
数据湖 Archi质地

该图显示了业务数据湖的架构。较低层表示大部分处于静止状态的数据,而较高层表示实时事务数据。这些数据在系统中流动时没有或几乎没有延迟。以下是数据湖中的重要层 Archi結構:

  1. 摄取层:左侧的层级表示数据源。数据可以批量或实时加载到数据湖中
  2. 洞察层: 右侧的层级代表使用系统见解的研究方面。 SQL、NoSQL 查询,甚至 Excel 都可以用于数据分析。
  3. 高密度文件系统 是结构化和非结构化数据的经济高效解决方案。它是系统中所有静态数据的着陆区。
  4. 蒸馏层 从存储层获取数据并将其转换为结构化数据,以便更轻松地进行分析。
  5. 处理层 运行分析算法和用户查询,以不同的实时、交互式、批量的方式生成结构化数据,从而更容易进行分析。
  6. 统一操作层 管理系统管理和监控。它包括审计和熟练程度管理、数据管理、 工作流程管理.

关键数据湖 Concepts

以下是需要理解的关键数据湖概念,才能完全理解数据湖 Archi质地

资料撷取

数据提取允许连接器从不同的数据源获取数据并加载到数据湖中。

数据提取支持:

  • 所有类型的结构化、半结构化和非结构化数据。
  • 多种摄取,如批量、实时、一次性加载。
  • 许多类型的数据源,如数据库、Web 服务器、电子邮件、 IoT和 FTP。

数据存储

数据存储应具有可扩展性,提供经济高效的存储并允许快速访问数据探索。它应支持各种数据格式。

数据治理

数据治理是管理组织中使用的数据的可用性、可用性、安全性和完整性的过程。

安保防护

数据湖的每一层都需要实施安全性。从存储、挖掘和消费开始。基本需求是阻止未经授权的用户访问。它应该支持不同的工具来访问数据,并具有易于导航的 GUI 和仪表板。

身份验证、会计、授权和数据保护是数据湖安全的一些重要特征。

数据质量

数据质量是数据湖架构的重要组成部分。数据用于实现具体的业务价值。例如:trac从低质量数据中获取洞察只会导致低质量的洞察。

数据发现

数据发现是开始准备数据或分析之前的另一个重要阶段。在此阶段,标记技术用于通过组织和解释数据湖中摄取的数据来表达对数据的理解。

数据审计

两项主要的数据审计任务是: tracking 对关键数据集进行了更改。

  1. Tracking 重要数据集元素的更改
  2. 捕捉如何/何时/以及谁改变这些元素。

数据审计有助于评估风险和合规性。

数据沿袭

该组件处理数据的来源。它主要关注数据随时间推移的流转路径和处理过程。它有助于在数据分析过程中,从数据源头到最终目的地,更正错误。

数据探索

这是数据分析的开始阶段。在开始数据探索之前,识别正确的数据集至关重要。

所有给定的组件需要协同工作,在数据湖构建中发挥重要作用,轻松发展和探索环境。

热门数据湖平台

上述层级通常是由托管云服务组装而成,而非从零开始构建。以下平台涵盖了大多数实现方案最初使用的存储和编目层。

  • Amazon S3 与 AWS Lake Formation: 对象存储与一项服务配合使用,该服务负责注册数据源、设置权限并构建数据目录。请参阅 AWS教程 为了更广泛的生态系统。
  • Azure 第二代数据湖存储: 在 Blob 存储之上添加了分层命名空间,从而提供目录级安全性和更快的分析访问。
  • Google Cloud 使用 BigLake 进行存储: 将对象存储与直接读取开放表格式的查询层相结合。
  • Apache Hadoop 与 HDFS: 最初的本地部署方案,仍然适用于数据必须保留在私有数据中心内的情况。
  • Databricks 和 Snowflake: 能够分层显示表格格式的平台,例如 Delta 在对象存储上采用 Lake 和 Apache Iceberg 来添加事务和版本控制功能。

通常情况下,选择会遵循组织已使用的云提供商,因为数据摄取和 商业智能工具 在单一生态系统内以最低成本进行整合。

数据湖的成熟阶段

数据湖成熟度阶段的定义在不同的教科书中有所不同。尽管关键是一样的。成熟度之后,阶段定义是从外行人的角度出发的。

第 1 阶段:大规模处理和提取数据

数据成熟度的第一阶段涉及提高转换和分析数据的能力。在此阶段,企业主需要根据自己的技能组合找到获取更多数据的工具并构建分析应用程序。

第二阶段:培养分析能力

这是第二阶段,涉及提高转换和分析数据的能力。在此阶段,公司使用最适合其技能的工具。他们开始获取更多数据并构建应用程序。在这里,企业数据仓库和数据湖的功能一起使用。

第三阶段:EDW 与数据湖协同工作

此步骤涉及将数据和分析交到尽可能多的人手中。在此阶段,数据湖和企业数据仓库开始联合工作。两者都在分析中发挥着作用

第四阶段:湖中的企业能力

在数据湖的成熟阶段,企业功能被添加到数据湖中。采用信息治理、信息生命周期管理功能和元数据管理。然而,很少有组织能够达到这种成熟度水平,但未来这一数字将会增加。

数据湖实施的最佳实践

  • Archi结构组件、它们的交互和已识别的产品应支持本机数据类型
  • 数据湖的设计应该由可用内容驱动,而不是由所需内容驱动。模式和数据要求只有在查询时才会定义
  • 设计应该以与服务 API 集成的一次性组件为指导。
  • 数据发现、提取、存储、管理、质量、转换和可视化应该独立管理。
  • 数据湖架构应针对特定行业进行量身定制。它应确保该领域所需的功能是设计固有的一部分
  • 更快地加入新发现的数据源非常重要
  • 数据湖有助于定制化管理,例如tract 最大值
  • 数据湖应该支持现有的企业数据管理技术和方法

构建数据湖的挑战:

  • 在数据湖中,数据量更大,因此流程必须更加依赖于程序化管理
  • 处理稀疏、不完整、易变的数据很困难
  • 更广泛的数据集和来源需要更大的数据治理和支持

⚠️警告: 缺乏编目元数据和强制访问规则的数据湖会变成数据沼泽。数据虽然存在,但无人能够找到它、信任它,或证明是谁修改了它。因此,数据治理是启动阶段的必要条件,而非后续阶段。

数据湖和数据仓库之间的区别

以下对比总结了每家门店的定位。更详细的分析请参见下文。 数据湖与数据仓库 比较。

参数 数据湖 数据仓库
时间 数据湖存储一切。 数据仓库仅关注业务流程。
的解决方案 数据基本未经处理 高度处理的数据。
资料类型 它可以是非结构化的、半结构化的和结构化的。 它主要采用表格形式和结构。
任务 共享数据管理 针对数据检索进行了优化
敏捷性 高度灵活,根据需要配置和重新配置。 与数据湖相比,它不太灵活并且具有固定配置。
用户 数据湖主要由数据科学家使用 商业专业人士广泛使用数据仓库
存放 数据湖设计用于低成本存储。 使用具有快速响应时间的昂贵存储
安保防护 控制力较弱。 可以更好地控制数据。
EDW 的替代 数据湖可以作为 EDW 的来源 与 EDW 互补(而非替代)
架构 阅读模式(无预定义模式) 写入时模式(预定义模式)
数据处理 有助于快速获取新数据。 引入新内容很耗时。
数据粒度 细节或粒度较低的数据。 摘要或聚合详细级别的数据。
工具 可以使用 Hadoop/ Map Reduce 等开源工具 大部分是商业工具。

什么是数据湖屋?

上述比较假设两个系统是独立的。数据湖屋将它们合并为一个系统,这也是为什么这个术语出现在大多数当前的架构讨论中。

Lakehouse 将原始文件保存在低成本的对象存储中,然后通过开放表格式(例如)添加事务元数据层。 Delta Lake、Apache Iceberg 或 Apache Hudi。该层提供数据仓库在底层文件保持打开状态时所提供的保障。

能力 数据湖 数据湖屋
交易 不支持 表上的 ACID 事务
模式处理 模式只读 模式强制执行和演化
主要用户 数据科学家 分析师和数据科学家共同
报告速度 没有单独的仓库,速度会很慢。 直接查询与索引和缓存

对于已经运行受管湖的团队来说,采用表格格式通常是一种渐进式升级,而不是重建。

使用数据湖的好处和风险

使用数据湖的一些主要好处如下:

  • 全面助力生产化和高级分析
  • 提供经济高效的可扩展性和灵活性
  • 提供无限数据类型的价值
  • 降低长期拥有成本
  • 允许经济地存储文件
  • 快速适应变化
  • 数据湖的主要优势是 集权 不同内容源的
  • 来自不同部门、分散在全球各地的用户都可以 灵活访问 数据

使用数据湖的风险:

  • 一段时间后,数据湖可能会失去相关性和动力
  • 设计数据湖时涉及的风险较大
  • 非结构化数据可能导致混乱无序、数据无法使用、工具分散复杂以及企业级协作薄弱。
  • 它还增加了存储和计算成本
  • 无法从使用数据的其他人那里获得见解,因为没有考虑到以前分析师的发现的沿袭
  • 数据湖的最大风险是安全性和访问控制。有时数据可以在没有任何监督的情况下放入数据湖,因为有些数据可能有隐私和监管需求

常见问题

导入的文件没有元数据标签、所有权信息或保留规则。用户因此无法判断哪个数据集是最新的或可信的,导致数据湖中充斥着无人查询的重复数据。

列式格式(例如 Parquet 和 ORC)压缩效果好,并且允许查询仅读取所需的列。JSON 和 CSV 格式在转换前的原始数据环境中仍然有用。

模型训练需要大量原始的、多样化的样本,而这正是数据湖所保存的。团队直接从对象存储中读取数据,而不是从数据仓库导出。

是的。人工智能服务会扫描传入的文件,推断其模式,建议元数据标签,并标记疑似个人数据的列。在策略生效前,仍需人工审核分类结果。

应用存储生命周期规则,将冷文件移至归档层,将小文件压缩成大文件,并对数据进行分区以减少查询扫描次数。计算而非存储通常是账单的主要组成部分。

总结一下这篇文章: