《MDX解决方案 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)(George Sporfford)斯波福特,(美)(Sivakumwr harinath)海瑞内撤;李仁见,董霖译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302183815
  • 页数:560 页
图书介绍:·Microsoft与Hyperion的可能范围·组合不同MDX函数来解决各种问题的技术与技巧·SQL Server 2005功能,以及与先前版本相比它与MDX之间关系的变化·MDX标准语法·MDX运算符、函数以及相关连接的详细参考附录。

第1章 MDX入门 1

1.1什么是MDX 1

1.2查询基础 2

1.3轴框架:名称与编号 4

1.4大小写敏感与布局 5

1.5构造简单的MDX 6

1.5.1逗号(,)与冒号(:) 6

1.5.2 .Members 7

1.5.3使用.Children获得一个成员的子成员 8

1.5.4使用Descendants()获取一个成员的后代成员 9

1.6去除查询结果中的空切片 11

1.7 MDX中的注释 13

1.8 MDX数据模型:元组和集 14

1.8.1元组 14

1.8.2集 16

1.8.3查询 17

1.9更多基本词汇 18

1.9.1 CrossJoin() 18

1.9.2 Filter() 20

1.9.3 Order() 22

1.10查询成员属性 24

1.11查询单元属性 26

1.12客户端结果数据布局 27

1.13小结 28

第2章 计算成员和命名集简介 29

2.1采用计算成员形式的维度计算 29

2.2计算成员作用域 30

2.2.1计算成员和查询的WITH部分 31

2.2.2公式的优先级(求解顺序) 32

2.3基本的计算函数 37

2.3.1算术操作符 37

2.3.2概要统计操作符 37

2.3.3 Avg()函数 38

2.3.4 Count(),.Count 38

2.3.5 DistinctCount()函数(Microsoft扩展) 39

2.3.6 Sum()函数 39

2.3.7 Max()函数 40

2.3.8 Median()函数 40

2.3.9 Min()函数 40

2.3.10 NonEmptyCount()函数(Hyperion扩展) 41

2.3.11 Stdev()和Stddev()函数 41

2.3.12 StdevP()和StddevP()函数(Microsoft扩展) 41

2.3.13 Var()和Variance()函数 42

2.3.14 VarP()和VarianceP()函数(Microsoft扩展) 42

2.4补充的函数 42

2.5命名集简介 44

2.6小结 47

第3章 MDX中的通用计算和选择 49

3.1 MDX中的元数据引用函数 51

3.2多种比率、均值、百分比和分配 52

3.3贡献率(同一层次结构中级别之间的简单比率) 52

3.3.1对总额的贡献率 53

3.3.2使用.CurrentMember函数 53

3.3.3使用.Parent函数 53

3.3.4使用.CurrentMember函数和.Parent函数获得父对象份额 53

3.3.5使用Ancestor函数 54

3.3.6使用.CurrentMember函数和Ancestor函数计算祖先对象的份额 54

3.3.7 0作除数的处理 56

3.4基本分配 56

3.4.1基于另一种比率的数量比例分配 56

3.4.2沿层次结构的非加权分配 57

3.5均值 57

3.5.1简单均值 57

3.5.2加权均值 58

3.6基于时间的引用和时间序列的计算 60

3.6.1各时期(Period-to-Period)的引用和计算 60

3.6.2去年同期的引用和计算 61

3.7本年至今的聚合 61

3.8移动均值和52周的最高价/最低价 63

3.9使用LastPeriods()选择基于目标成员的时间范围 65

3.10沿不同维度的不同聚合(使用MDX的半加性度量) 65

3.11混合聚合:非时间总和,沿时间的均值、最小值与最大值 66

3.12混合聚合:非时间总和,沿时间维度的期初/期末结余 66

3.13对于缓慢变化值的余额转结和最后输入的结余报告 67

3.14查找数据全部输入的最后时间成员 71

3.15在MDX表达式中使用成员属性(计算和分类) 71

3.16处理边界条件(超出范围的成员,0或其他作除数) 74

3.16.1处理不足的范围尺寸 74

