SSAS(3)_ssa怎么算

2022-11-17 16:46:32 浏览数 (2)

介绍SSAS的存储,涉及:

  • 理解分区
  • 度量组分区的变更与创建
  • 分区的存储模式与区别:MOLAP、ROLAP、HOLAP
  • 主动缓存的作用以及低延迟分区的配置 * 网上看到有翻译成“预先缓存”的
  • 理解聚合
  • 部署SSAS对象;自动调度处理SSAS对象使数据最新

提及数据延迟的问题,再回到ETL工具SSIS,补充一个实际应用话题:

  • 在SSIS中如何捕获上游变更数据(Change Data Capture,简称:CDC)

书名:MCTS Self-Paced TrainingKit(Exam 70-448): Microsoft SQL Server 2008 – Business Intelligence Development and Maintenance

第7章管理SSAS存储、处理(Processing)与部署

在SSAS或OLAP技术中,如何尽可能使用最小存储空间,使大数量数据查询性能最优化,是需要考虑的问题之一。此外,在Cube的生命周期阶段,两项管理任务也需掌握,即部署和处理SSAS对象。

课程1:度量组分区(partitions)和聚合(Aggregations)的定义

1 分区

SSAS存储度量组数据的物理单元称为分区(partition)。一个分区定义装载入一个度量组中事实表数据的切片。

2 创建新分区的理由

默认情况下,一个度量组,一个分区,存储源事实表中所有数据。一般,创建额外的分区有两大理由:

1)提高性能,假设数据未被缓存或以分组形式存储,如果一个度量组只有一个分区,服务器必须扫描整个(物理)分区,找出符合查询的数据。例如,假设事实表有4年销售数据,如果按年设置分区,查询第4年销售额时,服务器只需扫描第4年销售数据的(物理)分区,无需要扫描所有数据(4年)再进行计算,且分区可被并行扫描。

2)优化管理,分区可以有不同存储模式和组合方式,方便独立管理。动手试验中的练习3可以说明这一点。

3 分区的几点考虑

1)策略之一,按时间分区(按年、季度、月)。

2)一般,分区不建议少于4000行或者超出2千万行数据。

4 创建度量组分区

BIDS和SSMS都提供向导工具设置分区。

1)更改默认的分区切片

2)添加一个新的分区

3)选择分区的存储模式

5 分区的存储模式(Partition Storage Mode)

1) 一个cube的逻辑存储模式主要有2层元,数据(metadata)和数据,还可以有第3层,聚合(aggregations)。这里指的元数据,使Cube以逻辑化的实体呈现给最终用户,元数据一直存储在SSAS服务器上。但作为管理人员,可以控制cube数据的存储位置和组合。

2)存储模式

SSAS支持三类存储模式,

– MOLAP(multidimensiional OLAP),多维在线分析处理

– ROLAP(relational OLAP),关系型

– HOLAP(hybird OLAP),混合型

不同存储模式的比较

模式

查询时间

延迟

处理时间

存储大小

MOLAP

中等

ROLAP

HOLAP

中等

中等

3) MOLAP

MOLAP是默认的存储方式,数据和组合都是存储在以文件为基础的多维结构中,由SSAS服务器创建和管理,查询和处理性能比较好。在MOLAP模式下,数据是重复的,既存在数据源中,也存在Cube中,当cube处理时,数据由服务器从数据源进入Cube中。MOLAP延迟性较高是因为只有当(物理)分区处理完后,新数据才会存在。但是,管理人员可以使用主动缓存(proactive cache)尽可能实现实时(real-time)的数据刷新。

4) ROLAP

在ROLAP模式下,cube的数据和组合仍在关系型数据库中,若有聚合,SSAS服务器必须创建额外的关系型表存储cube聚合,查询、处理性能较低,但实时性较高。

5) HOLAP

在HOLAP模式下,cube数据仍关系型存储,聚合存储在SSAS服务器上。在实际中,HOLAP只适用大型历史分区且查询不频繁。

6)存储模式的配置

6 主动缓冲(proactive caching)

1)在MOLAP和HOLAP模式下,SSAS缓冲数据(仅MOLAP)和组合(MOLAP和HOLAP)。但是,一个Cube处理完得到一个数据快照(snapshot),这个数据可能是过时的除非再次处理这个Cube。多数OLAP数据延迟的可接受程度取决于业务需求,可能要求最新甚至实时,主动缓冲就是用来解决这个问题。

2)主动缓冲的工作原理:启动主动缓冲后,服务器可以监听到数据变更的通知,并动态更新维度或度量。

3)主动缓冲有三个监听数据变更通知事件的类型(假设是MOLAP模式的Cube)

– SQL Server

– 客户端发起

– Scheduled Polling

4)优化主动缓冲

– silence interval

– latency

5)启动主动缓冲

SSAS预定义了几种分区存储配置(含主动缓冲的配置)

– real-time ROLAP/HOLAP

– low/medium-latency MOLAP

– automatic/scheduled MOLAP

– MOLAP

7 聚合

1)一个聚合往往包含一个度量组中所有按各种属性组合的汇总度量值,预先定义计算。设计、构建有用的聚合可以提高查询响应速度。

