精品丨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,一经查实,立即删除!

相关文章

【名词解释】Unity中的3D坐标系

Unity中的3D坐标系是一个基于右手定则的笛卡尔坐标系,它定义了Unity场景中所有3D对象的位置、旋转和缩放。以下是一些基本的名词解释和使用方法: 名词解释: X轴:水平方向,从屏幕左侧向右延伸。Y轴:垂直方…

SQL Auto Increment

SQL Auto Increment 在关系型数据库中,自动增量(Auto Increment)是一个常见且实用的特性。它允许数据库自动为表中插入的新行分配唯一的标识符,通常用于主键字段。本文将深入探讨SQL中的自动增量功能,包括其工作原理、…

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

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

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

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

mysql 中的锁

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

【C#】IndexOf的使用

1. 在ObservableCollection<T> 类中使用&#xff1a; ObservableCollection<T> 类是 C# 中的一个集合类&#xff0c;它继承自 Collection<T> 并实现了 INotifyCollectionChanged 接口&#xff0c;使得集合的更改可以自动通知给任何监听它的界面元素。这使得…

初见 Rollup 的十大常见问题

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

如何警用root用户登录ssh

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

STM32HAL-最简单的时间片论法

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

20240613每日前端--------聊聊根据面试简历面试的一位高级前端开发工程师

项目经验 封装了通用的表单组件&#xff0c;支持多表单结构&#xff0c;如&#xff1a;富文本编辑器、文件上传等封装了 Echarts 图表组件&#xff0c;可以展示各种报表数据封装了通用的表格组件&#xff0c;支持多条件搜索及分页功能封装了 svg 图标上传组件&#xff0c;将下…

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

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

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

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

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

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

开发指南030-常用的工具网站

1、下载jdk https://mirrors.huaweicloud.com/java/jdk/ 2、在线解析二维码 http://cdn.malu.me/qrdecode/ 3、Properties和Yaml格式互转 https://www.toyaml.com/index.html 4、生成banner https://devops.datenkollektiv.de/banner.txt/index.html 5、二维码生成器 http…

js编程环境配置-vscode

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

MySQL为root用户添加IP地址连接权限

需求 部署在本地的MySQL数据库&#xff0c;默认主机是localhost&#xff0c;这样局域网内的其他电脑就会连接不到&#xff0c;如果想要其他的电脑也可以访问的话&#xff0c;需要将主机名设置为本机IP。 解决方案 MySQL语句&#xff1a; GRANT ALL PRIVILEGES ON *.* TO 用户…

numpy数组transpose方法的基本原理

背景&#xff1a;记录一下numpy数组维度顺序操作 一、具体示例 transpose方法用于交换数组的轴&#xff0c;改变数组的维度顺序。方法的参数是一个代表新轴顺序的元组。 假设你有一个三维数组&#xff0c;其形状是 (a, b, c)&#xff0c;即有 a 个块&#xff0c;每个块中有 b…

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

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

前端常用排序算法

1.时间复杂度 n*n&#xff1a;冒泡排序、选择排序、插入排序nlogn&#xff1a;快速排序、归并排序、堆排序 2.冒泡排序 定义&#xff1a;每次都是相邻元素比较&#xff0c;第一个元素比第二个元素大则交换位置直到最后一个元素为最大&#xff0c;继续循环代码实现&#xff1…

圆锥曲线的分类

有一个圆锥 C C C&#xff0c;以及一个不过圆锥顶点的平面 Q Q Q。用解析几何证明&#xff1a;当平面平行于圆锥的轴时&#xff0c;交线是双曲线&#xff1b;当平面平行于圆锥的母线时&#xff0c;交线是抛物线&#xff1b;其它情况下&#xff0c;交线为椭圆&#xff08;包括圆…