• BI笔记之 SSAS部署的几种方式


    SSAS库的部署有很多种方式,根据环境的不同可以选择不同的方法,本文列举几种最常见的部署方式,以及阐述他们的应用环境。

    环境约定:SQL Server 2008

    示例库:Adventure Works DW

    方式一:Visual Studio直接Deploy

    这个方法是最直接简单的方法,大多数我们都是通过这种方法部署到本地,如果需要部署到其它机器上参考下图:

    右键点击SSAS项目然后选择"属性",在探出的界面中选择部署。这是直接通过源文件部署到Server上,需要注意的是我们需要有目标服务器的相关权限。

    如果是用Visual Studio在线打开的SSAS库,是没有这个配置界面的。

    这种方式适合服务器环境比较自由的情况,也是最直接的一种部署方式。先决条件就是目标机器或者服务器上一定要安装有BIDS(实际就是visual studio的一个shell)。

    方式二:备份,还原

    在开发环境把SSAS库备份成abf文件,方法,右键要备份的库,选择备份:

    然后在目标服务器上还原,同样,右键,还原:

    这种方式多用在开发环境和生产环境隔离的情况。

    缺点是对于数据源连接的处理,因为在已经隔离的环境下,数据源服务器的配置肯定是不同的,所以在恢复之后,往往需要用visual studio连接到恢复的SSAS库上手动的去更改。或者直接在SSMS中去更改。

    方式三:ascmd.exe

    以命令行的方式来部署。这个程序可以在类似下面的位置找到:

    C:\Program Files\Microsoft SQL Server\100\Samples\Analysis Services\Administrator\ascmd\CS

    这下面是它的源文件,给出源文件的目的在于,有可能你的开发环境是32位换几个,而生产环境是64位环境,那么你就需要32位和64位版本的这个ascmd文件。我们只需要在编译的时候指定就可以:

    这种方式部署,需要将已经部署好的SSAS库生成为一个XMLA脚本,它是一个XML格式的文件。

    以下是具体的方法:

    注:生成的时间可能会比较长,取决于SSAS DB的复杂程度。(参考:Adventure Works的库会超过五分钟)

    如果需要覆盖的方式部署的话,那么需要在根节点加入一个属性:AllowOverwrite="true"

    需要关注的一个地方就是,需要更改Data Source,这个可以在XMLA文件中检索到:

    由于部署的目标服务器会跟本地的情况不同,所以这里留一个占位符。方法是把Localhost(或者你相应Data Source位置的配置)替换成:$(DWServer)

    然后,打开一个命令行,cd定位到ascmd.exe所在的目录,然后敲如下命令:

    ASCMD -S xxx.xxx.xxx.xxx -v DWServer=xxx.xxx.xxx.xxx -i AdventureWorks.xmla

    以上是假定ascmd和保存下来的XMLA在同一目录,如果不在一起,那么更改-i后面的值就可以。

    其中:

    -S是要部署的目标服务器地址,不如localhost或者172.5.3.123

    -v就是参数的替换,也就是之前替换的$DWServer,也就是数据源所在的位置。

    另如果是在64位环境使用,记得要用64位版本去编译ascmd.exe。

    这种方法的适用面比较广泛,因为大多数BI项目的开发环境和生产环境都是隔离的,而且都有各自的数据仓库。在部署的过程中,完全可以写一个带参数的批处理脚本,这样会使部署更灵活一些。

    方式四:在程序中通过AMO。

    要点是要引用如下的一个命名空间:

    核心代码如下:

    //connect ssas

    Server _server = new Server();

    _server.Connect("localhost");

    //load xmla content to string.

    StreamReader sr = new StreamReader("XMLAQuery.xmla", System.Text.Encoding.Default);

    string strXMLA = sr.ReadToEnd();

    sr.Close();

    //execute

    XmlaResultCollection _result = _server.Execute(strXMLA);

    foreach (XmlaResult r in _result)

    {

    foreach (XmlaMessage m in r.Messages)

    {

        Console.WriteLine(m.Description);

    }

    }

    需要注意的是如果部署出现问题,这里是不会抛异常的,所以部署的结果只能通过调用Server实例的Execute方法的返回结果来看到,请留意上面代码的foreach部分。

    以下是经常会遇到的错误之一,提示SSAS库已经存在,原因是没有加入上面提到的AllowOverwrite="true"

    部署成功的话在结果集里是没有任何消息的。

    这种方法适用于自己系统的集成开发,相对自由灵活一些。

    总结:

    以上列举了SSAS库部署最常用的几种方法,各种方法的复杂程度不一,适应的场景也各不相同,项目中可以根据实际情况来选择不同的方案。

    [2013-02-14追加]

    ascmd的下载地址已经更新:

    http://sqlsrvanalysissrvcs.codeplex.com/releases/view/22769

    [2011-03-29追加]

    如何找到ascmd

    下载网址:

    http://sqlserversamples.codeplex.com/releases/view/45923

    在下载的samples里,找到:

    SQL2008R2.All_Product_Samples_Without_DBs\Samples\Analysis Services\Administrator\ascmd

    里面是源文件,自己根据系统环境(x86还是x64)编译一下就可以使用了。

     

  • 相关阅读:
    golang 数据结构 优先队列(堆)
    leetcode刷题笔记5210题 球会落何处
    leetcode刷题笔记5638题 吃苹果的最大数目
    leetcode刷题笔记5637题 判断字符串的两半是否相似
    剑指 Offer 28. 对称的二叉树
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 26. 树的子结构
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 24. 反转链表
    剑指 Offer 22. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/aspnetx/p/1815982.html
Copyright © 2020-2023  润新知