精品丨PowerBI迁移到SSAS

业务场景:
企业初期在进行 BI 可视化路线的时候,往往不会选择方案较为完整的SSAS,而是会选择轻量的 PowerBI 方案,究其根本还是软件成本的问题。
但是随着模型越来越臃肿,维护成本越来越高,有很多模型需要进行增量更新,这种情况下,服务器吃不消,需要 SSAS 进行负载分摊,那么如何将 PoweBI 已经搭建好的模型转移到SSAS中呢?

配套工具

  • SQL Server

  • SSMS

  • Visual Studio

  • PowerBI

  • DAX Sudio 或 Tabular Editor

注意,如果想将 PowerBI 的模型完整迁移到 SSAS 中,我们需要获取到Model的TMSL脚本。

获取 TMSL 脚本

方法 1:利用 DAX Studio 获取

打开需要迁移到 SSAS 模型的 PowerBI 文件,在外部工具找到 DAX Studio 并打开。

在 DAX Studio 界面,记录下右下角的临时地址。

打开SSMS,选择连接到 Analysis Services,输入上面记录的临时地址,使用Windows验证的方式连接。

依次选择 Script-Script Database as-Create or Replace to-New Query Editor Window。

此时,获取到的脚本即为 PowerBI 模型的TMSL脚本。

方法 2:利用 Tabular Editor 获取

打开需要迁移到 SSAS 模型的 PowerBI 文件,在外部工具找到 Tabular Editor 并打开。

在 Tabular Editor 工具栏中点击Model,选择Deploy

输入 Server 地址。

点击下一步,在 Database Name 输入想要创建的SSAS模型名称。

点击下一步,根据自身情况,勾选相关选项,通常情况下保持默认选项即可。

点击下一步,选择TMSL Script

此时,获取到的脚本即为 PowerBI 模型的TMSL脚本。

部署模型

打开SSMS,选择Analysis Services,连接到服务器。

在服务器位置点击鼠标右键,依次点击New Query-XMLA创建空白查询。

将利用DAX Studio或Tabular Editor暂存的TMSL脚本Copy过来。

修改database,这个是SSAS数据库名称。

删除“tables”前面的代码。

注意,PowerBI版本不同,需要删掉的行数也不同,有的是2行,有的是3行,视情况而定。

修改“compatibilityLevel”,这个是版本兼容性

注意,如果部署到SQL Server2019,那么这里修改成1500
如果部署到SQL Server2022,那么这里保持不动,或修改成1600都可以。

删除“lineagetag”标签。

  • 在脚本界面,按下“Ctrl”+"F"按键,对脚本执行替换;

  • 启用正则将整个包含lineagetag的行进行删除。

注意,删除标签针对的是SQL Server2019,如果是SQL Server2022则无需进行删除。

两个正则表达式如下:

"lineageTag": ".*?"\r\n
"lineageTag": ".*?",\r\n

接下来,执行部署即可,出现如下提示即为部署成功。

至此,PowerBI模型已经完整迁移到SSAS模型。
看到这里,相信小伙伴们还是有点疑惑:白茶,迁移是完成了,如果我后续要对模型进行修改呢?别急,往下看。

模型导入Visual Studio

打开Visual Studio选择创建新项目。

选择从服务器导入(表格)

配置项目信息。

根据自身情况,设定工作区,兼容性无需调整。

输入服务器名称,选择导入的SSAS数据库。

等待一段时间后,可以看到整个PowerBI模型已经导入到SSAS中,后续更新完成后,可以将其重新部署到SSAS模型中。

注意事项

  • 此方案为企业级应用,不建议小白用户尝试;

  • 迁移之前请仔细核对Visual Studio版本;

  • 暂时无法从Visual Studio反向迁移到PowerBI。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面向对象-抽象类和抽象方法

Java面向对象-抽象类和抽象方法 1、代码案例展示2、抽象类和抽象方法的关系: 1、代码案例展示 1、在一个类中会有一类方法,无需重写,直接使用 2、在一个类中会有一类方法,会对这个方法进行重写 3、一个方法的方法体去掉&#xff…

【文心智能体分享】日记周报助手

引言 在繁忙的实习生活中,你是否曾为如何整理日常的工作日志、周报、月报而烦恼?现在,我们为你带来了一个全新的智能体——“日记周报助手”,它将成为你实习过程中的得力助手,帮你轻松整理实习日志,让你的…

mysql 中的锁

一.锁的介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除了传统的计算资源(cpu,ram,i/o)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性…

初见 Rollup 的十大常见问题

