精品丨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。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode LRU 缓存

leetcode: LRU 缓存 LRU 全称为 Least Recently Used,最近最少使用,常常用于缓存机制,比如 cpu 的 cache 缓存,使用了 LRU 算法。LRU 用于缓存机制时,关键的是当缓存满的时候有新数据需要加载到缓存的,这个…

9.1 图片的分割处理(c++)

本文的图片处理分为图片分割、图像的亚像素坐标处理。亚像素处理的原理可以看论文一种基于多项式插值改进的亚像素细分算法,该论文的详解及c的代码实现可以看博文基于多项式插值的亚像素边缘定位算法_基于多项式插值的亚像素算法-CSDN博客。下面的内容很多来自以上博…

简单Mesh多线程合并,使用什么库性能更高

1)简单Mesh多线程合并,使用什么库性能更高 2)Unity Semaphore.WaitForSignal耗时高 3)VS编辑的C#代码注释的中文部分乱码 4)变量IntPtr m_cachePtr切换线程后变空 这是第389篇UWA技术知识分享的推送,精选了…

Stability AI最新的SD3模型存在严重问题 为规避裸体结果导致躯体部分错乱

人工智能 Stability AI 最新的 SD3 Medium 模型存在严重问题,只要生成人物就会出现躯体错乱,这似乎是该公司刻意规避生成裸体图片的结果。目前猜测他们可能在训练过程中就剔除了 NSFW 内容,同时在训练时规避裸体内容进而导致模型也会刻意将人…

03 Tricks

一:Auto-ML的一般形式 还可以支持这个CV啦lp啦,还有多模态啦,都还有很多很多任务啊,都可以支持啊 Auto-Sklearn Auto-Pytorch 结构搜所:神经网络搜所算法: AutoGluon 02 >自动特征工程 Tsfresh Boru…

ATF是如何完成双系统切换的?

ATF(Arm Trusted Firmware)是一个用于ARM架构处理器的可信固件,它最初提供的最主要的功能就是:双系统切换和电源管理。 那么如何进行双系统切换呢,在双系统切换的示例中,除了CPU的跳转,例如CPU…

用Rust手把手编写一个Proxy(代理), 开始动工

https://shop.kongfz.com/795263/ 代理端和代理服务端之间可用自有格式来实现多路复用以减少连接的建立断开的开销,目前暂未实现代理服务端。 类结构 proxy.rs 负责代理结构的存储,监听类型,监听地址,是否有父级地址,认证账号密码等。 flag.rs 监听类型的二进制结构,…

2024 年最新 Python 基于百度智能云实现短语音识别、语音合成详细教程

百度智能云语音识别 采用国际领先的流式端到端语音语言一体化建模算法,将语音快速准确识别为文字,支持手机应用语音交互、语音内容分析、机器人对话等场景。百度短语音识别可以将 60 秒以下的音频识别为文字。适用于语音对话、语音控制、语音输入等场景…

金融行业的等保测评要求

在金融行业中,网络安全问题非常普遍,如恶意攻击、病毒感染、数据泄露等。这些问题可能会导致金融机构的信息系统瘫痪,造成巨大的经济损失,甚至影响国家金融稳定。因此,金融机构应该高度重视网络安全问题,采…

微软的反面:错过了AI时代最大机遇的亚马逊

内容提要 一度被亚马逊给予厚望的Alexa为何被后来者ChatGPT吊打,错失争霸AI世界的机会?这里面不仅有技术的锅。 文章正文 在AI浪潮席卷全球之际,科技巨头们无不争先恐后,力图抢占先机。然而,就在微软借助ChatGPT一举…

彻底理解 C 语言的数组在内存中到底是怎么存放的!

在C语言中,数组是经常被用到的重要数据类型,但在实际使用时,往往有很多工程师会出现各种各样的问题,如内存越界、错误的访问、初始化不当等。这其中有很大一个原因是没有彻底理解数组的存储机制,出现了一些非法地址或者…

Pytorch解决 多元回归 问题的算法

Pytorch解决 多元回归 问题的算法 回归是一种基本的统计建模技术,用于建立因变量与一个或多个自变量之间的关系。 我们将使用 PyTorch(一种流行的深度学习框架)来开发和训练线性回归模型。 二元回归的简单示例 训练数据集(可获取&…

微信群发机器人.使用指南.

0.简介 1.介绍 微信群发机器人是用来群发微信消息的工具,通过控制电脑的键盘和鼠标操作微信app来实现群发.支持的消息类型有:文字,图片,视频,文件,小程序,位置等. 群发机器人也可以将微信联系人中的信息保存到电脑csv表格中,以供分析. 因其是通过模拟用户操作鼠标键盘来实现群…

如何在 Vue 3 中使用 vue3-print-nb 实现灵活的前端打印

你好,我是小白Coding日志,一个热爱技术的程序员。在这里,我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客,一起在技术的世界里探索前行吧! 前言 在前端开…

go interface

package mainimport "fmt"// 接口 interface func main() {c : Chinese{} //创建一个中国人实例u : American{} //创建一个美国人实例greet(c) //中国人打招呼greet(u) //美国人打招呼 }// 接收具备SayHello接口能力的变量 func greet(s SayHello) {…

KOL营销策略:危机公关中的品牌修复与形象重塑

在当今数字化时代,品牌声誉的管理和维护愈发重要。危机公关作为品牌管理的重要一环,对于企业的长期生存和发展具有至关重要的影响。而KOL作为具有强大影响力和号召力的个体,在危机公关中扮演着不可或缺的角色。本文Nox聚星将和大家探讨KOL在危…

yolo案例项目学习记录

box-ocr: 监控摄像头视频流实时计数传送带的货物,并提取货物上面文字或二维码 1.本地环境: 1.1torch、torchvison、torchaudio版本对应关系 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客 1…

Leetcode419. 甲板上的战舰

Every day a Leetcode 题目来源:419. 甲板上的战舰 解法1:一次遍历 战舰的个数,等于战舰「头部」的个数。 具体来说,如果位于 (i, j) 的格子是战舰的头部,那么左边和上边的相邻格子不能是 X。 代码: …

php收银系统源码推荐

智慧新零售系统是一套线下线上一体化的收银系统。致力于给零售门店提供『多样化线下收银』、『ERP进销存』、『o2o小程序商城』、『精细化会员管理』、『丰富营销插件』等一体化行业解决方案! 一、多样化线下收银 1.聚合收款码 ①适用商户:小微门店&am…

Vue40-vueComponent构造函数

一、组件的本质:VueComponent构造函数 组件的本质是:构造函数 二、每一次调用vue.extend,返回的事一个全新的 VueComponent VueComponent的源码如下: 三、组件中的this 组件中的this是VueComponent实例对象,结构和vm…