数据湖屋解释

导航至

大数据领域始终在变化,以解决现有问题,并不断推动性能和规模的边界。数据湖屋是一种新的架构模式,通过解决与先前解决方案(如数据仓库和数据湖)相关的一系列问题而迅速获得认可。在本文中,您将了解以下内容:

  • 数据湖屋是什么
  • 数据湖屋的关键特性
  • 数据湖屋的益处
  • 数据湖屋架构组件概述

什么是数据湖屋?

数据湖屋是一种数据存储架构,它结合了数据湖的可扩展性和多样化数据存储能力,以及数据仓库的性能和结构。

数据湖屋允许组织以原始形式存储结构化、半结构化和非结构化数据,同时在一个平台上提供数据治理、安全性和查询优化等工具。数据湖屋提供了两者的最佳之处,而无需维护单独的系统。

数据湖屋的关键特性

数据湖屋解决了数据湖或数据仓库单独无法解决的问题。让我们来看看数据湖屋最有价值的特性之一。

几乎无限的扩展性

从理论上讲,通过构建在分布式对象存储解决方案之上,可用的硬件是限制数据湖屋存储的唯一因素。从实际的角度来看,这意味着您可以存储您想要存储的所有数据,而无需担心除存储成本以外的任何技术问题。

计算和存储的分离

数据湖屋通常将存储和计算过程分开,允许它们独立扩展。这意味着您可以根据需要存储尽可能多的数据,而无需担心计算资源,并且可以根据需要扩展计算能力,而无需为额外的存储付费。

ACID事务支持

执行ACID事务的能力是数据湖屋与数据湖区别开来的关键特性之一。当多个用户同时读取和写入数据时,有关一致性和持久性的保证使开发人员和分析师的生活变得更加容易。

数据治理和管理

数据湖屋提供了一系列管理数据的特性,包括快照和时间旅行来查看存储对象的history和回滚更改的能力。对于数据治理和安全,提供了细粒度的访问控制和审计。

使用数据湖屋的益处

实时分析能力

数据湖屋可以支持传统数据湖和数据仓库难以应对的实时分析用例。这是由于几个因素。数据湖屋智能地将数据从较慢的对象存储移动到基于RAM的查询,从而实现更快的查询响应。接下来,它们支持像Spark和Presto这样的高级查询引擎,这些引擎执行分布式和向量化处理以优化查询。最后,数据湖屋支持流数据摄取,从而减轻了分析过时数据的问题。

降低成本

数据湖屋的另一个好处是,它们可以通过简化并优化其数据管理实践来降低组织的成本。数据湖屋节省金钱的一种方式是消除在不同系统之间对数据多个副本的需求。

在传统设置中,数据通常存在于孤岛中,在原始存储的数据湖和结构化分析的数据仓库中都被重复。这种重复增加了存储成本,并使数据治理和一致性复杂化。通过将数据整合到单一的统一架构中,数据湖屋减少了冗余数据副本的需求。

数据湖屋通过减少带宽使用量来降低成本。由于不同系统之间传输的数据量减少,并且通过优化查询性能,这减少了查询所需的处理能力。

简化的架构和统一的数据管理

数据湖屋的另一个好处是,它们可以通过创建统一的架构来简化企业的数据基础设施。而不是维护多个通过复杂的数据处理管道连接的不同系统,一个平台可以简化原始数据和经过处理的数据共存的不必要复杂性。

数据湖屋架构概述

在本节中,您将了解构成数据湖屋架构的各个组件。稍后,我们将探讨构建这些架构组件的一些工具。

摄取层

第一个架构层是数据如何从不同的来源收集并传输到数据湖屋的存储中。这涉及到在存储之前的数据转换和验证等过程。大多数数据湖屋支持流数据摄取,以实现实时分析。

存储层

存储层是使用持久文件格式(如Parquet或ORC)存储被摄取的不同类型数据的地方。

元数据层

这一层是区分数据湖屋与数据湖和数据仓库的关键。元数据层是数据湖屋中存储的每个对象的统一信息记录。这些元数据使ACID事务、索引和缓存更快查询、数据治理、审计和定义模式成为可能。