文章目录 初见 Rollup 的十大常见问题1. 超神奇的 Rollup 英文解释!2. 为什么 ESM 要比 CommonJS 要好呢?3. 什么是 tree-shaking ?4. 如何使用 Rollup 处理 CommonJS?5. 为什么 node-resolve 不是一个内置功能?6. 为什么在进行代…

如何警用root用户登录ssh

使用tail指令,可以动态查看日志信息。 (tail -f /var/log/secure或messages) 使用>符号,可以清空日志内容,不删除文件本身。 禁用root用户为以下步骤: 首先使用useradd创建用户(可以修改为其…

STM32HAL-最简单的时间片论法

目录 概述 一、开发环境 二、STM32CubeMx配置 三、编码 四、运行结果 五、总结 概述 本文章使用最简单的写法时间片论法框架,非常适合移植各类型单片机,特别是资源少的芯片上。接下来将在stm32单片机上实现,只需占用1个定时器作为tick即可。(按键框架+时间片论法)…

【数据结构之B树的讲解】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

【乐吾乐2D可视化组态编辑器】开关、阀门、报警状态切换

开关状态 开关的断开与闭合:将电力组件的“开”与“关”2个组件重叠在一起,右键选择“组合为状态”,属性面板中就可以任意切换状态。 视频教程:开关阀门多状态控制 乐吾乐2D可视化组态编辑器地址:https://2d.le5le.co…

【python】python指南(三):使用正则表达式re提取文本中的http链接

一、引言 对于算法工程师来说,语言从来都不是关键,关键是快速学习以及解决问题的能力。大学的时候参加ACM/ICPC一直使用的是C语言,实习的时候做一个算法策略后台用的是php,毕业后做策略算法开发,因为要用spark&#x…

js编程环境配置-vscode

1、安装Node.js 官网下载 选择适合你Windows系统架构(32位或64位)的安装包。windows系统选择“Windows Installer (.msi)”或“Windows Binary (.exe)”进行下载。 双击下载的.msi或.exe文件进行安装。 在cmd中输入node --version和npm --version&…

2-4 基于matlab的洛伦兹系统分岔图实现

基于matlab的洛伦兹系统分岔图实现。通过2种方法,最大值法,庞加莱截面法进行输出分岔图。可直接运行。 2-4 洛伦兹系统分岔图 最大值法 - 小红书 (xiaohongshu.com)

如何平衡安全访问和办公效率?零信任安全×统一身份才是解决之道

在远程办公、混合办公、跨团队协作日益频繁的今天,企业的业务开展需要支持多种访问接入的需求和场景。如何平衡企业数据的安全访问和办公效率将成为挑战。 在业务的多种接入场景上,企业引入零信任(Zero Trust,ZT)产品…

ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(4)

接前一篇文章:ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(3) 上一回讲到,笔者准备第二天围绕信号强度展开进一步测试。实际上没等到第二天,笔者在当天下午下班时间(18点)以后就进行了相关测试(不过测试倒并不是完全针对于信号强…

手机是如何实现多个应用程序同时运行的?

想要理解这个问题,我们要先了解一下操作系统以及进程相关的知识: 操作系统的功能有很多, 例如: 进程管理(Process Management): 功能:创建和终止进程,进程调度&#xf…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续区间和(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 连续区间和(100分) 🌍 评测功能需要订阅专栏后私信联系清隆…

海豚调度异常处理: 使用 arthas 在内存中删除启动失败的工作流

💡 本系列文章是 DolphinScheduler 由浅入深的教程,涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。祝开卷有益。大数据学习指南 大家好,我是小陶,DolphinSch…

明天二战六级

明天二战六级,各位程序员们,加油

八股文系列Spark

为什么Spark 比 MapReduce 更快 DAG相比hadoop的mapreduce在大多数情况下可以减少磁盘I/O次数 mapreduce通常需要将计算的中间结果写入磁盘,然后还要再读取磁盘,从而导致了频繁的磁盘IO。 spark通常不需要将计算的中间结果写入磁盘,只有shuf…

【C++ | const成员】一文了解类的 const数据成员、const成员函数、const对象、mutable 数据成员

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-14 2…

新一代大核卷积反超ViT和ConvNet!同参数量下性能、精度、速度完胜

大核卷积网络是CNN的一种变体,也是深度学习领域的一种重要技术,它使用较大的卷积核来处理图像数据,以提高模型对视觉信息的理解和处理能力。 这种类型的网络能够捕捉到更多的空间信息,因为它的大步长和大感受野可以一次性覆盖图像…