使用SSMS/XMLA修改Power BI增量刷新策略:调整刷新窗口
通过SSMS/XMLA修改Power BI增量刷新窗口
操作步骤
- 打开SSMS,连接到Power BI工作区的XMLA端点:
- 选择「分析服务」作为服务器类型,输入工作区的XMLA地址(格式:
powerbi://api.powerbi.com/v1.0/myorg/[工作区名称]) - 使用拥有工作区编辑权限的Power BI账号完成登录
- 选择「分析服务」作为服务器类型,输入工作区的XMLA地址(格式:
- 在对象资源管理器中,依次展开目标工作区(数据库)→「模型」→「表」,找到需要修改增量刷新策略的表
XMLA修改脚本示例
针对单个表,修改增量刷新窗口为3个月的XMLA脚本如下,需替换[表名]、[日期列名]和YourDataSourceID为实际值:
<Alter xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <ObjectDefinition> <Table xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500"> <Name>[表名]</Name> <Partitions> <Partition> <Name>[表名]_Incremental</Name> <Source> <QueryPartitionSource> <Query> <DataSourceID>YourDataSourceID</DataSourceID> <CommandText>SELECT * FROM [源表] WHERE [日期列名] >= RangeStart AND [日期列名] < RangeEnd</CommandText> </Query> </QueryPartitionSource> </Source> <PartitionManagement> <RefreshPolicy> <IncrementalWindowOffset>-P3M</IncrementalWindowOffset> <!-- 原配置为-P6M,修改为3个月 --> <RangeStart> <Dynamic> <Expression>DateTime.Date(DateTime.AddMonths(DateTime.UtcNow(), -3))</Expression> </Dynamic> </RangeStart> <RangeEnd> <Dynamic> <Expression>DateTime.Date(DateTime.UtcNow())</Expression> </Dynamic> </RangeEnd> <RollupPolicy> <WindowSize>P3M</WindowSize> <!-- 滚动窗口大小改为3个月 --> <Boundary>Month</Boundary> </RollupPolicy> </RefreshPolicy> </PartitionManagement> </Partition> </Partitions> </Table> </ObjectDefinition> </Alter>
注意事项
- 批量修改:如果6个表的修改逻辑一致,可批量生成脚本,替换对应表名和日期列后依次执行
- 执行脚本后不会触发全量刷新,后续增量刷新会自动使用新的3个月窗口
YourDataSourceID需与目标表的数据源ID匹配,可在SSMS中查看表的属性获取该ID- 操作前建议通过SSMS导出模型脚本做备份
内容的提问来源于stack exchange,提问作者jhowe
相关产品推荐
相关产品推荐

