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

标签 azure azure-data-lake azure-synapse delta-lake azure-data-lake-gen2

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

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

Azure documentation ,湖泊数据库定义为:

"A lake database provides a relational metadata layer over one or more files in a data lake. You can create a lake database that includes definitions for tables, including column names and data types as well as relationships between primary and foreign key columns. The tables reference files in the data lake, enabling you to apply relational semantics to working with the data and querying it using SQL. However, the storage of the data files is decoupled from the database schema; enabling more flexibility than a relational database system typically offers."

Delta Lake定义为:

Delta Lake is an open-source storage layer that adds relational database semantics to Spark-based data lake processing. Delta Lake is supported in Azure Synapse Analytics Spark pools for PySpark, Scala, and .NET code.

The benefits of using Delta Lake in a Synapse Analytics Spark pool include:

Relational tables that support querying and data modification. With Delta Lake, you can store data in tables that support CRUD (create, read, update, and delete) operations. In other words, you can select, insert, update, and delete rows of data in the same way you would in a relational database system.

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

最佳答案

Lake 数据库是 Microsoft 添加到 Synapse Analytics 的一项工具,它使用 Spark SQL (Hive) 托管表为 Parquet、csv 或 Delta 表提供数据库抽象层。它使用 Hive Metastore,它跟踪数据库内容:表、模式、 View 等。如果您在其中使用 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 版本中获得的内容类似,只不过这里的配置全部由您决定,并且您必须有一些运气才能弄清楚。

关于azure - Azure Synapse 中 Delta Lake 和 Lake 数据库之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73552454/

相关文章:

json - 如何在 Azure Data Lake Analytics 上下文中分别使用 JSON 文件格式 usql

azure - 使用 azure 数据湖对 Polybase 进行基准测试

azure - Azure Synapse Analytics 上此代码中的 WITH (jsonContent varchar(MAX)) AS [result] 的含义是什么

sql-server - Azure SQL 服务器集允许在 ARM 模板或 PowerShell 中访问 Azure 服务

azure - 有没有办法在部署ARM模板后触发 "http trigger"azure函数?

c# - 如何从 SQL Azure 应用服务 Web 应用写入日志文件?

python - Microsoft Teams Python Botbuilder 主动消息传递

c# - 在 Azure 数据湖中解压 .gz 文件

Azure Synapse Sql - 包含带有 _ 和 .在萃取中

Azure突触获取元数据