SQL Server 2005 Analysis Services性能指南 Part 2 - 优化维度设计

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04 编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017) 阅读详情
优化维度设计

经过良好调校的维度设计方案是高性能Analysis Services最关键的因素之一。有两种主要的优化维度设计方案:

<!--[if !supportLists]-->·           <!--[endif]-->定义属性关系

<!--[if !supportLists]-->·           <!--[endif]-->有效地使用层次

定义属性关系

通常情况下,Analysis Services维度数据源是关系型数据仓库中的维度表,维度表包含主键、属性和关联到其他表的外键。

表 1   简单的产品维度表包含的列

维度表列

列类型

与主键的关系

与其他列的关系

Product Key

Primary Key

Primary Key

---

Product SKU

Attribute

1:1

---

Description

Attribute

1:1

---

Color

Attribute

Many:1

---

Size

Attribute

Many:1

Many: 1 to Size Range

Size Range

Attribute

Many:1

 

Subcategory

Attribute

Many:1

Many: 1 to Category

Category

Attribute

Many:1

 

表 1显示一种简单的产品维度表。在这个简单的例子中,产品维度表有一个主键列,其他列是属性。从关系的观点看,所有属性与主键都是多对一,或一对一的关系。属性间也存在关系,例如Size和Size Range是多对一的关系;Subcategory和Category也是多对一的关系。

如同在关系型数据库中需要理解和定义字段间功能性依赖关系,在Analysis Services中为了正确聚合数据、有效存储和查找数据,你必须理解属性间关系。为了帮助你在属性间创建联系,Analysis Services提供了属性关系特征。顾名思义,属性关系用于描述两个属性间的关系。

在最初创建维度时,Analysis Services自动将主键和属性间建立多对一关系,如图 5。

<!--[if !vml]-->
<!--[endif]-->

图 5   默认属性关系

图 5中的箭头代表了Product Key与维度其他属性间的关系。图 5是一种有效,但是没有经过优化的维度结构,因为它没有为Analysis Services指明属性间的关系。

使用这种设计,当查询中包含了维度中的属性时,数据永远由维度主键汇总。比如,当你要按Subcategory查询销售量时,需要汇总Product Key级别的销售量;当你要按Category查询销量时,也需要汇总Product Key级别的销售量。这可以说是低效能的,因为Category属性的销售量可由Subcategory属性销售量汇总。而且,使用这种设计,Analysis Services不知道某种属性成员组合是否存在,它必须使用事实数据来识别有意义的成员组合。例如,Category属性包含成员“附件“, Subcategory属性包含成员“山地车”,“山地车”不属于“附件”,所以“山地车”和“附件”的组合是无意义的。但如果没有定义属性关系,而按Category和Subcategory属性组合来查询数据,Analysis Services就不能准确地确定“山地车”和“附件”的组合是否存在。

为了优化维度设计,首先你必须理解属性间的关系,并进行一些设置,让Analysis Services明白这些关系。

为了增强产品维度设计,图 6中使用属性关系来优化维度设计。

<!--[if !vml]-->
<!--[endif]-->

图 6   优化属性关系的产品维度

注意图 6和图 5的区别。图 5中,所有属性关联到主键。而在图 6中加入了两个属性关系,Size关联到Size Range,Category关联到Subcategory,这反映了属性间的多对一关系。

典型的多对一关系如图 6中层次那样。层次表明了多对一关系,但Analysis Services不会自动检验所有层次是否满足多对一关系。所以当属性加入层次前,你必须保证属性间能严格满足多对一关系。如果创建了违反多对一规则的层次,查询时就会得到错误的结果。

举个例子,你有一个时间维度带有月属性和年属性,月属性包含值1月、2月、……、12月,年属性包含2004、2005、……。当你在月属性和年属性间建立了关系,Analysis Services在处理时就不知道如何将月分配到年。Analysis Services不知道将1月关联到2004还是2005。唯一能保证正确建立关系的方法是在月属性的KeyColumns参数包含月列和年列。

KeyColumns是唯一标识属性成员的源列或源列集合。一旦你在属性间建立关系,就要注意KeyColumns。必须确保维中的每个属性的KeyColumns能唯一标识属性成员。如果KeyColumns不是唯一标识属性成员,在处理时遇到重复成员会默认忽略,结果导致不正确的汇总。

