[工具分享]备份SSAS模型TMSL脚本元数据工具,多给自己一点后悔药可吃。

笔者在2019年分享过自己写的一个小工具,用于备份Sqlserver数据库的元数据。近期在一个PowerBI项目中,发现很有必要也备份下SSAS分析模型的元数据,防止不小心服务器坏了或使用Tabular Editor连接数据库方式开发过程中,不小心覆盖了有用的信息,无法挽回,特别是存在多人开发的场景特别容易出状况。故再次开发了一个小工具,用于SSAS的数据库元数据备份。

工具下载地址:https://easyshu.lanzoub.com/b00w39nzi 密码:2uup

点击阅读原文可跳转到下载链接

SSAS元数据备份原理

使用过Tabular Editor开发的朋友们,想必也更深刻地理解PowerBI建模层的原理,其实就是一段json的字符串,用于定义整个模型的连接、关系、表、度量值、计算列等元数据,只要拿到这段json,就可以通过XMLA查询的方式,直接部署到Sqlserver的SSAS分析服务上。

而bim文件,就是存储这些json信息的文件,通过Tabular Editor直接读取bim文件,就可以把整个模型的信息读进Tabular Editor,然后经过它部署到SSAS服务器上。

39816d8cb94a21c398f64a7787b89689.png

所以对于BI项目来说,备份这个bim文件或json文件信息,比备份整个SSAS数据库来得更科学和方便快捷。

BackupTMSL小工具使用方式

整个工具是绿色软件,只需双击【BackupTMSL.exe】文件即可。瞬间就可以备份完成。

d854656966dd941f181dc05ec802140e.png

备份出来的文件,带上了时间戳,会自动删除30天前生成的文件。

76541ce69394d4fe459541b3dbf2a91b.png

在使用上,需要自行设置一下SSAS服务器连接信息和备份文件夹,建议在部署的服务器上运行此程序,因为若非域环境管理员的帐号,可能没有备份访问SSAS对象模型的权限。

在计划任务上,生成一个任务,定时运行此程序,就可以达到备份的效果,例如工作日时间,9点钟开始备份,每隔1小时备份一次,备份12个小时,基本可以达到防止误操作或模型损坏,丢失了SSAS的数据库元数据的目的。

6a90f6cb477736b6cce9e72916d6f34c.png

以下为历史文章,备份Sqlserver元数据程序分享。

数据库备份听得多了,元数据备份可能较少听说,但对于数据分析来说,创建数据仓库,商业智能项目的数据源引用等,产生大量的数据库表、视图、存储过程等关键信息,这些元数据未经备份,不小心覆盖了,损失可大,很有必要对其进行备份。本篇介绍的备份方式,乃是使用dotNET自己写的一个小工具,比较简陋,有总比没有好,真正出问题时可以帮助我们挽回不少的损失。

备份原理分享

因Sqlserver数据库是一款非常完善的商业数据库,微软给它打造了SSMS客户端管理,并配置了大量的命令让我们可以轻松管理它,当然备份整个数据库的元数据,也只需界面上一个操作即可完成。

具体的操作为【生成脚本】这个命令完成。

0563821430d22e4c304e4c290b965728.jpeg

微软一贯的作风,复杂事情简单化,让门槛足够低,你看,就是简单下一步就完事了。

3f7cb171c03927bc10bb77615f80da7c.jpeg

备份完的这些sql语句,随时可以还原到新的数据库上,当然我们更多的是使用在某个视图、存储过程不小心改错了,重新回来找后悔药吃,看回之前写的版本。

当然如果有高手可以直接在Sqlserver上找回某个对象的过往版本,欢迎留言告之一下,让笔者也学习下。

ca46c59765ee1cd436f54ce5f80249a8.jpeg

让界面化的操作自动化起来

因为以上的操作是界面操作,总不能要求自己每天都这样操作一轮吧,然后也用不着用那些所谓的先进的RPA玩意来搞一遍。