3.16.2处理不足的层次结构深度 75

3.16.3处理错误的级别引用 75

3.16.4 0作除数的处理 76

3.17小结 77

第4章 MDX查询上下文与执行 79

4.1查询中的单元上下文和解析次序 80

4.1.1查询的执行阶段 80

4.1.2单元求值(对任何单元) 87

4.1.3解析NON EMPTY轴 89

4.1.4解析AS2005中的HAVING子句 90

4.1.5循环上下文和.CurrentMember函数 92

4.1.6 AS2005中成员的相互联系:强层次结构性、自存在性和属性关系 93

4.2在AS2005中修改多维数据集上下文 96

4.2.1 CREATE SUBCUBE语句 97

4.2.2在AS2005中的FROM子句中使用SELECT 103

4.2.3无限递归:在计算上下文可能遇到的“陷阱” 106

4.2.4特定产品解析次序的使用 106

4.3非数据:无效数字、NULL(空)和无效成员 109

4.3.1无效计算:0作除数和数字错误 109

4.3.2空单元的语义 110

4.3.3无效位置 112

4.4计算中的单元属性优先级 114

4.4.1显示格式化的优先级 115

4.4.2计算单元中的数据类型 116

4.5操作中多维数据集的上下文 117

4.6 KPI中的多维数据集上下文 117

4.7 AS2005中全局、会话和指定查询计算之间的定义的可见性 117

4.8小结 119

第5章 命名集与集的别名 121

5.1命名集:作用域和上下文 121

5.2命名集的常规使用 122

5.3集的别名 124

5.3.1集的别名的示例 124

5.3.2深入了解集的别名 126

5.3.3当集的别名是必需的情况 128

5.4小结 130

第6章 MDX中的排序和分类 131

6.1函数 131

6.2典型的Top-N选择 132

6.2.1加入分类数(使用Rank()函数) 134

6.2.2在集中取得Top-N的后代成员及其他关联成员 138

6.3获得最少/最多元组以达到临界值 140

6.4获取元组Top N百分比 142

6.5在维度次序中放置成员/元组(首先/最后放置祖先成员) 143

6.6集的反向排序 144

6.7小结 145

第7章 MDX高级应用 147

7.1将父对象/祖先成员排在子对象之后(而不是之前) 148

7.2返回成员下面的子树,并连同成员一起返回其祖先成员 148

7.3使用Generate()将元组操作转化为集操作 149

7.4日期计算/日期算术 150

7.5对行/列/轴上选择的成员定义比率(而非对指定维度定义比率) 153

7.6基于报表的父对象总额,报表总额的贡献率 156

7.6.1方法1:唯一的标准MDX方法 156

7.6.2方法2:在Analysis Services中考虑使用VisualTotals() 161

7.6.3方法3:使用AS2005子多维数据集 163

7.7层次结构中越过级别的层次结构排序 164

7.8基于多重规则的单个集排序 165

7.9多重层排序或多重维度排序 166

7.9.1对每个维度采取相同排序规则的嵌套排序 166

7.9.2依据不同标准的嵌套维度排序 167

7.10 Pareto分析与累积和 169

7.11返回top-selling(最畅销)产品(或其他重要的名称)作为度量 173

7.12已选成员集的最新事件 174

7.13积聚大量数据所需的时间集(建立沿时间向前或向后合计的集) 177

7.14乘法聚合(乘积代替加和) 180

7.15 通过集中的并列分类包含所有元组 184

7.16公用维度时间分析 186

7.17样本分析 188

7.18小结 195

第8章 使用Microsoft Analysis Services的属性数据模型 197

8.1统一维度模型 197

8.2维度 199

8.2.1属性、层次结构与联系 201

8.2.2维度查询 205

8.2.3成员属性 207

8.2.4父-子层次结构 209

8.2.5 Time维度 210

8.3多维数据集 211

8.3.1维度关系 214

8.3.2角色扮演维度 217

8.3.3透视图 217

8.3.4钻取 218

8.4 UDM中的计算模型 218

8.5在UDM上定义安全性 219

8.6小结 224

