SSAS & Excel BI Tips正篇之三:远程分区 (Remote Partition) 负载均衡

原课程计划里并没有这篇内容,今天在群里讨论SSAS的负载均衡方案,有网友提到Remote Partition远程分区,恕我孤陋寡闻,之前未曾了解过这个解决方案,阅读了官方的文档后觉得这个的确很有益处,这里记录下Demo实践的过程供大家参考,并特此鸣谢方案的提出者"理想"同学,很多时候真的是没有做不到,只有想不到。

https://technet.microsoft.com/en-us/library/ms174837(v=sql.90).aspx

上面连接是我这个Demo所参考的官方向导,向导文档是基于SQL 2005版本的,而我这里使用的是SQL 2012,包括AW MD Project也是2012版,所以Demo会和向导文档略有差异。

首先需要准备两个SSAS Instance,实际环境中这两个实例必须是在两个不同的Server上才有意义,不然怎么叫远程分区呢?我这里条件有限,仅在同一台Server上安装了两个Instance,一个默认实例localhost作为Master Instance,部署了AW多维数据集,如下图所示

另一个实例localhost\Remote作为部署远程分区的Subordinate Instance,暂时还没有任何内容

分别配置两个SSAS实例的参数项LinkFromOtherInstanceEnabled和LinkToOtherInstanceEnabled为true,两个实例都需要设置这两个参数,右击SSAS数据源选择Property属性,在Analysis Server Properties的General页面里找到这两个参数并修改为true,保存退出后可能需要重启下SSAS Service,我在Demo过程中没有手动重启,但期间死机重启过一次,所以也不知道具体要不要重启。。。。。。

下面我们为Subordinate Instance新建一个MD项目,命名为AdventureWorksDW_Remote以区分Master Instance的AdventureWorksDW2012Multidimensional-EE,在这个新建的项目上创建Data Sources连接到Master Instance,Provider选择OLE DB for Analysis Services,Server设置为localhost默认实例,Initial catalog选择AdventureWorksDW2012Multidimensional-EE,如下图所示

然后右击这个MD项目,点击Edit Database, Properties属性页面设置MasterDataSourceID为Adventure Works DW2012 Multidimensional-EE

最后配置部署选项,设置Server为localhost\Remote实例

部署这个项目后在SSMS里刷新.\Remote实例下的Databases数据源,看到这个项目如下图

接着我们再回到Master Instance去修改AdventureWorksDW2012Multidimensional-EE,首先需要修改Internet Sales Order Details.dim的StorageMode属性,默认这个维度时Rolap,这里必须要修改为Molap

这是因为我们接下来需要设置Fact Internet Sales部分分区部署到远程实例,SSAS要求所有跟Fact Internet Sales相关的维度必须是Molap存储模式,否则会报以下错误信息

接着需要新建一个Data Sources数据源连接到Subordinate Instance,我命名为Adventure Works DW Remote,具体配置见下图,这样才能使两个实例互相通信

打开Partitions设置页面,我们现在要把Fact Internet Sales 2008年的分区设置到远程部署,定位到Internet_Sales_2008分区,到Properties属性页面设置StorageLocation,

选择Remote Analysis Services Data Source为上一步创建的数据源Adventure Works DW Remote,OK确定

最后部署更新并full process这个MD项目,到SSMS Object Explorer里查验Master Instance如下,Data Sources里有远程SSAS和本地DW两个数据源,Fact Internet Sales下面有四个分区,注意Internet_Sales_2008这个分区也是存在于Master Instance的,只不过这里仅仅是个"指针",2008年的Sales事实数据并不是存储在这个实例下面

我们到以下路径查看Master Instance下面Internet_Sales_2008年的分区文件夹,里面仅仅看到一个51k的xml文件保存了一些Metadata,真正的数据文件不在这个实例持久化

C:\Program Files\Microsoft SQL Server\MSAS11.MSSQLSERVER\OLAP\Data\AdventureWorksDW2012Multidimensional-EE.0.db\Adventure Works.0.cub\Fact Internet Sales 1.0.det\Internet_Sales_2008.0.prt

再到SSMS Object Explorer里查验Subordinate Instance如下,Data Sources里有远程SSAS和远程DW两个数据源,Fact Internet Sales下面只有一个分区Internet_Sales_2008

到以下路径查看Subordinate Instance下面Internet_Sales_2008年的分区文件夹,里面能看到很多数据文件,这个文件夹占用了2M磁盘空间,说明真正的数据文件确实被部署到远程实例了

C:\Program Files\Microsoft SQL Server\MSAS11.REMOTE\OLAP\Data\AdventureWorksDW_Remote.0.db\Adventure Works.0.cub\Fact Internet Sales 1.0.det\Internet_Sales_2008.0.prt

此时如果客户端做如下查询请求,对2007和2008两年的Internet Sales事实度量值聚合分析

Profiler在Master Instance捕捉到以下MDX脚本

SELECT {[Measures].[Internet Sales Amount],[Measures].[Order Count]} DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON COLUMNS ,

