湖屋中具体化湖视图的最佳刷新

本文介绍在为具体化湖视图使用最佳刷新时要考虑的语义方面,并概述了具体化湖视图的可用刷新模式。

具体化湖视图的刷新模式

  • 最佳刷新:此模式会自动为具体化湖视图选择最佳性能的最佳刷新策略 - 增量、完整或无刷新。

  • 完全刷新:此模式强制执行具体化湖视图的完整重新计算。

最佳刷新

优化刷新旨在提高 Microsoft Fabric 平台上的数据管理效率、速度和成本效益。 它会自动选择最合适的刷新策略,以最大程度地提高刷新性能。 在最佳刷新下支持以下刷新策略:

刷新策略 Description
增量刷新 增量刷新仅处理具体化湖视图定义中引用的源中的已更改数据。
无刷新 如果源保持不变,即如果在增量提交中未检测到任何更改,服务将跳过刷新。 此行为可节省不必要的处理。
完全刷新 完全刷新涉及在对源进行任何修改时评估依赖源的整个数据集。

重要

若要使增量刷新生效,需要将增量 CDF 属性设置为 delta.enableChangeDataFeed=true,并应用于物化湖视图定义中引用的源。

最佳刷新的优点

  • 成本更低:使用更少的计算和存储,尤其是在数据更改最少时,不会在检测到增量提交更改时绕过数据刷新。

  • 提高效率:更快的刷新周期有助于提供更新的见解并跟上快速变化的数据。

  • 节省时间:仅处理已更改的数据,从而缩短刷新持续时间。

增量刷新策略中的最佳刷新所支持的表达式

使用支持的表达式创建具体化湖视图时,Fabric 可以执行增量刷新。 如果在查询中使用了不支持的表达式,则会根据更改执行完全刷新或不执行刷新。

下表概述了支持的表达式:

SQL 构建 备注
SELECT 表达式 支持具有确定性函数(内置)的表达式。 非确定性和窗口函数会导致完全刷新策略。
FROM
WHERE 仅支持确定性的内置函数。
INNER JOIN
UNION ALL
数据质量约束 约束中仅支持确定性的内置函数。

注释

为了获得更佳的增量刷新体验,请尽量使用受支持的语句。 如果查询使用不受支持的模式,刷新会自动回退到完全刷新策略。

最佳刷新的关键点

  • 若要优化结果,请在查询中使用支持的表达式,以便应用增量刷新策略。
  • 仅追加数据支持增量刷新。 如果数据包括删除或更新,Fabric 将执行完全刷新。
  • 如果在数据湖视图具体化定义中定义数据质量约束,增量刷新会在更新期间遵循并执行这些约束。
  • 对于使用最佳刷新,不收取任何额外费用。 刷新操作期间,系统会根据计算使用情况进行计费。
  • 在数据集较小的情况下,为了达到性能收益,Fabric 可能会选择优先采用完全刷新而非增量刷新。

如何启用最佳刷新模式

默认情况下,为世系启用最佳刷新模式。 否则,请按照以下步骤进行。

  1. 导航到“管理物化湖视图”选项并启用切换开关 Optimal refresh

    显示切换以启用最佳刷新模式的屏幕截图。

完全刷新

完全刷新将基于源数据对物化湖视图进行完整重新计算。

如果需要在物化湖视图中重新处理整个数据,则可以禁用最优刷新开关以切换到完全刷新模式。

显示切换到完全刷新模式的切换的屏幕截图。

若要对物化湖视图进行完全刷新,可以使用以下命令:

REFRESH MATERIALIZED LAKE VIEW [workspace.lakehouse.schema].MLV_Identifier FULL

注释

刷新使用非Delta表作为其源的物化湖视图会启动完整刷新。

确定刷新策略

若要在最佳刷新模式下确定刷新策略,可以查询sys_dq_metrics表:

SELECT 
    MLVName,
    refreshPolicy 
FROM  
    dbo.sys_dq_metrics 
WHERE
    MLVName = '<materialized_lake_view_name>'