注意,如果属性关系有默认的Type,当Analysis Services遇到重复的月时,会错误地将所有月分配给第一或最后的年(依据于数据刷新方法),而且不会提示任何错误。关于Type参数和数据刷新方法对重复键的影响,参考“优化维度成员Insert, Update, Delete”章节。

无论选择何种数据刷新方法,键重复通常都会产生错误的数据汇总,你应该正确设置唯一的KeyColumns来避免这种情况。如果正确配置了KeyColumns,最好修改维度的默认错误配置,以确保处理时不再忽略重复键。将KeyDuplicate值从IgnoreError改成ReportAndContinue或ReportAndStop,这样在遇到重复键时Analysis Services将发出警告信息。

定义了新的属性关系后,为了性能和数据正确性,必须删除多余的关系。图 6中,在加入了新的关系后,Product Key不再需要直接关联Size Range和Category,所以要删除这两个关系。为了帮助你识别多余的属性关系,Business Intelligence Development Studio提供了可视化的警告。

虽然Product Key不再需要直接关联Size Range和Category,但仍然通过属性关系链间接地关联到这些属性。比如,Product Key关联到Size,Size关联到Size Range,这种属性关系链叫做层叠属性关系。

有了层叠属性关系,Analysis Services就能够更好的优化聚合设计、数据存储、数据查找和MDX计算。除了性能方面的优点,属性关系也可以用来增强维度安全,可以用来将度量数据关联到非主键粒度属性。例如,你的销售度量数据粒度是Product Key,但你的预测度量数据粒度是Subcategory,有了Subcategory与Category的属性关系,你的预测度量数据就可以汇总到Category。

设计有效属性关系的核心原则是依据业务逻辑建立维度模型。这里提供优化维度设计的指导和最佳方案,为了设计成功的模型,你必须非常熟悉数据和数据所支持的业务需求。

