修改增量刷新

通过调整刷新策略属性来更改增量刷新。 具体要更改哪一项,就调整相应的属性。 这些属性的完整概览见此处。
Important
在 Tabular Editor 3 中配置增量刷新仅限于托管在 Power BI Datasets 服务中的 Dataset。 对于 Analysis Services,必须进行自定义分区。
更改增量刷新
下面是修改现有刷新策略的一般步骤:
连接: 连接到模型。
选择表: 选择已配置增量刷新的表。
找到“刷新策略”属性: 在 Properties 窗口中,进入 刷新策略 部分。
更改属性: 根据要更改的内容,在下方各节中修改指定的 Property。 有关所有刷新策略属性及其作用的概览,请参阅此处。
应用更改: 部署模型更改。
应用刷新策略: 右键单击该表,然后选择 应用刷新策略。
刷新所有分区: 按住 Shift 键并单击,以选中所有分区。 右键单击,然后选择 刷新 > 完全刷新(分区)。 你可以右键单击该表并选择 “预览数据” 来查看结果。
以下是对现有“刷新策略”可能进行的常见更改概览:
扩展或缩小已归档数据的窗口
目的: 增加或减少模型中的数据量。
属性: RollingWindowPeriods。 增大该值可扩展窗口(更多数据);减小该值可缩小窗口(更少数据)。
注意: 你也可以更改 RollingWindowGranularity 来进行更细粒度的选择,例如从 3 年改为 36 个月。
扩展或缩小已刷新数据的窗口
目的: 在计划刷新操作中,增加或减少要刷新的数据量。
属性: IncrementalWindowPeriods。 增大该值可扩展窗口(更多数据);减小该值可缩小窗口(更少数据)。
注意: 你也可以更改 IncrementalWindowGranularity 来进行更细粒度的选择,例如从 3 年改为 36 个月。
仅刷新完整周期
目的: 从 滚动窗口 中排除不完整(未完成)的周期
属性: IncrementalWindowPeriodsOffset。 将值设为 -1,即可将周期偏移 1,从而排除当前周期。
注意: 你还可以进一步偏移该窗口,例如只刷新最近一个完整周期之前的那些周期。
更改增量刷新模式
目的: 用于将表从 Import 切换到 Hybrid,或反向切换。
属性: Mode
注意: 按以下流程更改增量刷新模式:
- 将 Mode 设置为所需的
Import或Hybrid值 - 右键单击该表,然后选择 应用刷新策略
- 部署模型更改
- 按住 Shift 键并单击以选择所有分区。 右键单击并选择 刷新 > 完全刷新(分区)。 也可以右键单击该表,然后选择 “预览数据” 查看结果。
Note
建议检查滚动窗口是否针对所选 Mode 设置得当。 从 Import 模式切换到 Hybrid 模式时,最新的策略范围分区将变为 DirectQuery 分区。 可以考虑选择更细粒度的窗口,以限制通过 DirectQuery 查询的数据量。
配置“检测数据更改”
目的: 设置为:当日期列(例如 LastUpdate)的值发生变化时,刷新已归档数据。
属性: PollingExpression。 添加一个有效的 M 表达式,用于返回某列的最大日期值。 所有包含该日期的记录都会被刷新,无论它们属于哪个分区。
注意: 按以下流程配置“检测数据更改”:
- 选中该表后,在 表达式编辑器 窗口中,从左上角下拉列表中选择 Polling Expression
- 复制下面的 M 表达式,并将 LastUpdate 替换为所需的列名。
// 获取列 [LastUpdate] 的最大值
// 将 LastUpdate 替换为你自己的列名
// 对于该列中值等于该列在整个表中最大值的任何记录,
// 都将触发数据刷新
let
#"maxLastUpdate" =
List.Max(
// 将下面替换为你的列名和表名
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: 替换为你的生效日期
var effectiveDate = new DateTime(2020, 1, 1);
Selected.Table.ApplyRefreshPolicy(effectiveDate);
禁用增量刷新
目的: 在不需要刷新策略或使用场景不再适用时,将其禁用。
属性: EnableRefreshPolicy
注意: 要禁用增量刷新,按以下步骤操作:
- 复制 源表达式: 选中表后,在 表达式编辑器 窗口中,从左上角下拉列表选择 源表达式。 将 源表达式 复制到单独的文本编辑器窗口中。
- 禁用刷新策略: 将 EnableRefreshPolicy 更改为
False - 移除所有 Policy Range 分区: 选择并删除所有 Policy Range 分区
- 创建新的 M 分区: 右键单击表,然后选择 创建 > 新建分区。 将分区的 kind 属性设置为
M。 - 粘贴 源表达式: 选中新分区后,将 步骤 6 中的 源表达式 复制到 表达式编辑器,并将其作为 M 表达式 粘贴。
- 应用更改: 部署模型的更改。
- 刷新表: 选中表格并右键单击。 选择 刷新 > 完全刷新(表)。 你可以右键单击表格,并选择 “预览数据” 来查看结果。