数据消费层

最后一层使数据可供最终用户消费。这可能涉及通过API与非技术用户的数据可视化和分析工具的集成。更高级的用户,如机器学习工程师,可以直接访问底层的Parquet文件。

数据湖屋挑战

数据湖屋并非完美,确实存在一些潜在的挑战。以下是您可能遇到的一些最常见问题

  • 实施复杂性 - 创建数据湖屋需要组织可能没有的技术专长。将数据湖屋与现有系统集成可能又是一个实施问题。
  • 数据治理和安全 - 尽管数据湖屋比数据湖提供了更好的治理,但设置和维护适当的治理、合规性和数据质量流程可能令人望而却步,尤其是在数据量巨大时。
  • 供应商锁定 - 尽管大多数数据湖专注于开源存储格式,但如果你选择提供专有特性和集成的基于云的服务,仍然存在被锁定在平台的风险。
  • 变量查询性能 - 数据湖屋对不同类型的查询性能可能会有所不同。处理大量并发查询也可能是一个问题,尤其是如果几个复杂查询会减慢其他简单查询。

数据湖屋工具

开始使用数据湖屋有多种选择。这包括选择预建的服务或使用开源工具自行构建。在本节中,我们将探讨工具的主要类别以及这些类别中的一些流行工具。

  • 数据摄取 - 数据摄取工具需要能够高效地处理大量传入数据,并能够轻松地与不同的数据源集成。例如,Telegraf(https://influxdb.org.cn/time-series-platform/telegraf/)和Apache Kafka。
  • 数据存储 - 构建数据湖屋的可用工具有对象存储工具,如AWS S3、MinIO和Google Cloud Storage。
  • 数据处理 - 与数据湖屋一起常用的数据处理工具包括Apache Spark和Apache Flink。这些工具允许您根据工作负载需求对数据进行转换和处理。
  • 数据管理 - 数据管理工具扩展了底层存储层,以提供您期望从数据湖屋获得的功能。例如,Delta Lake和Apache Hudi。

数据湖屋架构相对较新,因此正在快速发展。以下是您在未来的数据湖屋中应该寻找的一些功能性和功能方面的趋势。

  • MLOps工作负载采用 - 数据湖屋非常适合数据科学团队采用MLOps最佳实践,而无需过多开销。数据湖屋支持MLOps所需的大部分功能,无需专用解决方案,这使得机器学习专家的生活更加轻松。
  • 自动性能优化 - 与手动调整索引和存储模式等以提高查询性能相比,许多数据湖屋将自动优化查询并根据工作负载模式调整性能。
  • 改进的语义层 - 数据湖屋的一个挑战是使大量数据对非技术用户可访问和理解。数据湖屋语义层的改进以及LLMs等工具的使用将使用户能够使用自然语言查询和分析其数据。

数据湖屋常见问题解答

数据湖屋是如何工作的?

数据湖屋通过首先从各种来源摄取数据来工作。这包括传统的数据库、来自物联网设备的实时流数据、应用程序日志等。湖屋通过各种机制摄取这些数据,无论是结构化、半结构化还是非结构化数据,具体取决于数据和来源的性质,如批量上传或流管道。

一旦数据进入湖屋,原始数据以原生格式存储,通常在分布式文件系统或对象存储中,如AWS S3或MinIO。元数据管理工具编目数据并维护其血缘关系,从而实现高效的发现和访问。数据湖屋通常采用读取时构建模式的方案,其中数据只在查询或分析时进行结构化和转换。

数据湖屋与数据湖有何不同?

数据湖与数据湖屋之间的关键区别在于对结构化数据和支持性能优化(如在数据仓库中看到的那样)。数据湖屋仍然存储原始和未格式化的数据,但添加了元数据层和治理模型,以确保更好的数据质量,从而实现更好的性能。

数据湖屋与数据仓库

数据湖仓库与数据仓库的主要区别在于数据湖仓库能够存储非结构化和半结构化数据。存储在数据仓库中的数据通常需要经过ETL流程处理,以确保数据在存储前格式正确。