因微软对其自身的产品是开放了API接口调用的,类似Excel里的VBA一样,可以调用这些产品的各个功能,实现自动化。

当然,Sqlserver的功能调用,使用的是SMO对象模型,也不是所有语言都支持调用,只有亲儿子dotNET语言才可以。

笔者使用dotNET简单几句代码,给大家做好了工具,直接拿去用就行了。

工具使用的是Console命令行工具的方式开发,所以使用时,可以在Sqlserver的作业上调用一下,因为是生成文件的操作,好像是有些权限限制的问题,所以最好使用计划任务的方式来调用。

工具配置

下载工具后,解压到某个文件夹里,然后程序里有个配置文件,可以根据实际情况修改下。

  • BackDbNames:备份的数据名称

  • BackupDir:备份的文件夹路径

  • DaysBeforeToDelete:备份文件存放多久,过了这个天数自动帮忙删除它。

  • SqlserverConnectString:如果是远程服务器,就抄一段连接字符串过来,如果是本机的数据库,就默认就可以,当然实例名不是默认的也要改,反正就是SqlServer的连接字符串,自己到http://www.connectionstrings.com/上抄一下就好。

a865e63d4478b65dec5eb55a7cb31988.jpeg

作好这些配置后,就可以测试下是否生成成功,生成没问题,就用计划任务每天跑一下,万一不小心改错了,最多也就丢掉一天的活,比重头开始划算得多了。

结语

正如笔者过往写的文章里提到数据分析师最该使用的数据库是Sqlserver一样,许多的数据库复杂的操作,微软已经帮我们做好,作为分析师类的职能,没必要自己傻折腾IT领域的东西太多,一个自动化工具,自己有能力学习点编程技术,就可以几句代码调用接口做出来,完全没必要跟着潮流来选择MySQL之类的所谓热门数据库。

同样地,对于我们备份数据的环节,不是生产数据库,分析数据型使用的数据仓库,也不用太紧张数据层面的丢失,反而对经常变化的元数据如视图、存储过程等的变化多一份备份更管用。

希望本篇所讨论和分享的工具,对大家可以有所帮助,为大家备上一份后悔药。

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

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

相关文章

计算机桌面去方格子,win7桌面office图标变成白色方格图标的原因和解法

win7系统开机发现桌面上所有office图标变成白色方格图标,其他程序图标都正常显示,是怎么回事呢?出现这样的情况,一般是由于文件图标缓存错误或者丢失导致,找打原因后该如何解决问题?可以通过记事本来解决此…

Kong入门学习实践(1)基础概念快览

【API网关】| 总结/Edison Zhou最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。什么是Kong&am…

条件锁

ReentrantLock类有一个方法newCondition用来生成这个锁对象的一个条件(ConditionObject)对象,它实现了Condition接口。Condition提供了线程通讯的一套机制await和signal等线程间进行通讯的方法。。1、适用场景当某线程获取了锁对象&#xff0…

计算机应用技术 平面设计,全国信息化计算机应用技术水平教育考试试卷 平面设计师...

科目编号:4233全国信息化计算机应用技术水平教育考试试卷(考试时间:180分钟 考试总分:100分 专业认证课程:Photoshop 平面设计)注意事项1、 请首先按要求在试卷的标封处填写您的姓名、考号等;2、 请仔细阅读各种题目的…

RabbitMQ之消息模式简单易懂,超详细分享

前言上一篇对RabbitMQ的流程和相关的理论进行初步的概述,如果小伙伴之前对消息队列不是很了解,那么在看理论时会有些困惑,这里以消息模式为切入点,结合理论细节和代码实践的方式一起来学习。正文常用的模式有Simple、Work、Fanout…

jvm系列(八):jvm知识点总览

在江湖中要练就绝世武功必须内外兼备,精妙的招式和深厚的内功,武功的基础是内功。对于武功低(就像江南七怪)的人,招式更重要,因为他们不能靠内功直接去伤人,只能靠招式,利刃上优势来…

