1.3 为什么使用Power BI
1.3.1 什么是Power BI
Power BI 是一款数据可视化分析软件。如果你觉得这个概念太抽象,则可将 Power BI理解为加强版的 Excel,尽管这种理解有些许偏差。图 1.3.1 为微软官方对 Power BI 的价值的精辟总结:“可以连接任何位置的数据,然后通过令人惊叹的交互式可视化效果来浏览数据”“发布报表和仪表板、与团队协作,并在组织内外共享见解”“随时随地获取见解”。
图1.3.1
有的读者可能会问:何以见得此为Power BI的高明之处呢?其他BI工具,例如Tableau,也可以达到这种效果啊!的确没有错,能实现这些功能的产品不仅一家。参照 BI 平台魔力象限图,可以看出微软在领导者象限中一枝独秀,并且在过去 13 年中处于领导者地位。尽管此排名是以微软品牌的总体来打分的,但 Power BI 作为微软目前核心的可视化数据分析软件,足以代表微软在BI平台方面的最高水准。
1.3.2 Power BI与Excel
有的读者会问,Excel 难道就不是一个自助式 BI 工具吗?为什么还需要使用 Power BI呢?Excel的确具有BI 工具的许多特性,如果从这个角度理解,那么 Excel的确还是市面上使用最广泛的“BI工具”。有一个笑话可以说明Excel的用途广泛。
问:BI工具中使用频率第三高的按钮是什么?
答:“导出为Excel”。
问:那么第一与第二高的按钮是什么呢?
答:“Yes”和“No”。
这里不妨对比一下Power BI与Excel这两款工具的差别。前文说过Power BI是Excel的加强版,那么它强在哪里?首先,Power BI解决了Excel的3大难题:
● Excel有无法突破104万行数据的限制及超慢的数据处理速度;Power BI有数据建模功能,处理超过100万行的数据很轻松。
● Excel 通过 Vlookup 函数建立大表,会产生冗余数据和让人难以想象的复杂调用;Power BI有表关联功能,只需要建立Relationship(关系)就可以完成Lookup(查找)任务,不再需要Vlookup函数了。
● Excel 通过不断重复书写公式,完成各种复杂的计算,令表中的计算难以维护;Power BI有DAX公式,一次编写公式,永久有效,避免重复编写冗余公式。
除此之外,Power BI比Excel更加完善的地方还有许多,以下只是列举其中一些重要的特性。
● Power BI增加了Power BI Service Online 分享发布功能,使内容发布与分享更为便利。
● Power BI增加了丰富而强悍的可视化组件,使用户更容易理解和洞察数据背后的规律。
● Power BI增加了AI高级分析功能,帮助用户洞察数据。
● Power BI与Office 365、Azure和Dynamic 365可以无缝对接,形成了强大的协同生态体系。
既然Power BI如此强大,是否可以直接用Power BI替代Excel?答案是否定的。下面是Power BI不能做的事情。
● Power BI不是编程工具,不能完成Excel VBA的复杂逻辑。
● Power BI不能处理非结构性数据。
● Power BI不能用于事务性处理(OLTP)。
● Power BI本身只能分析数据,通常不用于回写数据。
基于这几点,Excel的优势就显现出来了。实际上,在Excel中也可以使用Power BI中的数据模型功能(本书中将使用数据模型功能的 Excel 称为 Power Excel,用于与传统的Excel 进行区分)。图 1.3.2 为使用 Power Excel 进行股票回归测试,其背后所使用的技术是VBA+Power Pivot。
Power BI与Power Excel在技术上是相通的,同宗同源,如图1.3.3所示,它们都使用了Power Query(获取准备)与Power Pivot(数据建模)模块。对比而言,Power BI更适合于可视化分析解决方案,而Power Excel更适用于事务型与表格型分析的混合解决方案。
图1.3.2
图1.3.3
1.3.3 Power BI与Python、R
应该学习Power BI还是Python、R呢?Power BI与Python、R既有互补又有竞争的关系,为什么这样说呢?虽然 Python 和 R 语言简练,但它们还不属于低代码级别的应用,也不能通过IDE(集成开发环境)完成开发。“全民学Python”和“全民学R” 的想法基本不太现实。
而原先依赖Python和R的可视化分析现在可以用Power BI来实现了,从这个角度而言,它们是竞争的关系。另外,Power BI 支持嵌入 Python 和 R 的可视化控件,一部分在 Power BI 中无法实现的可视化分析,可以通过嵌入 Python 和 R 的可视化控件来实现,从这个角度而言,它们又是互补的关系。那么究竟先学哪个好呢?如图 1.3.4 所示,笔者认为 Power BI类似中学课程,适用人群更广。而Python和R属于大学课程,学习难度要大一些。
图1.3.4
当然,即使你目前已经有“大学生”的水平,回头看一下中学课程也是很有益处的:用更简便的方法实现相同的目的,谁会拒绝这样的选择呢?
1.3.4 Power BI中的分析语言
在 Power BI 中进行数据分析时,需要使用到 3 种“神器”:M 语言、DAX 语言和表关联。为了更好地了解它们的用途,可以将数据可视化分析过程理解为烹饪的过程,如图1.3.5所示。过程分为3个阶段:洗菜、烹饪与就餐。而 M 语言就是洗菜用的工具、DAX语言和表关联就是烹饪用的工具。
图1.3.5
首先介绍 M 语言。在数据分析中,如果没有洗菜,就会是“Garbage in,Garbage out”(垃圾进,垃圾出)。从中可以看出数据准备的重要性。根据《哈佛商业评论》的调查研究,在数据分析中,准备数据要用掉80%的时间,真正用在分析上的时间只有20%。如果没有数据清洗,那么再炫酷的可视化分析工具也失去了意义。
Power BI 的功能可谓是非常全面的。首先,M 语言的操作大部分都可以通过 IDE 界面完成。对于一般的数据清洗,用户在不用写一行代码的情况下就可以完成。另外,资深用户还可以直接使用高级功能:通过编写 M 公式来完成更为复杂的数据清洗任务,前提是用户需要先学习M语言的知识。
DAX,即Data Analysis Expression,是数据分析工具的核心功能,也是Power BI的灵魂。DAX的历史比Power BI还要久。DAX可以应用的逻辑场景很丰富,一些在SQL或者Excel中也未必能表达出的逻辑,用 DAX 总能轻而易举地完成。许多用户早已被 DAX 的简练、高深、优雅所深深折服。
最后是表关联。因为Power BI具有SQL的“基因”,所以它在建模方面有着得天独厚的优势:通过拖曳的方式可以快速定义各个表之间的关系,非常直观、简洁。设计优秀的模型,就好比把房子盖在磐石上:当发大水时,因为房子盖在了磐石上,所以不会被冲倒,住户的安全得到了保护。不良的模型设计好比把房子盖在沙土上,水一冲,房子就倒了,连房子里的住户都会一起遭殃。
1.3.5 Power BI的企业级应用
经过多年的深耕细作,如今的 Power BI 已经不仅仅是数据可视化分析工具,也成了企业级 BI 解决方案。企业级 BI 解决方案强调的是从性能与量级考虑解决方案的稳定性。图1.3.6为Azure 与Power BI结合的企业级BI解决方案。
图1.3.6
从数据连接角度而言,在 Power BI 中可以通过选择导入、直连、混合连接等连接模式,满足各种数据量级的需求。从平台角度而言,可以通过Analysis Services、Power BI Premium、Power BI Embedded等工具满足企业级的运算性能需求。