好书推荐 好书速递 排行榜 读书文摘

DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分

DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分
作者:【意】马尔·科鲁索 / 【意】阿尔贝托·费拉里
译者:高飞
出版社:电子工业出版社
出版年:2021-03
ISBN:9787121405051
行业:计算机
浏览数:57

内容简介

《DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分析(第2版)》是微软DAX语言在商业智能、数据建模和数据分析方面的指南。通过本书,你将了解如何使用DAX语言进行商业智能分析、数据建模和数据分析;你将掌握从基础表函数到高级代码,以及模型优化的所有内容;你将确切了解在运行DAX表达式时,引擎内部所执行的操作,并利用这些知识编写可以高速运行且健壮的代码。本书第2版的重点内容包括基于免费的Power BI Desktop来构建和运行示例,帮助你在Power Bl、SQL Server Analysis Services或Excel中充分利用强大的变量(VAR)语法。你想要使用DAX的所有强大功能吗?那么这本未进行任何删减、深入浅出的著作正是你所需要的。

《DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分析(第2版)》适合Excel高级用户、BI分析人员、使用DAX和微软分析工具的专业人士。

......(更多)

作者简介

Marco Russo和Alberto Ferrari是SQLBI.COM的创始人,他们定期在网站上发表有关DAX和其他微软数据分析和商业智能工具的文章。他们还定期在主要的国际会议(如TechEd、PASS峰会、SQLRally和SQLBits)上发表演讲,。两位作者在商业智能和微软商业智能技术方面提供咨询和指导。

译者简介

高飞

数据分析师,BI总监

2015年接触Power Pivot,被DAX语言的强大和灵活所吸引。

2016年3月创建了面向Power BI的微信公众号“Power BI极客”,并更新至今。

2019年上线同名网站PowerBIGeek.com,致力于打造一个综合性的Power BI中文学习网站。

现从事技术分享,企业BI项目实施和培训工作。

微软Power BI最有价值专家(MVP),Power BI可视化大赛评委,ExcelHome论坛版主。

......(更多)

目录

第1章 DAX是什么 1

理解数据模型 1

理解关系的方向 3

给Excel用户学习DAX的建议 5

单元格和智能表格 5

Excel函数和DAX:两种函数式语言 7

使用迭代器 7

DAX相关理论 8

给SQL开发人员学习DAX的建议 8

处理关系 9

DAX是函数式语言 9

DAX是编程语言和查询语言 10

DAX和SQL中的子查询与条件语句 10

给MDX开发者学习DAX的建议 11

多维模型和表格模型 12

DAX是编程语言和查询语言 12

层级结构 12

叶级计算 14

给Power BI用户学习DAX的建议 14

第2章 DAX介绍 15

理解DAX计算 15

DAX的数据类型 17

DAX运算符 20

表构造器 21

条件语句 22

理解计算列和度量值 23

计算列 23

度量值 24

正确选择计算列和度量值 27

变量介绍 28

处理DAX表达式中的错误 29

转换错误 29

算术运算错误 30

空值或缺失值 30

截获错误 32

生成错误 35

格式化DAX代码 36

聚合函数和迭代函数介绍 39

认识常用的DAX函数 42

聚合函数 42

逻辑函数 43

信息函数 45

数学函数 45

三角函数 46

文本函数 46

转换函数 48

日期和时间函数 48

关系函数 49

结论 51

第3章 使用基础表函数 52

表函数介绍 52

EVALUATE语法介绍 54

理解FILTER函数 56

ALL和ALLEXCEPT函数介绍 58

理解VALUES、DISTINCT函数和空行 63

将表用作标量值 68

ALLSELECTED函数介绍 70

结论 72

第4章 理解计值上下文 73

计值上下文介绍 74

理解筛选上下文 74

理解行上下文 79

测试你对计值上下文的理解 81

在计算列中使用SUM函数 81

在度量值中使用列 82

使用迭代函数创建行上下文 83

嵌套多个表的行上下文 84

同一个表上的多层嵌套行上下文 85

使用EARLIER函数 90

理解FILTER、ALL函数和上下文交互 91

使用多个表 94

行上下文和关系 95

筛选上下文和关系 98

在筛选上下文中使用DISTINCT和SUMMARIZE函数 101

结论 105

第5章 理解CALCULATE和CALCULATETABLE函数 107

CALCULATE和CALCULATETABLE函数介绍 107

创建筛选上下文 108

CALCULATE函数介绍 111

使用CALCULATE函数计算百分比 116

KEEPFILTERS函数介绍 127

筛选单列 130

