回忆是一座桥
却是通往寂寞的牢

PowerBI模型迁移至SSAS的解决方案

PowerBI的引擎继承自SSAS,所以可以将PowerBI的模型迁移至SSAS中,本篇文章将介绍迁移PowerBI模型到SSAS里的方法。

在进行迁移之前,需要安装以下软件或工具:

  • SQL Server
  • SQL Server Analysis Server (SSAS)
  • SQL Server Management Studio (SSMS)
  • Visual Studio
  • PowerBI Desktop
  • DAX Studio
  • Tabular Editor

获取PowerBI模型的创建脚本

首先需要获取PowerBI模型的创建脚本,通过该脚本即可在不同的SSAS实例上创建具有相同元数据的模型或数据集。为方便理解,可以类比为备份数据库时导出的SQL文件,在SQL文件里有创建数据库以及插入数据等一系列的SQL代码,那么PowerBI模型的创建脚本也是一样的道理。

该创建脚本的获取方式有两种,一种是借助SSMS,另一种则是借助Tabular Editor。


SSMS方式:

1、打开PowerBI文件,点击外部工具,打开DAX Studio

2、在DAX Studio的右下角处找到临时SSAS实例的服务器地址(如果PowerBI模型位于云端,可以先下载到本地,或直接使用工作区连接代替,前提是工作区位于高级容量中,使用共享容量的工作区不存在工作区连接)

3、打开SSMS,连接到Analysis Services,在服务器名称里填入上面获取到的服务器地址

4、如果是临时SSAS实例,那么连接后只有一个模型,如果是PowerBI云端工作区连接,那么连接后需要选择对应的模型。然后如下图所示,即可获取到PowerBI模型的创建脚本


Tabular Editor方式:

1、打开PowerBI文件,点击外部工具,打开Tabular Editor

2、点击上方菜单的Model选项卡,并选择Deploy

3、输入任意SSAS实例的服务器地址,然后点击下一步

4、输入想要创建的SSAS模型的名称,然后点击下一步

5、根据自身情况勾选相应选项,一般保持默认即可,然后点击下一步

6、点击TMSL Script按钮

7、将弹窗里的代码复制保存,这就是我们所需要的PowerBI模型的创建脚本

8、关闭Tabular Editor的所有界面,注意第六步中不要点击Deploy

使用脚本创建SSAS模型

1、打开SSMS,连接到迁移目标的SSAS实例

2、在服务器位置,右键选择新建查询,并选择XMLA查询

3、在弹出的空白查询窗口里,将获取到的PowerBI模型创建脚本粘贴进去

4、修改Database名称,并删掉tables前面的前几行代码(根据版本不同,有的是两行,有点是三行,视情况而定)

5、修改兼容性级别,根据服务器版本进行更改,本案例中用的是2019版本的,因此兼容性级别需要更改为1500

6、删除“lineageTag”标签所在的行(针对2019版本,2022版本可不删)

  • 在XMLA查询窗口里点击任意位置,激活界面,然后按“Ctrl+H”快捷键唤出文本替换工具
  • 使用正则表达式将包含“lineageTag”标签的行删掉
  • 正则表达式:"lineageTag": ".*?",?\r\n

7、点击执行按钮,即可创建SSAS模型,然后在左侧对象资源管理器里刷新一下即可看到新创建的模型

Visual Studio导入SSAS模型获取工程文件

经过以上步骤后,PowerBI模型已经初步迁移到SSAS里,但想要更改模型,那么将无从下手。因此我们还需要获取模型的工程文件,以方便后续的编辑与改动。

1、打开Visual Studio,创建一个新项目

2、选择“从服务器导入(表格)”的项目模板

3、配置项目信息

4、根据自身情况选择工作区,一般使用集成工作区即可

5、输入迁移目标的SSAS服务器地址,及迁移过去的模型

6、等待一段时间后,即可获取到对应模型的工程文件,添加相应的数据源后即可进行编辑与改动

7、至此,整个迁移过程已全部完成

总结

从上面的步骤中可以看到,整个迁移过程的思路很简单,先导出现有PowerBI模型的创建脚本,然后在迁移目标的SSAS实例里运行该脚本,最后再使用Visual Studio获取相应的工程文件以进行后续的编辑与开发。

那么可能会有小伙伴想到,为何不使用Visual Studio一步到位,直接从现有PowerBI模型对应的临时SSAS实例或云端工作区对应的SSAS实例里直接获取工程文件,最后再部署到迁移目标的SSAS实例里。该思路很好,但可惜行不通,因为版本或兼容性等各种问题,该路线被限制了。

比如从云端工作区里导入时会提示不支持:

因此只能是走先获取创建脚本,再创建SSAS模型,最后再获取工程文件的方案。

未经允许不得转载:夕枫 » PowerBI模型迁移至SSAS的解决方案
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论