Azure Synapse 中 Delta Lake 和 Lake 数据库之间的区别

问题描述 投票:0回答:2

我正在 Azure Synapse 中构建 Lakehouse 架构,并且对使用 Delta-lake 还是 Lake 数据库犹豫不决。

两者似乎具有大致相同的功能 - 我可以使用 Spark 执行 ETL 任务 - 然后使用 Spark 池以及无服务器 sql 池来查询数据。

Azure 文档中,湖数据库定义为:

“湖数据库提供了一个或多个关系元数据层 数据湖中的文件。您可以创建一个湖泊数据库,其中包括 表的定义,包括列名和数据类型 作为主键列和外键列之间的关系。桌子 数据湖中的参考文件,使您能够应用关系 处理数据并使用 SQL 查询数据的语义。然而, 数据文件的存储与数据库模式解耦; 通常比关系数据库系统具有更大的灵活性 优惠。”

Delta Lake 定义为:

Delta Lake 是一个开源存储层,添加了关系型存储层 数据库语义到基于 Spark 的数据湖处理。三角洲湖是 适用于 PySpark、Scala 的 Azure Synapse Analytics Spark 池受支持 和 .NET 代码。

在 Synapse Analytics Spark 池中使用 Delta Lake 的好处 包括:

支持查询和数据修改的关系表。和 Delta Lake,您可以将数据存储在支持 CRUD(创建、 读取、更新和删除)操作。换句话说,您可以选择, 插入、更新和删除数据行的方式与在 关系数据库系统。

Azure Synapse 中的 Delta Lake 和 Lake 数据库(如果有)有什么区别?或者它们只是两种不同的工具来实现大致相同的结果?使用其中一种相对于另一种有具体的好处吗?

azure azure-data-lake azure-synapse delta-lake azure-data-lake-gen2
2个回答
2
投票

Lake 数据库是 Microsoft 添加到 Synapse Analytics 的一项工具,它使用 Spark SQL (Hive) 托管表为 Parquet、csv 或 Delta 表提供数据库抽象层。它使用 Hive Metastore,跟踪数据库内容:表、模式、视图等。如果您在其中使用 Delta 表,您将拥有所有附加元数据,这些元数据是 Delta Lake 更改跟踪的一部分,但 Delta 表元数据不是 Lake Database Metastore 的一部分。我正在使用 Delta Lake 的免费 Linux 发行版。

如果正确配置 Delta Lake,您可以将其作为 Lake 数据库显示在 Synapse Studio 中。 Lake 数据库的一个优点是,在 Synapse 数据流中,您可以使用 Workspace DB 源类型而不是集成数据集,该类型适用于 Lake 数据库,它使用数据库和表模型,而不是使用一堆集成数据集你必须定义。

我正在为客户进行设置,并且仍在探索细节。对于不同部分的文档很丰富,但对于整体、如何配置它以及它们如何协同工作却没有任何内容。所以这里有任何不准确的说法还请大家多多包涵。为了将开源 Delta Lake 集成到 Lake 数据库和 Synapse 管道中,需要了解许多细微差别。使用此堆栈获得的内容应该与在 Delta Lake 的 Databricks 版本中获得的内容类似,只不过这里的配置全部由您决定,并且您必须有一些运气才能弄清楚。


0
投票

Lake数据库中的SQL操作受到限制。似乎您可以执行插入和选择,但不能执行更新和删除。

© www.soinside.com 2019 - 2024. All rights reserved.