第9章 Hyperion Essbase中属性维度和成员属性的用法 225

9.1 UDA与属性 225

9.2在查询轴检索UDA和属性值 226

9.3在计算中使用UDA和属性 227

9.4基于UDA和属性值选择基维度成员 227

9.4.1使用Attribute函数选择基于共用属性值的成员 228

9.4.2使用WithAttr函数选择基于属性值的成员 229

9.4.3使用UDA函数选择共用UDA值的成员 230

9.5用IN连接基成员和属性层次结构 230

9.5.1连接基成员及其实际属性成员 231

9.5.2连接属性成员及其属性值 231

9.6小结 232

第10章 通过外部函数扩展MDX 233

10.1配合MDX使用存储过程 234

10.2 ADOMD服务器对象 237

10.2.1表达式 239

10.2.2元组生成器 239

10.2.3集生成器 240

10.2.4 MDX 240

10.2.5上下文 241

10.2.6 服务器元数据对象 242

10.3 AMO.NET托管存储过程 243

10.4静态函数与非静态函数的性能评估 244

10.4.1调试.NET存储过程 245

10.4.2 NULL、ERRORQ与异常等方面的附加程序设计 246

10.4.3使用存储过程以获得动态安全性 248

10.4.4 COM DLL存储过程 251

10.5参数与返回类型的深入讨论 251

10.6用于COM存储过程的MDX函数 256

10.6.1 SetToStr()与TupleToStr() 256

10.6.2 Members()、StrToSet()与StrToTuple() 256

10.7外部函数示例:TimeSpanUntilSum()函数 258

10.8加载和使用存储过程 260

10.9存储过程名称解析 261

10.10在MDX中调用存储过程 262

10.11对存储过程的其他考虑因素 263

10.12小结 263

第11章 通过MDX改变多维数据集和维度环境 265

11.1在会话中改变维度的默认成员 266

11.2维度回写操作 266

11.2.1创建新成员 267

11.2.2在维度中移动成员 267

11.2.3删除成员 268

11.2.4更新成员定义 268

11.3刷新单元数据与维度成员 269

11.4把数据写回多维数据集 269

11.4.1标准单元写回 270

11.4.2提交与回滚 270

11.4.3使用UPDATE CUBE 270

11.5小结 273

第12章 Microsoft Analysis Services中计算的多种方法 275

12.1计算机制概述 276

12.1.1度量的固有聚合 276

12.1.2使用一元运算符汇总 277

12.1.3自定义成员公式 279

12.1.4计算成员 280

12.1.5单元计算 283

12.1.6条件格式化 287

12.2各类计算如何交互 288

12.2.1无单元计算的交互 288

12.2.2单元计算传递 289

12.2.3使用求解顺序来决定传递中的公式 293

12.2.4计算成员本身不是聚合的 294

12.2.5自定义汇总、自定义成员与计算单元结果的固有聚合 295

12.3使用不同计算技术时应注意的问题 295

12.4小结 296

第13章 Analysis Services 2005中的MDX脚本 297

13.1 MDX脚本基础 297

13.1.1什么是MDX脚本 297

13.1.2计算语句 299

13.1.3子多维数据集 300

13.1.4赋值与聚合 303

13.1.5赋值与计算成员 307

13.1.6赋值与命名集 308

13.2 MDX脚本以及更复杂的多维数据集 309

13.2.1多属性层次结构 309

13.2.2用户层次结构 315

13.2.3父子属性层次结构 316

13.2.4多对多维度 317

13.2.5事实维度与引用维度 319

13.2.6半累加性度量与非累加性度量 319

13.2.7一元运算符与自定义成员公式 321

13.3高级MDX脚本 323

13.3.1定义带有SCOPE的子多维数据集 323

13.3.2 MDX表达式赋值 326

13.3.3给子多维数据集赋予一个错误的值 329

13.3.4将单元属性值赋给子多维数据集 330

13.3.5条件赋值 331

13.4现实世界中的MDX脚本 332

13.4.1 Time Intelligence向导 332

13.4.2回顾基本分配 335

13.5小结 336

第14章 增强客户端的交互 337