筛选复杂条件 131

CALCULATE计值顺序 135

理解上下文转换 139

行上下文和筛选上下文回顾 139

上下文转换介绍 142

计算列中的上下文转换 145

度量值中的上下文转换 148

理解循环依赖 151

CALCULATE调节器 155

理解USERELATIONSHIP函数 155

理解CROSSFILTER函数 158

理解KEEPFILTERS函数 159

理解CALCULATE中的ALL函数 160

无参数的ALL和ALLSELECTED函数介绍 162

CALCULATE规则总结 163

第6章 变量 165

VAR语法介绍 165

变量是常数 167

理解变量的范围 168

使用表作为变量 171

理解惰性计算 173

使用变量的常见模式 174

结论 176

第7章 迭代函数和CALCULATE函数的使用 177

迭代函数的使用 177

理解迭代的基数 178

在迭代函数中使用上下文转换 180

CONCATENATEX函数的使用 184

返回表的迭代函数 186

使用迭代函数解决常见问题 189

计算平均和移动平均 189

RANKX函数的使用 193

改变计算的颗粒度 200

结论 204

第8章 时间智能计算 205

时间智能介绍 205

Power BI中的“自动日期/时间” 206

Excel Power Pivot中的自动日期列 207

Excel Power Pivot中的日期表模板 208

创建日期表 208

CALENDAR和CALENDARAUTO函数的使用 209

多个日期表的使用 212

处理连接到日期表的多个关系 212

处理多个日期表 214

理解基础时间智能计算 215

标记为日期表 219

基础时间智能函数介绍 221

计算年初至今、季度初至今和月初至今 222

计算平移后的周期 224

嵌套使用时间智能函数 227

计算周期之间的差异 229

计算移动年度总计 230

为嵌套的时间智能函数选择正确的调用顺序 232

理解半累加计算 234

使用LASTDATE和LASTNONBLANK函数 236

使用期初和期末余额 241

理解高级时间智能计算 245

理解累计至今区间 245

理解DATEADD函数 249

理解FIRSTDATE、LASTDATE、FIRSTNONBLANK和

LASTNONBLANK函数 255

利用时间智能函数进行钻取 258

使用自定义日期表 258

基于周的时间智能 259

自定义年初至今、季度初至今和月初至今 262

结论 264

第9章 计算组 265

计算组介绍 265

创建计算组 268

理解计算组 274

理解计算项的应用 277

理解计算组优先级 285

在计算项中包含或排除度量值 289

理解横向递归 292

使用最佳实践 296

结论 297

第10章 使用筛选上下文 298

使用HASONEVALUE和SELECTEDVALUE函数 299

ISFILTERED和ISCROSSFILTERED函数介绍 303

理解VALUES和FILTERS函数的区别 306

理解ALLEXCEPT和ALL/VALUES函数的区别 308

使用ALL函数避免上下文转换 312

使用ISEMPTY函数 314

数据沿袭和TREATAS函数介绍 316

使用固化筛选器 320

结论 326

第11章 处理层级结构 328

计算层级占比 328

处理父/子层级结构 333

结论 344

第12章 使用表函数 345

使用CALCULATETABLE函数 345

操作表的函数 347

使用ADDCOLUMNS函数 348

使用SUMMARIZE函数 351

使用CROSSJOIN函数 354

使用UNION函数 356

使用INTERSECT函数 360

使用EXCEPT函数 361

使用表作为筛选器 363

实现或(OR)条件 364

将销售额的计算范围缩小至首年客户 367

计算新客户 368

使用DETAILROWS函数复用表表达式 370

创建计算表 372

使用SELECTCOLUMNS函数 372

使用ROW函数创建静态表 373

使用DATATABLE函数创建静态表 374

使用GENERATESERIES函数 375

结论 376

第13章 编写查询 377

DAX Studio介绍 377

理解EVALUATE 378

EVALUATE语法介绍 378

在DEFINE中使用VAR 379

在DEFINE中使用MEASURE 381

实现DAX查询的常用模式 382

使用ROW函数测试度量值 382

使用SUMMARIZE函数 383

使用SUMMARIZECOLUMNS函数 385

使用TOPN函数 391

使用GENERATE和GENERATEALL函数 396

使用ISONORAFTER函数 399

使用ADDMISSINGITEMS函数 401

使用TOPNSKIP函数 402

使用GROUPBY函数 402

使用NATURALINNERJOIN和NATURALLEFTOUTERJOIN函数 405

使用SUBSTITUTEWITHINDEX函数 407

使用SAMPLE函数 409

