【Power BI X SSAS】—— Power BI模型导入到SSAS

2021-09-22 10:08:49 浏览数 (1)

本文是【Power BI X SSAS】系列的第五篇。

第一篇比较了Power BI数据导入的三种方式,指出了Power BI结合SSAS的意义。

第二篇阐述了Power BI和SSAS结合的基本原理。

第三篇介绍了SSAS表格模型建模的基本流程。

第四篇介绍了SSAS表格模型数据刷新的方法。

而这一篇,我们将解决大家都比较关心的一个问题:

当我已经在Power BI上搭建了数据模型,度量值也写了几十上百个了,这一切如果要重新在SSAS上做一遍多麻烦?能否将Power BI的数据模型和度量值一并导入到SSAS?

答案是:能

一、 配套工具

正如第三篇里提到,微软这方面相关软件对版本兼容性要求太严格,不同版本之间兼容性并不好,所以首先要保证SSAS、SQL Server和Power BI的版本统一。本文用到的版本如下:

- SQL Server 2019 开发版(功能齐全)

- SSMS 2018 (版本影响相对较小)

- Visual Studio 2019 社区版,下载安装配套的SSAS扩展包

- Power BI RS版,2021年1月版

- Power BI Report Server,2021年1月版

二、 基本步骤

1. 在SSMS上连接Power BI数据模型

2. 模型脚本化

3. 调整模型脚本

4. 在SSAS中运行脚本

5. 在SSDT中调整该模型

6. 部署模型

三、 在SSMS上连接Power BI数据模型

首先我们打开Power BI文件,然后用Dax Studio连接该文件以获得临时的服务器名称(即下图中红框内文本)。然后打开SSMS,连接窗口中,服务器类型选择Analysis Engine,服务器名称填入刚刚获得的名称,登陆即可。

四、 Power BI 模型脚本化

连接模型后,右键该模型数据库,如下图所示依次选择【脚本】、【编写数据库脚本为】、【create 到】、【新查询编辑器窗口】。即可将该数据库模型转化为一大段XMLA脚本。我们无需知道脚本的语法规则,只需知道,Power BI的模型、表关系、计算列、度量值等信心统统浓缩到这个脚本里了。

五、 脚本调整

接下来的目的是在SSAS中通过这段脚本还原Power BI模型。但在运行这段脚本之前,我们要进行微调。

  • 把数字 字母的长串名称改为自己方便理解和使用的名称,如project_A
  • 把兼容性级别(“compatibilityLevel")的1535 改为1500。这是专门针对上文的软件版本。如果使用2016版,要改为1200。
  • 把下图最下面红框三行直接删掉。

六、 在SSAS中运行脚本

我们继续用SSMS连接本地SSAS数据库,并右键任意一个SSAS数据库,选择【新建查询】——【XMLA(X)】。然后把刚刚修改完的脚本直接复制到这个空的XMLA文件里,按运行。

运行成功后,在下方将出现如下提示,并在SSAS中会新增一个按上一个步骤自定义命名的数据库。

七、 在SSDT(Visual Studio)中调整模型并部署

此时,我们已经成功将Power BI数据模型复制导入到了SSAS中,该模型以名称为project_A的SSAS数据库存在。它包含了所有的表结构、关系、计算列、度量值等。唯一空缺的是数据。为了更方便调整和编辑,我们可以以导入的方式新建一个SSAS数据库项目project_B,在该项目上新增数据源,并执行和部署。

首先打开Visual Studio, 创建SSAS表格项目。不同于常规方式,我们选择从服务器导入的方式。

然后选择project_A数据库,并将该项目命名为project_B。这些步骤跟第三篇里提到的相同。通过此方式新建的项目模型,已经具备了所有的表结构和关系等。接下来我们只需在数据源上添加我们的数据源连接设置即可。

最后,点【处理】全部表,并【生成】和【部署】项目,整个模型就实实在在地在SSAS中搭建好了。

------------

最后,感谢在本人摸索过程中提供经验帮助的网友【透明人】,以及推荐一篇国外MVP的博客:Import Power BI Desktop Model to SSAS Tabular 2016 。该文章主要使用SSAS2015和2016版,并提到了一些值得注意的细节。详见【阅读原文】的文末。

0 人点赞