在表级别自动执行 SSAS 表格模型刷新



我正在尝试自动化SSAS表格模型刷新。要求是 - 根据所选的表,将仅刷新这些表的模型。我正在寻找一种方法来动态构建脚本以仅处理SQL代理作业的第一步中的选定表,并将该动态构建的脚本传递到下一步,即SQL Server Analysis Services命令步骤。或者可以执行步骤 1 本身中内置的脚本。但我不确定如何做到这一点。请让我知道可能的方法。

是否考虑过通过 SSIS 执行此操作并从 SQL 代理执行包? 您可以使用 Analysis Services 处理任务并选择要处理的表。 如果要以更动态的方式执行此操作,以下各项概述了如何执行此操作。

  • 要处理的表名将存储在对象变量中。 一个选项是从执行 SQL 任务查询 SSAS DMV 以获取将处理的表的名称,并将这些名称输出到对象变量中。 您需要将"结果集"设置为使用完整结果集,并在"结果集"窗格中映射对象变量。 以下命令将返回唯一的表名(table_type筛选器用于删除前缀为 $ 的结果(select table_name from $SYSTEM.DBSCHEMA_TABLES where table_catalog = 'YourTabularModel' and table_schema = 'Model' and table_type = 'SYSTEM TABLE'
  • 如果要使用 SSAS DMV,请使用 OLE DB Provider for Analysis Services 13.0 Microsoft创建 OLE DB 连接管理器作为提供程序。 确保将初始目录设置为包含要处理的表的 SSAS 模型。
  • 添加一个 Foreach ADO 枚举器循环,该循环将使用对象变量作为"集合"窗格中的源变量。 在"变量映射"窗格中,添加一个变量以存储表名。
  • 在 Foreach 循环中,添加一个 Analysis Services Execute DDL 任务。
  • 使用表达式创建一个字符串变量,该表达式是表的 SSAS 进程命令。 在表达式中,将table字段(假设您使用的是 TMSL(替换为保存表名的变量。

最新更新