理解DAX查询中的自动匹配行为 410

结论 416

第14章 高级DAX原理 418

扩展表介绍 418

理解RELATED函数 422

在计算列中使用RELATED函数 424

理解表筛选器和列筛选器的区别 425

在度量值中使用表筛选器 428

理解活动关系 431

表的扩展行为和筛选行为的区别 433

扩展表中的上下文转换 435

理解ALLSELECTED函数和影子筛选上下文 436

影子筛选上下文介绍 437

ALLSELECTED函数返回迭代的行 441

无参数的ALLSELECTED函数 443

ALL系列函数 443

ALL函数 445

ALLEXCEPT函数 446

ALLNOBLANKROW函数 446

ALLSELECTED函数 446

ALLCROSSFILTERED函数 446

理解数据沿袭 446

结论 449

第15章 高级关系 451

使用计算列创建物理关系 451

计算基于多列的关系 451

创建基于范围的关系 453

使用计算列创建关系中的循环依赖问题 456

使用虚拟关系 459

在DAX中转移筛选器 460

使用TREATAS函数转移筛选器 462

使用INTERSECT函数转移筛选器 463

使用FILTER函数转移筛选器 464

使用虚拟关系实现动态分组 465

理解DAX中的物理关系 468

使用双向交叉筛选器 470

理解一对多关系 472

理解一对一关系 473

理解多对多关系 473

通过桥接表实现多对多关系 473

通过公共维度实现多对多关系 479

使用MMR弱关系实现多对多关系 483

选择正确的关系类型 485

管理数据颗粒度 486

管理关系中的歧义 490

理解活动关系中的歧义 492

解决非活动关系中的歧义 494

结论 496

第16章 DAX中的高级计算 497

计算两个日期之间的工作日数量 497

同时展示预算数据和销售数据 505

计算同店销售额 508

对事件进行排序 514

根据最新销售日期计算上一年的销售额 516

结论 521

第17章 DAX引擎 523

了解DAX引擎的架构 523

公式引擎介绍 524

存储引擎介绍 525

VertiPaq(in-memory)存储引擎介绍 526

DirectQuery存储引擎介绍 527

理解数据刷新 527

理解VertiPaq存储引擎 528

列式数据库介绍 528

理解VertiPaq压缩 531

理解值编码 531

理解哈希编码 532

理解行程长度编码(RLE) 533

理解再编码 536

确定最佳排序顺序 536

理解层级和关系 538

理解分段和分区 539

使用动态管理视图 540

理解关系在VertiPaq中的运用 542

物化介绍 545

聚合表介绍 547

为VertiPaq配置合适的硬件 549

自主选择硬件 550

设置硬件优先级 550

CPU型号 550

内存速度 551

内核数量 552

内存大小 552

硬盘I/O和分页 553

硬件选择的最佳实践 553

结论 553

第18章 优化VertiPaq引擎 554

收集有关数据模型的信息 554

反规范化 559

列基数 565

处理日期和时间列 566

计算列 569

使用布尔类型的计算列优化复杂筛选器 571

计算列的处理 572

存储合适的列 573

优化列存储 576

列的拆分优化 576

优化大基数列 577

禁用属性层级结构 577

优化钻取属性 578

管理VertiPaq聚合表 578

结论 581

第19章 分析DAX查询计划 582

捕获DAX查询 582

DAX查询计划介绍 585

收集查询计划 586

逻辑查询计划介绍 586

物理查询计划介绍 587

存储引擎查询介绍 588

获取配置信息 589

使用DAX Studio 590

使用 SQL Server Profiler 593

读懂VertiPaq存储引擎查询 596

xmSQL语法介绍 596

理解扫描时间 603

理解DISTINCTCOUNT函数的内部行为 605

理解并行度和数据缓存 606

理解VertiPaq缓存 607

理解CallbackDataID函数 610

读懂DirectQuery模式下的存储引擎查询 615

分析复合模型 616

在数据模型中使用聚合表 617

读懂查询计划 619

结论 625

第20章 DAX优化 627

定义优化策略 628

确定要优化的单个DAX表达式 628

创建查询副本 631

分析执行时间和查询计划信息 635

发现存储引擎或公式引擎中的性能瓶颈 638

修改并重新运行测试查询 638

优化DAX表达式中的瓶颈 638

优化筛选条件 639

优化上下文转换 643

优化IF条件 649

减少CallbackDataID函数带来的影响 660

优化嵌套的迭代函数 664

避免在表筛选器中使用DISTINCTCOUNT函数 670

使用变量避免重复计算 675

结论 680

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看