在上一讲中,我们了解数据湖的技术演化历史。那么,今天就主要讲解一下典型的数据湖的架构,剖析一下内部构造。我们先回顾一下数据湖为什么会出现开始讲起。
为什么是数据湖?
构建数据湖的主要目标是为数据从业者(数据分析员、数据科学家等)提供未经提炼的数据视图。
使用数据湖的原因是:
- 随着Hadoop等存储引擎的出现,存储不同的信息变得容易。无需使用数据湖将数据建模为企业范围的模式。
- 随着数据量、数据质量和元数据的增加,分析质量也随之提高。
- 数据湖提供业务敏捷性
- 机器学习和人工智能可用于做出有利可图的预测。
- 它为实施组织提供了竞争优势。
- 没有数据孤岛结构。数据湖提供 360 度客户视图,并使分析更加可靠。
数据湖架构
该图显示了业务数据湖的架构。较低级别代表大部分处于静止状态的数据,而较高级别显示实时交易数据。该数据流经系统时没有或几乎没有延迟。以下是数据湖架构中的重要层:
- 摄取层(Ingestion tier):左侧的层描述了数据源。数据可以批量或实时加载到数据湖中
- 洞察层(Insights tier):右侧的层代表使用系统洞察的研究方面。SQL、NoSQL 查询,甚至 excel 都可以用于数据分析。
- HDFS(Hadoop Distributed File System)是结构化和非结构化数据的经济高效的解决方案。它是系统中所有静止数据的着陆区(Landing Zone)。
- 蒸馏层(Distillation tier)从存储轮胎中获取数据并将其转换为结构化数据以便于分析。
- 处理层级(Processing tier)运行分析算法和用户查询,以不同的实时、交互式、批处理方式生成结构化数据,以便于分析。
- 统一操作层(Unified operations tier)管理系统管理和监控。它包括审计和熟练程度管理、数据管理、工作流管理。
关键数据湖概念
以下是需要了解的关键数据湖概念才能完全理解数据湖架构
数据摄取
数据摄取允许连接器从不同的数据源获取数据并加载到数据湖中。
数据摄取支持:
- 所有类型的结构化、半结构化和非结构化数据。
- 多次摄取,如批处理、实时、一次性加载。
- 许多类型的数据源,如数据库、网络服务器、电子邮件、物联网和 FTP。
数据发现
在开始准备数据或分析之前,数据发现是另一个重要阶段。在这个阶段,标记技术用于通过组织和解释数据湖中摄取的数据来表达数据理解。### 数据存储
数据存储应该是可扩展的,提供经济高效的存储并允许快速访问数据探索。它应该支持各种数据格式。
数据治理
数据治理是管理组织中使用的数据的可用性、可用性、安全性和完整性的过程。
数据沿袭
该组件处理数据的来源。它主要处理它随时间移动的位置以及它会发生什么。它简化了从起点到终点的数据分析过程中的错误纠正。
安全
数据湖的每一层都需要实现安全性。它从存储、挖掘和消耗开始。基本需要是阻止未经授权的用户访问。它应该支持不同的工具来访问具有易于导航的 GUI 和仪表板的数据。
身份验证、记帐、授权和数据保护是数据湖安全的一些重要功能。
数据存储
数据存储应该是可扩展的,提供经济高效的存储并允许快速访问数据探索。它应该支持各种数据格式。
数据探索
这是数据分析的开始阶段。它有助于在开始数据探索之前确定正确的数据集至关重要。
所有给定的组件都需要协同工作才能在数据湖构建中发挥重要作用,轻松进化和探索环境。
数据质量:
数据质量是数据湖架构的重要组成部分。数据用于确定业务价值。从质量较差的数据中提取见解将导致质量较差的见解。
数据审计
两个主要的数据审计任务是跟踪关键数据集的变化。
- 跟踪对重要数据集元素的更改
- 捕获如何/何时/以及谁更改了这些元素。
数据审计有助于评估风险和合规性。
协作
通过协作可以发挥数据湖最大效用,如数据仓库和数据湖协同工作等方面。
数据湖的成熟阶段
数据湖成熟度阶段的定义因教科书而异。虽然关键是一样的。成熟之后,阶段定义是从外行的角度定义的。
第 1 阶段:大规模处理和摄取数据
数据成熟度的第一阶段涉及提高转换和分析数据的能力。在这里,企业主需要根据他们的技能来找到工具,以获取更多数据并构建分析应用程序。
第 2 阶段:建立分析能力
这是第二阶段,涉及提高转换和分析数据的能力。在这个阶段,公司使用最适合他们技能组合的工具。他们开始获取更多数据并构建应用程序。在这里,企业数据仓库和数据湖的能力一起使用。
第 3 阶段:数据仓库和数据湖协同工作
这一步涉及将数据和分析交到尽可能多的人手中。在这个阶段,数据湖和企业数据仓库开始协同工作。两者都在分析中发挥作用
第四阶段:湖中企业能力
在数据湖的这个成熟阶段,企业能力被添加到数据湖中。采用信息治理、信息生命周期管理功能和元数据管理。然而,很少有组织能够达到这种成熟度,但未来这一数字还会增加。
数据湖实施的最佳实践:
- 架构组件、它们的交互和已识别的产品应支持本机数据类型
- 数据湖的设计应该由可用的而不是所需的驱动。模式和数据要求直到被查询时才被定义
- 设计应以与服务 API 集成的一次性组件为指导。
- 数据发现、摄取、存储、管理、质量、转换和可视化应该独立管理。
- 数据湖架构应针对特定行业量身定制。它应该确保该领域所需的功能是设计的固有部分
- 更快地使用新发现的数据源很重要
- 数据湖助力定制化管理,挖掘最大价值
- 数据湖应该支持现有的企业数据管理技术和方法
构建数据湖的挑战:
- 在数据湖中,数据量更大,因此流程必须更加依赖程序化管理
- 难以处理稀疏、不完整、易变的数据
- 更广泛的数据集和来源需要更大的数据治理和支持