【问题标题】:SSAS Tabular - Deploy to multiple modelsSSAS 表格 - 部署到多个模型
【发布时间】:2019-03-01 01:48:29
【问题描述】:

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

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

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

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

【问题讨论】:

标签: deployment ssas ssas-tabular


【解决方案1】:

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

  • 在 SSMS 中连接到 SSAS 时,右键单击模型,选择 Script > Script Database As > Create or Replace To > 然后选择输出脚本的位置。请注意,出于安全目的,这将包含密码,并且需要相应地处理。
  • 创建一个 SSIS 包。在包中创建一个分析服务器连接管理器。这可以设置为当前存在此表格数据库的服务器。
  • 创建一个字符串变量并留空。这可以称为 DeployServerName。还要创建一个对象变量,可以称为ServerList。在 SSAS 连接管理器上,转到属性窗口(按 F4),然后选择 Expressions 省略号。在出现的窗口中,选择 ServerName 属性并将 DeployServerName 变量设置为表达式。这将允许服务器名称更改为多个服务器进行部署。
  • 在数据流中添加执行 SQL 任务。您将在此处获取要部署到的服务器名称。如果它们存储在主/查找表中,只需选择包含服务器名称的列作为 SQL 语句。您还可以使用UNIONs 选择纯文本单独添加目标服务器名称。

示例

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多