计算机基础知识的文献,四 计算机文献检索基础知识(原理、结构和功能)

1.计算机检索原理计算机一方面接受用户的检索提问,一方面从数据库中读取文献记录,然后把两者进行比较,即检索提问标识与文献记录标识进行匹配运算,如果比较的结果一致,那么这篇文献就会作为命中文献在检索结果中显示&a…

C# 基于.NET6的CM+Fody+HC入门实战项目(经典)

概述上期我们概述了CMFodyHC,如果之前没有阅读,可以先了解下:C# 为什么说CMFodyHC是WPF开发的最强组合?今天基于最新的VS版本、最新的CM框架版本,.NET基于6.0,搭建了一个WPF入门学习项目实例,关…

Kong入门学习实践(2)实验环境搭建

【API网关】| 总结/Edison Zhou最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。本篇&#xff…

我的未来计算机作文,我的未来作文(精选4篇)

我的未来作文(精选4篇)在平平淡淡的日常中,大家总免不了要接触或使用作文吧,作文根据体裁的不同可以分为记叙文、说明文、应用文、议论文。怎么写作文才能避免踩雷呢?以下是小编收集整理的我的未来作文,仅供参考,大家一…

RDS for MySQL Mysqldump常见问题及处理

2019独角兽企业重金招聘Python工程师标准>>> 摘要: RDS for MySQL Mysqldump 常见问题和处理 GTID 特性相关 避免表级锁等待 设置导出字符集 其他导出时需要注意的选项 举例 RDS for MySQL 不支持的选项 RDS for MySQL 逻辑备份 1. GTID 特性相关 MySQ…

《ASP.NET Core 6框架揭秘》实例演示[27]:ASP.NET Core 6 Minimal API的模拟实现

Minimal API仅仅是在基于IHost/IHostBuilder的服务承载系统上作了小小的封装而已,它利用WebApplication和WebApplicationBuilder这两个类型提供了更加简洁的API,同时提供了与现有API的兼容。[本文节选《ASP.NET Core 6框架揭秘》第17章]一、基础模型二、…

高性能Server---Reactor模型

无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮件用的Outlook,Foxmail等你看视频用的优酷,土豆等你写文档用的Office365,googleDoc,Evernote等你浏览网页用的IE,Chrome等(B/S是特殊的C/S)……C/S架构…

springmvc_3(将数据放入map中)

jsp页面 结果 转载于:https://www.cnblogs.com/mohehpc/p/6491376.html

聊聊策略模式

1、简介策略模式就是把各个平等的具体实现进行抽象、封装成为独立的算法类,然后通过上下文和具体的算法类来进行交互。各个策略算法都是平等的,地位是一样的,正是由于各个算法的平等性,所以它们才是可以相互替换的。虽然我们可以动…

张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

20162329 2006-2007-2 《Java程序设计》第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机不可用所以我在Windows中安装了bash和git,但是由于Windows下bash中没有中文而且我英语又不是很好所…

《图解 HTTP》读书笔记(未完待续)

ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址。MAC( Media Access Control Address)地址是指网卡所属的固定的地址MIME,多部分对象集合&a…

.NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运行,控制台模式运行主要问题…

Unexpected end of JSON input while parsing near错误解决方式(网上的方法)

原本是想创建一个create-react-app来着,但是在创建的中间会出现Unexpected end of JSON input while parsing near... 的错误。 在网上找到了一些方法,首先是清空npm的缓存。 npm cache clean --force 氮素,然并卵。near后面的内容变化了一下…

Xmemcached学习笔记一(安装memcached)

memcached有三种java客户端 第一种:Com.danga 包下面的memcached,需引入jar(本人用的是memcached-2.5.2.jar 文末附上附件需要的可以下载) 第二种:spyMemcached 第三种:XMemcached 据说第三种是使用最简单,最好用的&a…