SSAS表格-部署到多个模型

时间:2019-02-28 06:33:55

标签: deployment ssas ssas-tabular

我们正在尝试为60-100个客户创建SSAS表格模型。

关于创建单个模型和处理所有客户数据非常耗时(直到数据刷新完成,每个客户都需要等待最新数据-我们每15分钟更新一次)。

但是,创建多个表格模型很容易重新处理和排除故障,但难以维护或部署更改。如果需要添加新的度量或表格,我想将其应用于所有模型。

我想知道是否有人可以建议跨不同表格模型部署更改/添加的最佳方法。

1 个答案:

答案 0 :(得分:1)

如果您使用过SSIS,则可用于跨多个站点进行部署。下面对此进行了概述。这将列出您提供的服务器名称,对其进行迭代,然后对每个服务器执行更新后的表格格式的DDL。这种相同的方法也可以用于多维数据集处理,将创建DDL替换为处理脚本。如果该模型是第一次部署到服务器,请确保已在任何客户端工具查询或使用该模型之前对其进行了处理,并确保对更改对象的处理也得到相应处理。

  • 在SSMS中连接到SSAS后,右键单击模型,选择脚本> 脚本数据库为> 创建或替换为>,然后选择输出脚本的位置。请注意,出于安全目的,这将包括密码,并且需要对此进行相应的处理。
  • 创建一个SSIS包。在包中创建一个Analysis Server连接管理器。可以将其设置为当前存在该表格数据库的服务器。
  • 创建一个String变量,并留空。这可以称为DeployServerName。还创建一个对象变量,可以称为ServerList。在SSAS连接管理器上,转到属性窗口(按F4),然后选择Expressions省略号。在出现的窗口中,选择ServerName属性,并将DeployServerName变量设置为表达式。这将允许服务器名称更改为多个服务器以进行部署。
  • 在数据流中添加一个执行SQL任务。在这里您将获得要部署到的服务器名称。如果它们存储在主表/查询表中,只需选择保存服务器名称的列作为SQL语句。您也可以使用UNION选择纯文本来分别添加目标服务器名称。

示例

SELECT 'Server1' AS DestServer
UNION
SELECT 'Server2' AS DestServer
  • 在“执行SQL任务”上,将ResultSet属性设置为Full Result Set。然后在“结果集”窗格上,为0输入Result Name,为Variable Name字段输入先前创建的对象变量(ServerList)。
  • 接下来,在执行SQL任务之后创建一个Foreach循环并将其连接到它。使用Foreach ADO Enumerator枚举器类型,然后选择对象变量(ServerList)作为ADO Object Source Variable。在“变量映射”窗格上,将字符串变量(DeployServerName)放在索引0上。
  • 在Foreach循环内添加Analysis Services执行DDL任务。使用您创建的SSAS连接管理器作为连接,使用直接输入作为SourceType,并输入在SSMS中生成的脚本作为SourceDirect语句。