修改增量刷新

增量刷新可通过调整刷新策略属性来修改。 根据你想更改的内容,需要调整的属性也会不同。这些属性的完整概览请参阅此处。
Important
使用 Tabular Editor 3 设置增量刷新仅适用于托管在 Power BI Datasets 服务中的 Dataset。对于 Analysis Services,需要进行自定义分区。
更改增量刷新
下面是修改现有刷新策略的一般步骤:
连接: 连接到模型。
选择表: 选择已配置增量刷新的表。
找到“刷新策略”属性: 在 Properties 窗口中,进入 刷新策略 部分。
更改属性: 根据你要更改的内容,在下文各节中修改指定的 属性。有关所有刷新策略属性及其作用的概览,请参阅此处。
应用更改: 部署模型更改。
应用刷新策略: 右键单击表,然后选择 应用刷新策略。
刷新所有分区: 按住 Shift 键单击以选择所有分区。右键单击,然后选择 刷新 > 完全刷新(分区)。你可以右键单击该表,选择 “预览数据” 查看结果。
以下是对现有“刷新策略”可能进行的常见更改概览:
扩展或缩小已归档数据的窗口
目的: 增加或减少模型中的数据量。
属性: RollingWindowPeriods。增大可扩大窗口(数据更多);减小可缩小窗口(数据更少)。
注意: 你也可以更改 RollingWindowGranularity 来进行更细粒度的选择,例如从 3 年改为 36 个月。
扩展或缩小已刷新数据的窗口
目的: 在计划刷新操作中,增加或减少要刷新的数据量。
属性: IncrementalWindowPeriods。增大可扩大窗口(数据更多);减小可缩小窗口(数据更少)。
注意: 你也可以更改 IncrementalWindowGranularity 来进行更细粒度的选择,例如从 3 年改为 36 个月。
仅刷新完整周期
目的: 从 滚动窗口 中排除不完整(未完成)的周期
属性: IncrementalWindowPeriodsOffset。将值设置为 -1,即可将周期偏移 1,不包含当前周期。
注意: 你还可以进一步偏移该窗口,例如只刷新最近一个完整周期之前的那些周期。
更改增量刷新模式
目的: 用于将表从 Import 切换到 Hybrid,或反向切换。
属性: Mode
注意: 按以下流程更改增量刷新模式:
- 将 Mode 设置为所需的
Import或Hybrid值 - 右键单击表,然后选择 应用刷新策略
- 部署模型更改
- 按住 Shift 键单击以选择所有分区。右键单击,然后选择 刷新 > 完全刷新(分区)。你可以右键单击该表,然后选择 “预览数据” 查看结果。
Note
建议确认针对所选 模式 已正确设置滚动窗口。从 Import 切换到 Hybrid 模式时,最新的策略范围分区将成为 DirectQuery 分区。你可能需要选择更细粒度的窗口,以限制通过 DirectQuery 查询的数据量。
配置“检测数据更改”
目的: 设置为:当日期列(例如 LastUpdate)的值发生变化时,刷新已归档数据。
属性: PollingExpression。添加一个有效的 M 表达式,使其返回某一列的最大日期值。所有包含该日期的记录都会被刷新,无论它们属于哪个分区。
注意: 按以下流程配置“检测数据更改”:
- 选中该表后,在 表达式编辑器 窗口中,从左上角下拉列表中选择 Polling Expression
- 复制下面的 M 表达式,并将 LastUpdate 替换为所需的列名。
// Retrieves the maximum value of the column [LastUpdate]
// Replace LastUpdate with your own column name
// The data will refresh for any records where the value in this column
// equals the maximum value in the column across the entire table
let
#"maxLastUpdate" =
List.Max(
// Replace the below with your column and table name
Orders[LastUpdate]
),
accountForNu11 =
if #"maxLastUpdate" = null
then #datetime(1901, 01, 01, 00, 00, 00)
else #"maxLastUpdate"
in
accountForNu11
- 右键单击表,然后选择 应用刷新策略
- 部署模型更改
- 按住 Shift 键单击即可选择所有分区。右键单击,然后选择 刷新 > 完全刷新(分区)。你可以右键单击该表,然后选择 “预览数据” 查看结果。
Warning
如果某个值等于该列中的最大值,则相关记录都会更新。即使该值已更改,或该值等于刷新日期,也不一定会触发显式更新。
使用 EffectiveDate 应用刷新策略
如果你想在生成分区时覆盖当前日期(用于生成不同的滚动窗口范围),可以在 Tabular Editor 中使用一个小脚本,通过 EffectiveDate 参数来应用刷新策略。
选中增量刷新表后,在 Tabular Editor 的 “New C# Script” 窗格中运行以下脚本,而不是通过右键单击表来应用刷新策略。
// Todo: replace with your effective date
var effectiveDate = new DateTime(2020, 1, 1);
Selected.Table.ApplyRefreshPolicy(effectiveDate);
禁用增量刷新
用途: 在不再需要或不再适用于当前用例时,禁用刷新策略。
属性: EnableRefreshPolicy
注意: 要禁用增量刷新,按以下步骤操作:
- 复制 源表达式: 选中表后,在 表达式编辑器 窗口中,从左上角的下拉列表中选择 源表达式。将 源表达式 复制到单独的文本编辑器窗口中。
- 禁用刷新策略: 将 EnableRefreshPolicy 更改为
False - 移除所有 Policy Range 分区: 选择并删除所有 Policy Range 分区
- 创建新的 M 分区: 右键单击表,然后选择 创建 > 新建分区。将分区的 kind 属性设置为
M。 - 粘贴 源表达式: 选中新分区后,将 步骤 6 中的 源表达式 复制到 表达式编辑器,并将其作为 M 表达式 粘贴。
- 应用更改: 部署模型的更改。
- 刷新表: 选中该表并右键单击。选择 刷新 > 完全刷新(表)。你可以右键单击该表,然后选择 “预览数据” 查看结果。