Microsoft Fabric 仓库中的 Delta Lake 日志

适用于:✅Microsoft Fabric 中的仓库

Microsoft Fabric 中的仓库是基于开放文件格式构建的。 用户表以 parquet 文件格式存储,Delta Lake 日志针对所有用户表发布。

通过 Delta Lake 日志,任何可读取 Delta Lake 表的引擎都能直接访问仓库的用户表。 此访问仅限于只读,以确保用户数据保持 ACID 事务合规性。 对表中数据的所有插入、更新和删除操作都必须通过仓库执行。 提交事务后,会启动系统后台进程来发布的已针对受影响的表更新的 Delta Lake 日志。

如何获取 OneLake 路径

以下步骤详细介绍了如何从仓库中的表获取 OneLake 路径:

  1. 在 Microsoft Fabric 工作区中打开“仓库”。

  2. 在对象资源管理器中,可在“表”文件夹中找到所选表的更多选项 (...)。 选择“属性”菜单。

    该屏幕截图显示了在哪里查找所选表的“属性”选项。

  3. 选择后,“属性”窗格将显示以下信息:

    1. 名称
    2. 格式
    3. 类型
    4. URL
    5. 相对路径
    6. ABFS 路径

    “属性”窗格的屏幕截图。

如何获取 Delta Lake 日志路径

可通过以下方法查找 Delta Lake 日志:

  • 可通过在湖屋中创建的快捷方式查询 Delta Lake 日志。 可通过 Microsoft Fabric Spark 笔记本,或者通过 Microsoft Fabric 门户中的 Synapse 数据工程中的湖屋资源管理器查看文件。

  • 可以通过 Azure 存储资源管理器、Spark 连接(例如 Power BI Direct Lake 模式)或任何其他可读取 delta 表的服务来查找 Delta Lake 日志。

  • 可以通过 Windows 中的 OneLake 资源管理器在每个表的 _delta_log 文件夹中找到 Delta Lake 日志,如以下屏幕截图所示。

    Windows OneLake 资源管理器的屏幕截图,显示 call_center 表的 delta 日志文件夹的路径。

暂停 Delta Lake 日志发布

可以根据需要暂停和恢复 Delta Lake 日志的发布。 发布暂停时,读取仓库外部表的 Microsoft Fabric 引擎会将数据视为暂停前的状态。 它会确保报表保持不变且一致,会反映出在对表进行任何更改之前所有表的数据状态。 数据更新完成后,可以恢复 Delta Lake 日志发布,将所有最近的数据更改设置为对其他分析引擎可见。 当用户不需要与 Microsoft Fabric 中的其他计算引擎的互操作性时,则暂停 Delta Lake 日志发布是另一个用例,因为它可以帮助节省计算成本。

暂停和恢复 Delta Lake 日志发布的语法如下所示:

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED | AUTO

示例:暂停和恢复 Delta Lake 日志发布

若要暂停 Delta Lake 日志发布,请使用以下代码片段:

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED

现在,从其他 Microsoft Fabric 引擎(例如,Lakehouse 的查询)对当前仓库表进行的查询会显示暂停 Delta Lake 日志发布之前的数据版本。 仓库查询仍显示最新版本的数据。

要恢复 Delta Lake 日志发布,请使用以下代码片段:

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = AUTO

当状态更改回 AUTO 时,Fabric Warehouse 引擎会发布对仓库上表所做的所有最近更改的日志,从而允许 Microsoft Fabric 中的其他分析引擎读取最新版本的数据。

检查 Delta Lake 日志发布的状态

要检查当前工作区的所有仓库上 Delta Lake 日志发布的当前状态,请使用以下代码片段:

SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases

限制

  • 只有当表名包含 A-Z、a-z、0-9 和下划线字符时,Spark 和其他系统才能使用这些表名。
  • 将由 Spark 和其他系统使用的列名不能包含:
    • 选项卡
    • 回车符
    • [
    • ;
    • {
    • }
    • =
    • ]