DAX设计模式(第2版)
上QQ阅读APP看书,第一时间看更新

前言

在SQLBI,我们有着一份不错的工作:我们是全球范围的培训师和顾问,每年都会结识来自世界各地成千上万的人—— 一群非同寻常、对商业智能和DAX怀揣热忱的人。我们的学员和客户会询问各种复杂场景下的解决方案。

如果有学员因为要计算他们报告中新客户的数量而寻求帮助,你一而再、再而三地解决了这样的问题,那么总会在某个时刻,你会觉得下一次又要回答相同的问题时,如果有一个现成的解决方案就太好了。这就是我们于2013年开始建设DAXPATTERNS网站的原因。我们自此开始收集常用的模式,并创建了一套DAX公式,旨在解决常见的问题。当时的目标并不是写一本新书。相反,我们的目标是建立某种记忆库,以便搜寻解决方案。我们原以为自己会是这个网站的主要用户。

计划往往赶不上变化。而这次,我们是更上了一层楼。DAXPATTERNS网站取得了巨大的成功。用户下载了示例文件并实现了两个不同的目标:他们找到了现成的解决方案,并根据我们编写的公式提高了他们的DAX技能。为了满足更多用户的需求,我们提供了用于Excel 2010和Excel 2013的示例文件——后者仍然适用于更高版本的Excel。最终,我们把网站的内容整理成一本书。这就是DAX Patterns第1版,那是发生在2015年年底的事。当时,我们还没有出版Definitive Guide to DAX的第1版。因此,我们在这一版的DAX Patterns中包含了对DAX的简短介绍。

在接下来的5年里,许多事情发生了变化。DAX拓展了许多有用的特性。最重要的是Power BI面世了,使用DAX的用户数量呈指数级增长。如今大多数DAX用户使用Power BI创建解决方案。而在我们出版本书的第1版时,Power BI甚至还没有发布。

在这5年里,模式收集这件事仍在继续。我们遇到了更多的学员,解决了更多的问题,我们的DAX技能也愈发精进。另外,我们现在有成千上万的用户能够对以前的模式提供反馈。通过研究用户评论,我们可以更好地了解读者的需求。同时,我们还出版了Definitive Guide to DAX [1]。所以,我们已经没有理由在一本关于设计模式的书中教授DAX了。

长话短说,建立全新的DAX设计模式网站和编写一本新书是很有意义的,因此我们撸起袖子加油干,完成了这本你正在阅读的图书。

我们没有采用第1版的任何内容。我们想要一个新的开始。所有代码都是从头开始编写的,本书使用了最新的[2]DAX和Power BI特性,并在必要时将代码和Excel 2019做了适配。


[1] 本书作者撰写的介绍DAX的著作的中文译本《DAX权威指南(第2版)》已上市。——译者注

[2] 截至2020年6月。——译者注

在新版中,我们做了一些改变。

● 增加了大量的关于时间智能计算的内容。时间智能是迄今为止研究最广泛的主题。因此,增加与时间相关的计算和模式的数量是有意义的。

● 同样,新客户和回头客户模式也相当重要。我们在书中对该模式着墨较多,并增加了计算新客户和回头客户的公式和模型的数量。

● 增加了模式的总数,根据经验,添加了一些可能对读者有用的模式。

● (相较第1版)我们决定去掉一些模式。例如,有关统计计算的内容在2015年还有用,因为那时DAX缺少统计功能。自此以后,DAX引入了许多新函数来计算与统计相关的公式。到2020年就不需要这些内容了。

● 不再提供代码片段。第1版图书展示了大量的代码,包括读者可能更改的列的占位符。我们不再这么做了。我们展示了有效的代码,因为你经常需要调整数据模型和公式中的其他细节。我们认为这将使代码更具可读性,更易于使用和适配你的模型。

● 对每一个公式都做了优化。你在模式中看到的所有代码都经过了仔细的性能检查。这并不意味着这些模式就是最好的,它们仅是我们能想到的最优的。如果你能使代码执行得更好、更快,请让我们知道!可以在DAXPATTERNS网站的评论区提供反馈。

● 我们为每个示例文件都创建了Power BI和Excel的版本。在本书中,我们提供了Power BI报告的截图,其显示了代码运行的结果,但是在供你下载的示例文件中,Power BI和Excel版本都有。