NON EMPTY Hierarchize(DrilldownMember({{DrilldownLevel({[Date].[Calendar].[All Periods]},,,INCLUDE_CALC_MEMBERS)}},

{[Date].[Calendar].[Calendar Year].&[2007],[Date].[Calendar].[Calendar Year].&[2008]},,,INCLUDE_CALC_MEMBERS)) DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME,

[Date].[Calendar].[Calendar Semester].[Calendar Year] ON ROWS

FROM (SELECT ({[Date].[Calendar].[Calendar Year].&[2008], [Date].[Calendar].[Calendar Year].&[2007]}) ON COLUMNS FROM [Adventure Works]) CELL PROPERTIES VALUE, FORMAT_STRING, LANGUAGE, BACK_COLOR, FORE_COLOR, FONT_FLAGS

Master Instance主实例在拿到这个查询请求后,根据自己掌握的元数据判断到2007分区部署在本地实例,2008分区部署在远程实例,命令两个实例并发执行各自分区的聚合查询,实际环境中这两个实例是在两台不同Server上部署,那么就可以同时利用两台Server的硬件资源,包括cpu, memory, disk io,达到了均衡负载的目的,最终主实例会把各Server查询的结果组织起来返回给客户端,那么这种聚合查询的性能将会与远程分区实例的数量成正比提升。

时间: 2024-11-09 19:16:40

SSAS & Excel BI Tips正篇之三:远程分区 (Remote Partition) 负载均衡的相关文章

SSAS & Excel BI Tips正篇之二:性能调优之KeyColumn & NameColumn

SSAS的维度特性(Attribute)有以下三个属性(Property):KeyColumn, NameColumn, ValueColumn,下图所示为AW的Date维度对这三个Column属性的设置,而我们利用向导生成的维度默认只有KeyColumn设置,如果没有手动设置NameColumn的话,其值默认等于KeyColumn,如果没有手动设置ValueColumn的话,其值默认等于NameColumn.通常来说维度表数据量不大时使用向导生成SSAS维度不会有什么问题,而如果维度表数据量稍

SSAS & Excel BI Tips番外篇之一:What-If分析

这个系列用于记录工作中利用SSAS和Excel进行数据分析的经验技巧,正片放在了天善(SSAS & Excel BI Tips),番外篇现在打算以博客的形式来分享些小技巧,小到不足以作为独立的课程来讲解,但又是很多BA, BU不熟悉却很有用的技能,献给需要的朋友. 此篇说的是Excel的What-If假设分析,SSAS的What-If Writeback打算放在正片讲解. 下图所示是一个简单的等额本金贷款月供计算,第一行是总贷款额30万,第二行是已还款月数默认置为0,第三行是总还款月数20年24

SSAS & Excel BI Tips番外篇之三:Pivot Chart

直接分享一篇最近在微信里传播的文章(http://daily.zhihu.com/story/4360204),是关于Excel数据透视图的发烧玩法,经常会看到一些BI产品在宣传时抛出些观点,说自己产品的图表是多么的绚丽,赶紧抛弃丑陋的Excel吧, Excel的数据透视图可能的确不如一些专业做图表的工具做出来的效果绚丽,但绝对不至于说丑陋不堪,另外,它的优势还在于和ppt以及word的无缝结合,这个是其它工具不容易做到的,所谓的可视化图表意义在于决策者能够以最直观的形式把握数据趋势,通常是由B

SSAS & Excel BI Tips番外篇之四:处理时找到重复的属性键、找不到属性键

这是两个非常常见的SSAS处理异常,网上也能找到很多文章讲解决办法,但很少见关于异常原因的分析,先来看看第一个" OLAP 存储引擎中存在错误: 处理时找到重复的属性键",一个维度表的关键字段,也就是通常讲的主键,是必须具有唯一性的,如果因为维度主键字段出现重复键,真没什么好说的了,太不应该犯这种错误,所以通常大家看到这个处理异常信息都是因为一个非主键属性,例如[Dim Customer]维度里的[Education]属性,和主键[Customer Key]是一对多的关系,Educat

Net分布式系统之三:Keepalived+LVS+Nginx负载均衡之高可用

上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求.所以系统架构引入Keepalived组件,实现系统高可用. 一.Keepalived介绍 Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用,其功能类似于heartbeat,解决单机宕机的问

【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为Web服务器流量的入口,挑选最合适的一台Web服务器,将客户

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192

(转)Linux负载均衡软件LVS之三(配置篇)

LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director Server的配置在Director Server上配置LVS负载均衡集群,有两种方法: 通过ipvsadm命令行进行配置 通过Redhat提供的工具piranha来配置LVS 1.通过ipvsadm命令行方式配置LVS 安装IPVS后,就可以配置LVS集群了,首先在Director Serve

移动端Web开发调试之Chrome远程调试(Remote Debugging)

本篇主要说一下Chrome RemoteDebugging 的方法,之前也遇到一些坑,自己总结了一些经验,分享如下. Chrome DevTools调试移动设备Brower Page Tabs/WebViews 安卓远程调试目前支持所有操作系统(Windows,Mac, Linux, and Chrome OS.)中调试,支持: ● 调试站点的页面 ● 调试安卓原生App中的WebView ● 实时将安卓设备的屏幕图像同步显示到开发机器. ● 通过端口转发(port forwarding)与虚拟