考虑这样的例子:你的时间维度带有一个称为Day of Week的属性。这个属性包含七个成员,既“星期一”到“星期日”。你可能会想到修改此属性的KeyColumns参数,使星期能与日历日期关联起来,比如将星期与年月组成层次。但你又必须考虑到,某些场合下需要独立分析一周七天的销售变化。所以最好的设计依赖于业务需求。更多关于时间维度的设计方案,参考“UDM中时间计算:并行时间(http://www.sqljunkies.com/WebLog/mosha/archive/2006/10/25/time_calculations_parallelperiod.aspx)”。

有效使用层次

在Analysis Services中,用户可以使用属性建立两种层次:属性层次和用户层次。不同的层次对查询性能有不同的影响。 

属性层次是维度中默认建立的。对非父子层次,每个属性层次包括两级:属性本身和All级别。尽管All默认是每一个属性层次的最顶部级别,但你也可以通过设置IsAggregatable参数禁用All级别。在大多数情况下,不建议禁用All级别。禁用All级别后,你的查询总是要用此属性层次中一个特定的成员进行切片。当你显式指定Default Member控制切片时,注意所有查询都将使用此切片,而不管你的查询语句中是否引用了此属性层次。

(※注:原文不是很清楚,我解释一下。例如,一个度量值销售量关联到产品、日期、客户三个属性层次。如果要列出产品的销售量,你会查询{ 销售量, 产品.Members },相当于是查询{ 销售量, 产品.Members, 日期.All, 客户.All }。一旦禁用了日期的All层次后,查询时需要在MDX语句中为日期指定成员用于切片,或者设置日期的Default Member,比如将日期默认成员设置为2007年1月1日,那么当你使用同样的查询时,实际上是在查询{ 销售量, 产品.Members, 日期. 2007年1月1日, 客户.All },会用到日期的默认成员来切片)

就性能来说,属性层次中的属性不会自动聚合。当在查询中用到这些属性时,需要通过主键汇总数据。这样的话,查询性能可能会不理想。

为了增强性能,可以通过设置Aggregation Usage参数将属性标识为用于聚合备选。关于此技术手段的详细信息,参考“定义聚合备选”章节。不过,在修改Aggregation Usage前,先考虑是否可以使用用户层次来增强性能。

在用户层次中,属性被分派到预定义的多级导航树中,使得终端用户能更快捷的分析数据。Analysis Services能让你建立两种用户层次:自然和非自然层次。

<!--[if !supportLists]-->·           <!--[endif]-->自然层次中,级别间的成员是直接或非直接的由底到高层的关系。大多数情况下,自然层次遵从多对一的关系。图6中产品维度的例子中,可以创建产品分组层次,此层次由低向上包含产品、产品子类别和产品类别。层次中所有属性都直接关联到上层属性,而不是直接关联到Product Key。另外,如果从层次中移除了产品子类别属性,产品和产品类别仍可构成自然层次。因为产品非直接关联到产品类别,两者是层叠属性关系。

<!--[if !supportLists]-->·           <!--[endif]-->在非自然层次中,至少包含两个没有属性关系的连续层次。通常这种层次只是用来创建下钻路径以便用户能在客户端使用。

从性能上看,自然层次和非自然层次差别很大。自然层次中,层次树物化的存储在磁盘中,而且自然层次中的所有属性自动用于聚合备选。自然层次的这一特点非常重要,所以如果有可能,尽量创建自然层次。关于聚合备选的信息,参考“定义聚合备选”章节。

非自然层次不会物化存储在磁盘上,而且属性不会自动用于聚合备选。仅仅提供一种易于使用的下钻路径。你也可以使用各种MDX导航函数将所需的属性集合到层次中,所以另一种代替非自然层次的方法是在查询时,在MDX语句中使用cross-join。cross-join和非自然属性性能上差不多。非自然属性仅仅是提供了重用性和集中管理的好处。

若想要使用自然层次,你必须正确设置了层次中属性层叠关系。因为创建属性关系和创建层次是独立的步骤,所以你可能会忘记为层次中的属性定义属性关系。这样的话,就算你需要的是自然层次,但Analysis Services 会自动将此层次标示为非自然层次。

为了验证你创建的层次的类型,如果层次中缺少属性关系,Business Intelligence Development Studio会显式警告图标 <!--[if !vml]--><!--[endif]-->,目的是帮助你发现非自然层次。如果你的目的就是要创建非自然层次,那么你可以忽略此警告图标。

而且,需要注意属性层次、自然层次和非自然层次在客户端显示的方式。例如,你有一系列地理属性,这些属性已包含在用户层次中。你就应该考虑隐***立的属性层次,以免用户同时看到属性层次和由属性组成的用户层次。要隐藏属性层次,修改AttributeHierarchyVisible参数。

在Microsoft Analysis Services中创建时间维度 与日期维度(带有年,月,日)不同,SSAS(Microsoft SQL Server Analysis Services)不会自动创建时间维度(带有小时,分钟和秒)。 本文介绍了如何在Microsoft SQL Server Analysis Services中创建和使用时间维度。 立即下载

相关推荐

PWM与光耦的完美联姻:低成本4-20mA转换方案揭秘

本文揭秘了PWM与光耦结合的低成本4-20mA转换方案,适用于工业自动化领域。通过PWM信号控制输出电流,光耦实现电气隔离,该方案成本低廉、电路简单且隔离可靠。文章详细介绍了两种经典电路实现方案,包括四光耦线性模式方案和PWM控制LM317方案,并提供了实战技巧与优化策略,帮助中小企业和电子DIY爱好者构建经济高效的4-20mA转换系统。

weixin_29229055的博客 536

SQL Server 2005 Analysis Services性能指南

  介绍   联机分析处理系统都需要快速的查询响应和及时的数据更新,以提供高效的数据分析。传统的OLAP系统使用层次组织和汇总数据,层次为有效地分析提供合理的数据结构。但严格的层次结构又限制了用户自由的组织和分析数据。 ...

cizhen4018的博客 171

2026年(新服务器默认密码)最新各大厂商默认凭证大全

本文整理了国内外主流服务器厂商的默认管理接口凭证信息,包括Dell、HPE、浪潮、华为等品牌的管理接口类型、默认用户名/密码和IP地址。特别强调国产服务器在信创环境下的安全风险,指出国内厂商部分型号仍保留固定默认密码(如浪潮admin/admin),而国际厂商多采用随机密码标签。文章提供了新机初始化安全流程建议:查找机箱标签、立即修改默认密码、配置网络隔离、更新固件等。最后提醒运维人员,服务器安全应从首次上电开始重视,管理接口暴露是重大风险点,必须严格执行安全规范。

你好,旧时光! 1696

analysis service 2005 使用中的一点记录()

 问题记录 1.       Analysis Serive远程访问: 目前只支持windows认证,如访问的程序与analysis service在同一台机器上,则不存在访问的问题,如分布在不同机器上,而必须保证两台机器都加入同一域,并且访问程序必须在机器为域登陆状态下才可以连接上. 几种情况: 域用户登陆系统 , .Net开发环境下运行web程序,可以访问到 远程analy

闲敲棋子落灯花 889

uniCloud云存储进阶:七牛云扩展存储从开通、绑定域名到批量上传的完整实战

本文详细介绍了uniCloud云存储进阶实践,重点讲解如何通过七牛云扩展存储实现从开通、绑定域名到批量上传的完整流程。内容涵盖成本优势分析、域名备案方案、SSL证书配置、多文件并发上传控制等实战技巧,并提供可直接复用的代码示例,帮助开发者高效构建内容社区类应用。

weixin_26985923的博客 468

labview的TDMS文件读写

本文先介绍TDMS概念和文件结构,然后介绍VI如何使用,最后分析一个labview的自带范例

观则明的博客 1万+

[翻译]SQL Server 2005 Analysis Services性能指南 Part 2 - 优化维度设计

优化维度设计 经过良好调校的维度设计方案是高性能Analysis Services最关键的因素之一。有两种主要的优化维度设计方案: ·           定义属性关系 ·           有效地使用层次 定义属性关系 通常情况下,Analysis Services维度数据源是关系型数据仓库中的维度表,维度表包含主键、属性和关联到其他表的外键。 表 1   简单的产品维度表包含...

weixin_34404393的博客 142

ENVI5.6 自动化流程:GF系列卫星影像批处理与质量优化

本文详细介绍了如何利用ENVI5.6构建针对GF-2、GF-6、GF-7系列卫星影像的自动化批处理流水线。通过配置Batch Processing工具,实现从正射校正到图像融合的全流程批量处理,并分享参数设置、质量监控与故障排查的实战经验,旨在显著提升海量遥感影像的处理效率与成果质量。

efc1234567的博客 603

SQL Server 2005 Analysis Services性能指南 Part 1 - 理解查询构架

翻译:Cheney Shue发表于:博客园版权文档中的信息仅代表发表之日止微软公司的观点。因为微软公司需要响应不断变化的市场环境,所以微软公司不能保证发表之日后,文档中信息的正确性。此白皮书仅用于报告目的。微软不为此文档作任何担保。用户有责任遵从版权法。如果没有微软公司的授权,用户不得超出权限以任何形式(包括电子或机械复制、拍照、记录、及其他形式)复制此文档。 此文档可能包含了

jackfor001的专栏 888

UE5游戏逆向实战:用FModel提取.pak文件中的3D模型(附Dumper-7避坑指南)

本文详细介绍了在UE5游戏逆向工程中使用FModel提取.pak文件中3D模型的实战技巧,包括Dumper-7工具的深度配置与避坑指南。针对UE5特有的unversioned属性系统,提供了从源码编译到智能注入的全链路解决方案,帮助开发者高效获取游戏资产并优化处理流程。

weixin_30374009的博客 495

TPAMI 2024 | 重新思考多焦点图像融合中客观评价指标的有效性:一种基于统计的方法

作为一种延长光学镜头景深(DOF)的有效技术,多焦点图像融合最近成为图像处理社区的一个活跃话题。然而,该领域仍然存在一个未解决的主要问题,即缺乏选择客观评价指标的通用标准。因此,不同研究中使用的指标往往差异显著,导致难以实现公正的评估。为了解决这个问题,本文提出了一种基于统计的方法来验证多焦点图像融合中客观指标的有效性。核心思想是采用统计相关性度量来评估某个融合指标与一些流行的全参考图像质量评估模型之间的性能一致性。

小白学视觉 329

[翻译]SQL Server 2005 Analysis Services性能指南 Part 1 - 理解查询构架

Author:        Elizabeth Vitt                         Subject Matter Experts: T.K. Anand Sasha (Alexander) Berger Marius Dumitru Eric Jacobsen Edward Melomed Akshai Mirchandani Mosha Pas...

weixin_33912246的博客 159

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来

PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。

2418

SQL Server 2005 Analysis Services性能指南 Part 3 - 聚合最大化

聚合最大化 所谓的聚合,就是预先计算好汇总数据,并将汇总数据物理的存储,这样在查询时就可大大提高性能。更确切地说,一个聚合单元就是与维度属性关联的汇总的度量值。(※注,原文使用的是Aggregation,在汉语中为了跟动词区别开来,翻译时使用了聚合单元,不要跟Cube中的单元Cell搞混) 聚合设计是在所有的聚合单元中挑选出一部分进行物化的过程。虽然物化的聚合单元越多(※注,下文中如无特别说明

yulili657600441的专栏 1146

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

[翻译]SQL Server 2005 Analysis Services性能指南 Part 3 - 聚合最大化

聚合最大化 所谓的聚合,就是预先计算好汇总数据,并将汇总数据物理的存储,这样在查询时就可大大提高性能。更确切地说,一个聚合单元就是与维度属性关联的汇总的度量值。(※注,原文使用的是Aggregation,在汉语中为了跟动词区别开来,翻译时使用了聚合单元,不要跟Cube中的单元Cell搞混) 聚合设计是在所有的聚合单元中挑选出一部分进行物化的过程。虽然物化的聚合单元越多(※注,下文中如无特别说...

weixin_33824363的博客 139

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

[转翻译]SQL Server 2005 Analysis Services性能指南 Part 3 - 聚合最大化

聚合最大化 所谓的聚合,就是预先计算好汇总数据,并将汇总数据物理的存储,这样在查询时就可大大提高性能。更确切地说,一个聚合单元就是与维度属性关联的汇总的度量值。(※注,原文使用的是Aggregation,在汉语中为了跟动词区别开来,翻译时使用了聚合单元,不要跟Cube中的单元Cell搞混) 聚合设计是在所有的聚合单元中挑选出一部分进行物化的过程。虽然物化的聚合单元越多(※注,下文中如无特别说...

weixin_34302798的博客 123

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MariaDB远程运维教程:Debian安装、Prometheus监控与公网连接

本文分享在Debian 12上部署MariaDB并配置Prometheus监控的实践:通过添加官方APT源安装MariaDB,安全初始化后,使用mysqld_exporter采集性能指标,实现对数据库连接、资源与运行状态的实时监控。重点解决远程故障排查时的访问延迟问题,提前建立稳定监控与远程接入能力,提升运维效率。

2401_84813926的博客 1万+

【大数据处理与分析】数据仓库Hive:09 Hive 编程实践

本文介绍Hive的数据类型(基本类型与ARRAY、MAP、STRUCT集合类型)和基本操作,并通过WordCount实例说明Hive编程比MapReduce更简洁易用。

Morse_Chen的博客 228

【从零开始学习数据仓库 | 第三篇】: Flume——数据采集基石

Flume 是什么?简单来说,Flume 就是一个分布式的、高可靠的、高可用的海量日志采集、聚合和传输系统。你可以把它想象成一个不知疲倦的“数据搬运工”。核心优点:高可靠:基于事务机制,保证数据在传输过程中不丢失(结合 File Channel 可实现断电续传)。高可用:支持多级拓扑结构,以及 Failover(故障转移)和 Load Balance(负载均衡)机制。易扩展:组件化设计,支持自定义 Source、Channel、Sink 和 Interceptor。配置即用。

icedating的博客 456

私有化云手机部署平台|六边云支持内网 ADB、自定义镜像、弹性扩缩容

自动化测试最头疼的就是环境漂移:A 机装了证书、框架、业务包,B 机是纯净原版,测试结果不可复现。自定义镜像能力就是用来解决这个问题。启动一台基础云手机实例;配置系统参数、安装证书、推送基础 APK、配置代理、导入脚本;在控制台执行镜像快照,保存到内部镜像仓库;新建实例时直接选择该镜像,批量拉起一批环境完全一致的安卓节点。维护多套镜像基线:纯净测试镜像、带自动化框架镜像、业务预安装镜像;镜像版本管理,记录变更日志,可以回滚到上一个稳定版本;

a598652的博客 332
上一篇: SQL Server 2005 Analysis Services性能指南 Part 1 - 理解查询构架
下一篇: SQL Server 2005 Analysis Services性能指南 Part 4 - 使用分区提升查询性能
jackfor001
博客等级 码龄22年 41粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值