白茶在上一篇文章PowerBI迁移到SSAS向小伙伴们介绍了如何将已经开发好的PowerBI模型迁移到SSAS整个操作过程,与此同时也带来了新的问题,那就是
SSAS的模型该如何刷新呢?
配套工具
-
SSMS
-
Visual Studio
-
SSIS
SSIS[1]的全称是SQL Server Integration Services,是微软传统BI的组件之一。基于Visual Studio开发工程文件包,部署到Microsoft SQL Server运行,是一种ETL处理工具,与SSAS、SSRS并称为微软传统BI三件套
。
实现SSAS模型的方式有2种,一种是基于SQL Server自带的功能,一种是基于VS与SQL Server的组合方式,两种方式各有优劣。
方法1:SQL Server脚本刷新
打开SSMS,连接到SQL Server数据库
注意,此功能是
SQL Server独有的
,其它数据库不支持此功能。
在SQL Server Agent
中找到New Job,创建新的Job并添加脚本命令。
脚本代码如下:
{"refresh": {"type": "full","objects": [{"database": "Tabular名称" --这里需要修改模型名称}]}
}
并按照下图进行配置。
配置完成后,可以根据自身需求,自行设定刷新计划,基本上到这里都可以正常执行SSAS模型刷新。
如果出现无法刷新,有可能是模型配置了行级别权限或者SQL配置管理器JOB执行账户
的原因。
打开SQL配置管理器,按照下图进行配置。
可以将JOB的执行账户更改为
Local
,这样不需要执行后面的步骤,如果不更改,则继续向下
回到SSAS模型,选择选择角色
并右键新建角色
,创建一个完全控制权限的角色。
成员身份的设定,根据各个数据库的设置而有所不同。
查看方法:
-
在SQL Server 的
安全性
子项的登录名
中查看SQL Server Agent的执行账户 -
打开系统的SQL Server配置管理器,在SQL Server Services中查看SQL Server Agent的执行账户
配置完成后,即可解决刷新问题。
方法2:SSIS与SQL Server组合刷新
创建一个新的SSIS工程文件,设置项目属性Properties中的Configuration Properties
。
设置Debugging中的Run64BitRuntime
为False。
注意,这是因为SSIS最开始设计的时候,内核版本就是32位的。
配置一个连接器。
注意:
-
初始目录属于必填项目,如果不填的话,SSAS组件识别会进入到
多维模型
界面 -
注意登录到服务器的账户,如果配置了RLS,那么需要用
最大权限账号
进行连接
添加Analysis Services Processing Task组件。
打开组件设置,选择连接器和模型。
设置Process Options为Process Full
,当然,也可以选择其他刷新类型,根据自身情况设定即可。
完成配置后,部署到SQL Server中执行即可。
注意,配置JOB的时候,一定要注意勾选
以32位运行
和检查配置参数
。
方案区别
-
方法1适合没有VS的环境,可以不依赖于VS进行
-
方法2的方式则更加灵活,比如有2个模型,其中B模型引用了A模型中的某张表,这种情况下利用VS则可以更加灵活的设置ETL链路
-
文章中对于两种工具的基本操作描述较少,因此本文适合掌握了VS和SQL Server的开发者参照
引用链接
[1]
SSIS: https://marketplace.visualstudio.com/search?target=VS&category=Tools&vsVersion=&subCategory=All&sortBy=Installs