因此,Lakehouses 结合了数据湖和数据仓库的关键优势:开放格式的经济高效存储,可供各种系统访问,以及数据仓库强大的管理和优化功能。
数据湖特别适合计算和存储资源明确分离的云环境。这种分离允许不同的计算应用程序在专用计算节点(例如机器学习 GPU 集群)上独立运行,同时直接访问相同的存储数据。但是,也可以使用 Hadoop 分布式文件系统 (HDFS) 等本地存储系统构建 Lakehouse 基础设施。
1. 数据质量和可靠性:实现正确的数据管道本身很困难,并且具有独立数据湖和数据仓库的两层架构进一步增加了复杂性。例如,数据湖和仓库系统在支持的数据类型、不同的 SQL 方言等方面可能具有不同 智利 whatsapp 数据 的语义。数据还可以以不同的方案存储在数据湖和仓库中(例如,非规范化)。此外,跨多个系统的 ETL/ELT 作业数量不断增加,也增加了发生故障和错误的可能性。
2.数据时效性:越来越多的业务应用需要最新的数据。然而,2 层架构通常会导致大量陈旧数据,因为它们在仓库之前有一个单独的暂存区域用于存放传入数据,并使用常规 ETL/ELT 作业来加载这些数据。理论上,公司可以实施更多的流式管道来更快地更新数据仓库,但这些比批处理作业更复杂。客户支持系统和推荐引擎等应用程序在处理陈旧数据时效率很低,甚至从数据仓库查询数据的数据分析师也将陈旧数据视为一个主要问题。
3. 非结构化数据:在当今的许多行业中,许多数据都是非结构化的,因为公司收集各种数据类型,例如图像、传感器数据、文档等。公司需要易于使用的系统来管理这些数据,但 SQL 数据仓库及其 API 不容易支持这一点。
4. 机器学习和数据科学:当今大多数公司都使用机器学习和数据科学应用程序,但这些应用程序没有得到数据仓库和数据湖的充分支持。这些应用程序需要使用非 SQL 代码处理大量数据,因此无法通过 ODBC/JDBC 高效运行。随着高级分析系统的不断发展,直接访问开放格式的数据是支持这些系统的最有效方式。
5.数据管理:此外,机器学习和数据科学应用程序面临着与传统应用程序相同的数据管理问题,例如数据质量、一致性和隔离性。因此,能够将 DBMS 函数应用于数据是非常宝贵的。
数据湖屋的想法是使用单个数据湖来存储所有数据,而不是使用数据仓库将它们组合成一个复杂的系统。过去,数据湖无法取代数据仓库的功能。这就是 Delta Lake 和 Apache Iceberg 等新数据格式发挥作用的地方。
这些格式提供了一个构建在现有数据湖之上的事务层,并提供与关系数据仓库 (RDW) 类似的功能,从而提高了可靠性、安全性和性能。本质上,它是一个 Parquet 文件,在相邻文件夹中包含 JSON 格式的附加元数据。从原理上讲,数据湖对应于具有附加元数据和治理层的数据湖。