热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

SSAS下玩转PowerShell(二)

上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本。原文地址:www.mssqltips.comsqlservertip2939au

上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本。 原文地址: http://www.mssqltips.com/sqlservertip/2939/au

上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本。

原文地址:

http://www.mssqltips.com/sqlservertip/2939/automate-sql-server-analysis-services-tasks-with-powershell--part-2/?utm_source=dailynewsletter&utm_medium=email&utm_cOntent=headline&utm_campaign=20140328

在SSAS下使用PowerShell变量

首先来看下面的代码:

$mydate="ssas powershell"

这里我们创建了一个名字为$mydate的变量,$前缀表名这是一个变量,然后给这个变量赋一个值"ssas powershell"。

如果需要显示变量$mydte的值只需要把变量的名字敲出来然后按ENTER。

$mydate

\

接下来把当前日期赋给这个变量。

$mydate=Get-Date

通过Get-Date方法获取到当前日期,并且将其赋给$mydate变量。PowerShell是不需要为变量指定类型的:

\

默认显示的日期类型是长类型的,并且格式会遵从服务器的配置格式。通过下面的命令可以将其转换成yyyyddMM的格式:

$mydate=Get-Date –format yyyyddMM

MM在这里是大写主要是为了跟分钟的小写mm区分开。

验证下格式:

$mydate

\

这样我们就获取到了一个格式为yyyyddMM的保存有当前日期的变量。

接下来需要做的就是根据这个当前时间来创建备份。

backup-asdatabase d:\awdb-$mydate.abf "AdventureWorksDW2012Multidimensional-EE" -AllowOverwrite –ApplyCompression

\

这样一个待用当前时间编辑的文件名备份就被创建在了d盘上。同样在上面的这个命令中,指派了数据库的名称,允许覆盖标记以及是否启用压缩。

\

使用PowerShell处理SSAS的一个分区

跟上一篇的不同,这里我们用一个变量名引入到命令中,来实现动态的分区处理。

首先我们来关注下SSAS的分区,查看下图,我们可以看到SSAS数据库的层级极结构:

\

接下来我们要处理Internet_Orders_2008这个分区。跟上一篇不同我们通过变量的方式$myyear传送2008这个值到命令中然后处理相应的分区。

$myyear=2008

Invoke-ProcessPartition -Name "Internet_Orders_"+$myyear -MeasureGroupname "Internet Orders" -CubeName "Adventure Works" -database "AdventureWorksDW2012Multidimensional-EE" -ProcessType "ProcessFull"

在上面的命令中,变量"Internet_Orders_$myyear"对应的就是分区名"Internet_Orders_2008"。度量值组是"Internet Orders",CubeName是"Adventure Works"。

通过PowerShell调用XMLA脚本

XMLA最主要的一个用途就是创建和处理SSAS对象。在这个示例中我们生成一个脚本来创建分区,然后在PowerShell里执行它。首先,创建一个生成分区"Internet_Orders_2008"的脚本。

\

然后,对这个XMLA脚本进行修改,找到标识分区名称为2008的地方,将其改成2009。

\

[译注]:原文这里没有提到,就是下面的QueryDefinition对应的那段SQL代码也是需要修改的,所以实际项目中,需要根据实际情况,Name和QueryDefinition都需要修改,这里的修改跟UI界面中的都能对应的上,所以这里不做详细介绍。

将这段脚本保存下来,比如:d:\powershell2\createPartition.xmla目录,然后用PowerShell的Invoke-ASCMD命令运行这个脚本。

Invoke-ASCmd -InputFile:"d:\powershell2\createPartition.xmla"

Invoke-ASCMD命令用于在PowerShell中运行SSAS命令,比如XMLA脚本,应用立方体的MDX脚本以及应用数据挖掘的DMX脚本。如果此时在SSMS中刷新一下SSAS实例,可以看到新创建的分区。

\

在PowerShell中运行MDX查询

首先生成一段MDX查询,在SSMS中浏览Adventure Works立方体。

\

拖拽Internet Order Count度量值到查询面板中。

\

点击设计模式图标就可以看到对应的MDX脚本。

\

把脚本拷贝出来然后保存到文本文件中,比如d:\powershell2\" directory。用如下命令运行这个mdx脚本。

Invoke-ASCmd -Database "AdventureWorksDW2012Multidimensional-EE" -InputFile:"d:\powershell2\mymdx.mdx"| Out-file d:\Results\XMLAQueryOutput.xml

这里我们所做的就是在AdventureWorksDW2012Multidimensional数据库中运行这个MDX查询,查询结果以XML的方式显示在文件XMLAQueryOutput.xml中。

查询的结果可以在XML文件中找到。

\

[译注]

原文介绍的都是很简单的操作,但是对于自动化任务来说还是很方便的,不如动态创建分区,动态处理分区等等,变量的引入可以加入更多的程序流程在里面,从而实现更复杂的功能。