2)但是,过多的聚合会占用大量的存储空间,并且当Cube处理时聚合才会被创建,从而增加Cube的处理时间。

3)BIDS和SSMS均提供“聚合设计向导”工具设计合理的聚合。

8 动手试验:定义度量组的分区和存储

练习1:创建度量组分区

AdventureWorksDW2008R2样本数据库存储了4年数据,按年(物理)分区Internet Sales度量组。

1)双击之前创建好的Adventure Works cube,进入分区(partitions)页面。

2)展开“Internet Sales”度量组,默认情况下,只有一个分区,绑定整个FactInternetSales事实表,表绑定(Table Binding)类型。

3)将默认分区重命名为“Internet Sales 2005”,绑定类型更改为“Query Binding”,查询语句:

SELECT *

FROM [dbo].[FactInternetSales]

WHERE OrderDateKey <= 20051231

4)点击“new partition”,同理,添加新分区“Internet Sales 2006”,Query Binding,查询语句:

SELECT *

FROM [dbo].[FactInternetSales]

WHERE OrderDateKey >= 20060101 and OrderDateKey <= 20061231

5)同理,添加新分区“Internet Sales 2007”和“Internet Sales 2008”。

6)部署,数据并没有分区而发生变化,只是物理存储结构变了。

练习2:选择分区存储模式

使用“SQL Server Profiler”分析器工具,理解不同存储模式对查询的影响。

1)打开“SQL Server Profiler”分析器工具,新建一个跟踪,选择数据库引擎,连接本地数据库,点击运行按钮开始监测关系型数据库的各项活动。

2)在BIDS中,打开Adventure Works Cube,进入“浏览”页面,拖拽几个维度或度量创建一个Pivot报表。在Profiler分析器中,没有显示select语句发送到AdventureWorksDW2008R2数据库,因为MOLAP模式是多维结构服务器存储。

3)假设将2005年作为历史数据,在BIDS中,将“Internet Sales 2005”分区更改为HOLAP模式。部署。

4)在“浏览”页面,将“Date.Calendar”层次结构拖拽至Pivot的列部分,“Internet Sales Amount”度量托拽至Pivot的数据部分。在Profiler分析器中,服务器发送并返回报表组合结果(2005年的销售统计)的Select语句被监测、显示了。从中可以发现未设聚合的HOLAP存储模式,指向一个HOLAP分区的所有查询将被发送至关系型数据库。

5)将“Internet Sales 2005”分区重新更改为MOLAP模式。部署。

练习3:配置主动缓存

使用SSAS主动缓存的特性实现一个低延迟的分区,假设Adventure Works cube同步底层数据源中2008年销售数据的变化。

1)选中之前创建好的“Internet Sales 2008”分区,点击“Storage Settings”,选择“Automatic MOLAP”模式。

2)点击“选项”,启动主动缓冲,“通知”页面,选择“SQL Server”,点选“Specify tracking tables”,选择“dbo.FactInternetSales”。部署。

3)在“浏览”页面,设计按年统计销售额的报表。

4)在SSMS中,手动更新“dbo.FactInternetSales”表中2008年最后一条记录的销售额 1000,返回Cube 3),会发现2008年的销售额发生变化,增加了1000。

练习4:根据向导设计聚合(略)

课程2:部署SSAS对象

动手试验:

练习1:使用向导部署(主要步骤)

1)在BIDS中,编译“TK 70-448 SSAS Project”项目,编译好的文件存储在(TK 70-448 SSAS Project1bin)目录下。

2)开始菜单,选择SQL2k8 Anaysis Services中的“Deployment Wizard”,根据向导,一步一步完成部署过程。

课程3:处理(Processing)SSAS对象

在课程1中,对采用MOLAP存储模式的cube而言,如果不启用配置主动缓冲(proctive caching)特性,必须处理(Process)SSAS对象使数据最新。当一个对象处理时,SSAS服务器向数据源发送“select”语句,并将结果装载至这个对象中。

练习1:增量处理Dimensions维度。

1)在SSMS中,打开AdventureWorksDW2008R2数据库中的DimSalesTerritory表,更改“SalesTerritoryGroup”列,将France更改为“Pacific”。

2)在SSMS中,右击“Adventure Works cube”,单击“浏览”,创建一个按“SalesTerriotryGroup”汇总的销售表,发现该维度成员仍旧是France,未被更新。

3)右击“Sales Territory”维度,单击“处理/Process”(Pocess Update默认配置)。

4)返回2),重新连接,“France”成员被更新为“Pacific”成员。

练习2:使用SQL Server Agent计划处理一个SSAS对象。

1)在SSMS中,连接到本地SSAS上,右击“TK 70-448 SSAS Project”数据库,单击“处理”。在弹出的对话框中,展开脚本/Script下拉框,选择“script action to clipboard”,目的是生成处理该对象的脚本。

2)连接到本地SQL Server数据库引擎,展开“SQL Server Agent”目录,新建一个名为“Process Database”的Job,添加一个名为“Process database”的步骤。选择“SQL Server Analysis Services Command”类型,粘贴1)生成的脚本,确定。

3)启动该Job,测试通过后,可配置该Job的自动执行计划。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/223038.html原文链接:https://javaforall.cn

0 人点赞