14.1使用钻取 338

14.1.1 Microsoft Analysis Services2005中针对钻取的改进与改变 338

14.1.2钻取MDX I 339

14.1.3与钻取相关的重要问题 340

14.1.4钻取MDX II 342

14.1.5钻取安全性 343

14.2使用操作 343

14.2.1使用操作能够做什么? 344

14.2.2操作的目标 347

14.2.3定义操作 348

14.2.4与操作相关的编程注意事项 351

14.2.5删除操作 354

14.3使用KPI 355

14.3.1创建KPI 355

14.3.2 MDX KPI函数 358

14.3.3使用KPI 359

14.4小结 361

第15章 客户端编程基础 363

15.1 ADOMD.NET基础 364

15.1.1先决条件 365

15.1.2建立连接 365

15.2处理元数据 366

15.2.1获取构架行集 366

15.2.2使用构架行集时的互操作性问题 367

15.2.3使用元数据对象模型 367

15.2.4使用元数据对象模型时的互操作性问题 368

15.2.5维度特性 368

15.2.6处理ADOMD.NET元数据缓存 369

15.3执行查询 370

15.3.1执行命令 370

15.3.2参数化命令 371

15.3.3使用CellSet对象 372

15.3.4关于从查询中获取信息的更多细节 376

15.3.5关键性能指标 381

15.4执行操作 382

15.5处理“平展的”MDX结果 383

15.6小结 387

第16章 优化MDX 389

16.1从Analysis Services 2000到Analysis Services 2005的体系结构改动 390

16.2优化集操作 391

16.2.1交叉联接集合之上求和 391

16.2.2交叉联接集之上进行筛选 393

16.2.3优化TopCount()和BottomCount() 394

16.2.4 Analysis Services 2005中的NonEmpty函数 395

16.2.5优化排序:Order() 396

16.2.6针对较大数据集查询的UnOrder函数 397

16.3优化求和 397

16.4将计算设计在数据库中(将成员属性放入度量中以及新的MDX函数Member Value中) 398

16.5 MDX脚本优化 400

16.5.1计算的细节 400

16.5.2避免叶级别的计算 401

16.5.3在多维数据集设计中避免叶级别计算 402

16.5.4度量值表达式优化叶级别计算 403

16.5.5叶级别计算的MDX脚本优化 404

16.5.6 Analysis Services 2005:使用属性层次结构而不是成员属性 406

16.5.7 Analysis Services 2005:使用Scope来替代IIF 407

16.6在MDX脚本中避免使用慢速函数 409

16.6.1为了更好的性能而改变计算逻辑:流计算 409

16.6.2使用服务器本地特性而不是脚本来进行与聚合相关的计算 411

16.7小结 412

第17章 使用本地多维数据集 413

17.1选择使用何种语法 414

17.2使用CREATE CUBE语句 414

17.2.1过程概述 414

17.2.2 CREATE CUBE语句剖析 415

17.2.3定义维度 416

17.2.4级别 417

17.2.5定义度量 422

17.2.6添加命令 423

17.2.7 ROLAP与MOLAP 424

17.2.8 INSERT INTO语句剖析 424

17.2.9多维数据集目标 425

17.2.10 INSERT INTO中的OPTIONS子句 427

17.2.11 SELEC子句 428

17.2.12构造提示 430

17.2.13从本地多维数据集到服务器多维数据集 431

17.2.14汇总与自定义成员公式 431

17.3使用CREATE GLOBALCUBE语句 433

17.3.1过程概述 433

17.3.2 CREATE GLOBAL CUBE语句剖析 433

17.3.3定义度量 434

17.3.4定义维度 434

17.3.5定义级别 435

17.3.6定义切片成员 435

17.3.7需要注意的事项 436

17.4使用分析服务脚本语言 436

17.4.1过程概述 436

17.4.2 ASSL语句剖析 437

17.4.3安全性 437

17.5小结 438

附录A MDX函数与运算符参考 439

附录B 影响MDX的连接参数 523

附录C 单元与成员的内部属性 541

附录D 格式化字符串编码 551

附录E 学习资源 559