推荐阅读
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • PHP开发人员薪资水平分析:工程师平均工资概况
    PHP开发人员薪资水平分析:工程师平均工资概况 ... [详细]
  • 在数据库设计中,谨慎使用外键至关重要。本文探讨了九个关键原因,包括数据完整性的维护、性能优化、系统复杂性的管理、数据迁移的灵活性以及对外部系统的依赖性控制。通过深入分析这些因素,可以帮助开发人员和架构师做出更明智的设计决策,确保数据库系统的高效与稳定。 ... [详细]
  • MySQL 数据备份与恢复的常见方法及其实践经验总结。物理备份涉及直接复制数据库文件,适用于大规模数据库环境,但无法在异构系统(如 Windows)中恢复。逻辑备份则侧重于导出建表语句和数据插入语句,便于跨平台迁移和部分数据恢复。此外,本文还探讨了增量备份、全量备份以及使用工具如 mysqldump 和 Percona XtraBackup 的具体应用场景和优缺点。 ... [详细]
  • 《精通 jQuery》第六章:深入解析与实战应用
    《精通 jQuery》第六章:深入解析与实战应用本章详细探讨了 Ajax 技术的核心机制及其实际应用。Ajax 通过 XMLHttpRequest 对象实现客户端与服务器之间的异步数据交换,从而在不重新加载整个页面的情况下更新部分内容。这种技术不仅提升了用户体验,还提高了应用的响应速度和效率。此外,本章还介绍了如何利用 jQuery 简化 Ajax 操作,并提供了多个实战案例,帮助读者更好地理解和掌握这一重要技术。 ... [详细]
  • 本文详细探讨了MySQL并发参数的优化与调整方法,旨在帮助读者深入了解如何通过合理配置这些参数来提升数据库性能。文章不仅介绍了常见的并发参数及其作用,还提供了实际操作中的调整策略和最佳实践,适合希望提高数据库管理技能的技术人员阅读。 ... [详细]
  • 解决MySQL 5.1服务器无法正确识别中文字符的问题
    在使用MySQL 5.1服务器时,可能会遇到无法正确识别中文字符的问题。由于相关资料较少且不够全面,本文将详细阐述解决方案。首先,需要检查MySQL的配置文件,确保字符集设置正确,并通过命令行工具验证当前的字符编码配置。此外,建议更新到最新版本以避免此类问题。 ... [详细]
  • SQL Server 客户端连接远程数据库时未指定端口导致 “用户 'sa' 登录失败 (错误 18456)” 的解决方案 ... [详细]
  • Java Web开发中的JSP:三大指令、九大隐式对象与动作标签详解
    在Java Web开发中,JSP(Java Server Pages)是一种重要的技术,用于构建动态网页。本文详细介绍了JSP的三大指令、九大隐式对象以及动作标签。三大指令包括页面指令、包含指令和标签库指令,它们分别用于设置页面属性、引入其他文件和定义自定义标签。九大隐式对象则涵盖了请求、响应、会话、应用上下文等关键组件,为开发者提供了便捷的操作接口。动作标签则通过预定义的动作来简化页面逻辑,提高开发效率。这些内容对于理解和掌握JSP技术具有重要意义。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 如何在 PostgreSQL 中查询表创建语句:PostgreSQL 操作指南
    首先,启动 pgAdmin 并连接到目标数据库服务器。接着,在左侧导航栏中展开“架构”节点,找到并选择需要查询的表。最后,切换到“SQL”标签页,即可查看该表的创建语句。此外,你还可以通过执行 `SELECT pg_get_ddl_command('表名'::regclass);` 命令来直接获取表的 DDL 语句。 ... [详细]
  • 在多模块项目中,项目A作为一个独立的工具包,不依赖于任何第三方库。其目录结构如下:`--src--main--java--resources`。当将项目A打包成JAR文件后,发现无法正确访问`resources`目录下的文件资源。这一问题可能源于JAR文件的构建配置或类路径设置不当,需要仔细检查Maven或Gradle的构建脚本,确保资源文件被正确包含并加载。 ... [详细]
  • Spring Boot 和 Spring Cloud 是 Spring 生态系统中的重要组成部分,各自具有独特的特性和应用场景。Spring Boot 通过简化配置和自动配置机制,显著提高了开发和部署效率,减少了传统 Spring 应用中繁琐的 XML 配置文件需求。而 Spring Cloud 则在此基础上进一步提供了分布式系统的解决方案,包括服务发现、配置管理、断路器等高级功能,适用于微服务架构的构建和管理。本文将深入探讨两者的核心差异,并分析其各自的最佳应用场景。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • 如何在Oracle ASM_Diskgroup中重命名现有磁盘
    如何在Oracle ASM_Diskgroup中重命名现有磁盘 ... [详细]
author-avatar
南塘所有的经筒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有