PowerBI系列组件关系详解
随着数据分析工具的不断更新,我们所熟知的Excel可能已经不是你想象中的样子了。
Excel和Power BI又有何千丝万缕的联系?
M语言和DAX语言又是什么样的存在?
操作他们又需要掌握什么样的技能?
通过我的讲解,从此你将发现一扇通往新世界的大门,开启你新的人生,让我们启航吧!
为方便书写,以下内容使用简写
Power Query : PQ
Power Pivot : PP
Power BI Desktop : PBI
一、先让我们大致了解下他们的联系

关系说明:
在Office2010时代,BI组建均以插件形式存在;2013时代,除了PQ,其他插件已全部内置;2016时代已全部内置相关插件;而Power BI就是将这些插件打包起来做了一个独立的软件,更加方便我们的使用,同时提供了在线版、移动版、桌面版,而我们通常所说的PBI指的就是Power BI的桌面版(Power BI Desktop)。其中BI组件包含Power Query、Power Pivot、Power View、Power Map四个。操作Power Query需要学习M语言、操作Power Pivot需要学习DAX语言,两则均属于函数式编程。而Power View和Power Map主要是做可视化,在Excel里面不是重点,已经逐渐被更为强大的PBI的仪表板取代。
Power BI系列组件:
Power BI 是一套商业分析工具,用于在组织中提供见解,全称:Power-BI决策分析系统。可连接数百个数据源、简化数据准备并提供即时分析。集数据获取、整理、呈现与一体。早期作为插件和Excel搭配使用,后续逐渐内置到Excel当中,现在已经开发出来独立的软件可以使用。

二、对各部分做个简单的介绍
Office Excel
关于Office办公软件就不做过多的介绍了,只需要知道从Excel 2010开始才涉及到我们今天开始讲的内容,这之前的版本比如2003版和2007版均不支持相关功能。
Excel 中可用的三大数据分析工具:
Power Query
Power Query 是一种数据连接技术,可用于发现、连接、合并和优化数据源以满足分析需要。Power Query 的功能在 Excel 和 Power BI Desktop 中可用。通常需执行一些常见步骤才可使用 Power Query。——微软的解释
Power Query使用场景:
- 1、PQ可以加载N多种数据源,包括常见的Excel文件、文件夹、TXT文件、CSV文件、SQL Server、MySQL、Web等。可对数据进行合并、追加等之前需要VBA才能完成的工作。
- 2、PQ操作完的步骤可以重复执行,下次再操作同样的步骤只需要刷新即可得到最新的数据。
- 3、PQ写好的操作步骤可以再次编辑和更改,还可调整操作步骤。你可以想象成你录制了一个宏,并且这个宏是可以根据你的需要随时可以编辑的。如果我们直接修改宏的代码实现则需要学习VBA编程,但是在PQ里面操作基础功能只需要像在Excel中的工具栏按钮进行操作一样简单。
- 4、PQ加载的数据可以突破Excel中100万行的限制,而加载数据的大小取决于你的内存上限。我曾经测试过9千万条的数据进行加载,而有人测试过100亿条数据。 在你原有的认识中你认为Excel可以加载100亿条数据吗?
- 5、PQ和PP结合,我们出日报则只需要更新数据源后刷新一下就可以完成。对于重复性的工作,可以称为是【神器】,效果堪比VBA,但学习门槛缺非常低。
- 6、Office2010、Office2013没有内置PQ,使用必须去微软官网下载插件才能使用。下载Power Query,下载安装后会在Excel菜单栏新增一个Power Query的菜单。Office2016内置了PQ,在数据菜单下-新建查询。
M语言:
M语言是操作PQ的语言,目前由700多个函数组成。但你不用怕,我们学习PQ只是为了完成我们基本的工作,没有必要对这些函数全部都熟悉,就像我们学习Excel不需要对VBA和全部的函数熟悉一样,只需要掌握几个基本的函数即可让你游刃有余,即便是你不会任何M函数,则依然可以通过工具栏上的按钮来实现,而且很多功能与Excel中是类似的,学习门槛很低。后续我会提供这些按钮的功能讲解和PQ的相关操作教程。


Power Query总结:
你可以简单的理解为是一个数据加载和数据清洗工具。在实际操作中由于受限于Power Query计算效率,通常作为数据加载使用的较多,但其数据清洗功能也是非常强大的,甚至可以做网络爬虫。
Power Pivot
PowerPivot 是一种数据建模技术,用于创建数据模型,建立关系,以及创建计算。 可使用 PowerPivot 处理大型数据集,构建广泛的关系,以及创建复杂(或简单)的计算,这些操作全部在高性能环境中和所你熟悉的 Excel 内执行。——微软的解释
Power Pivot使用场景:
- 1、PP是PQ的好搭档,一般配合使用的场景非常多,如果你要做一份日报,可以通过PQ加载数据直接生成想要的数据。如果有更加复杂的需求可以再链接到PP里面使用度量值+多维数据集函数将你需要的结果返回。下次在做日报只需要在更新数据源后全部刷新即可完成。下载Power Pivot
- 2、可以突破数据透视表的限制,制作更加自由的数据呈现结构。
- 3、可对整个数据库进行复杂查询,具有快速内存处理能力,和PQ一样不受Excel100万行的限制,结合使用DAX Studio可以实现类似SQL的查询效果。
- 4、和PQ一样,也无需受限于数据来源形式,PP也支持非常多的数据源格式,不需要受限于Excel文件。我们可以选择直接使用PP加载源数据,也可也通过PQ加载然后再链接到PP中进行使用。
- 5、使用PP中的DAX语言可以有两个方向,数据分析方向和数据查询方向。数据分析方向主要使用度量值,数据分析师使用的较多。查询方向是使用DAX处理各种复杂的表格关系,其查询效果类似SQL。
DAX语言:
与PQ一样,操作PP也需要一门变成语言,叫做DAX语言。DAX语言由200多个函数组成,和PP的M语言均被成为函数式编程。看到编程二字,你不必害怕,因为DAX的函数实际上部分函数跟我使用的Excel函数一样或者类似,如果作为入门你会很快上手。涉及到DAX更加复杂的操作需要你需要理解两个概念:筛选上下文和行上下文,后续我会做简单的介绍。


Power Pivot总结:
PP主要适用于数据模型的搭建方向,作为数据的查询也是优秀的工具。PQ和PP是一对在数据处理方面具有划时代意义的工具。但不要听到搭建数据模型就感觉很复杂,其实并没有我们想象的那么高大上,只要开始学习都会很容易的入门。
Power View
Power View 是一种数据可视化技术,用于创建交互式图表、图形、地图和其他视觉效果,以便直观呈现数据。 Power View 在 Excel、BI SharePoint、SQL Server 和 Power BI 中均可用。——微软的解释
Power View、Power Map使用场景:
Power View在Excel中已经被微软放弃,如果你对Excel不熟悉,你甚至找不到它,所以实际工作中,使用的并不是很多,而这部分内容在PBI中对应的就是仪表板。而Power Map在Excel中做展示使用的相对多一些,而同样可以在PBI中通过地图来实现。


三、学习BI组件的入门途径
从Excel入门-该方法适合Excel用户
如果你之前只是使用Excel,那么可以通过Excel开始学习这些BI组件,你会发现这将颠覆你以前对Excel的认识。
从Power BI入门-该方法适合数据分析人员
如果你是一名数据分析相关人员,那么使用Power BI Desktop将是一个不错的选择,其和Excel中的组件基本雷同,可以非常方便的使用仪表板展示你所需要表达的内容,是数据分析师的不二之选。
从SSAS入门-该方法适合开发人员
SSAS是SQL Server的一个组件,具体我也未曾使用过,是属于企业级BI的工具。
从任何途径开始学习都可以对其他部分触类旁通,其关键部分均是一样的。
四、缺点
凡是都有两面,虽然PQ和PP万般好,但是也有其限制。
- 1、不适合数据量特别大的数据,一般数据超过2G就不建议使用了,其效率会明显降低。而我们平时处理个几十万上百万的数据还是非常流畅的。如果要优化其性能并结合SQL使用能发挥更大的效果。
-2、PQ的计算效率低,在之前的探讨中,如果大量在PQ中做复杂的计算会导致计算效率明显降低,尤其是分组操作、合并查询等。我们目前的处理方式是仅使用PQ加载数据并做简单的数据清洗,大量的分析和计算则交给PP来做,因为PP的效率比PQ高了很多。但PQ的效率依然比在Excel里面高了很多。
-3、定位有点尴尬,一般办公人员学习可能稍嫌难一些,同时作为IT人员一般又不屑于使用。但目前的现状正在改善,Power BI也在不断迭代,桌面版平均每月都有更新,有时候甚至是周,已经成为微软战略及产品,学习BI的人员也在不断的增多。 - 4、参考资料少,不像Excel那么成熟,教程特别多,网上随处可见。BI组件的有质量的教程网上还是不太容易找,这些限制了部分想要学习的同学的积极性。如果是Excel入门可以看看刘凯老师翻译的《用PowerPivot建立数据模型》,如果是从PBI入门可以看看马世权老师的《从Excel到Power BI》,或者也可也看下Power 工坊的网络课程。后续我也会写或者录制一些相关的教程,方便大家学习。
五、总结
其实今天已经介绍了非常多的内容,最后也做一个总结。我得声明一下,今天我介绍的功能,WPS都是不支持的,必须是微软Office办公软件才可以。如果你是首次使用PP,这需要设置一下,才能使用,文件-选项-自定义功能区-将开发工具打勾,设置完毕后点击开发工具菜单下的COM加载项,对Power Pivot勾选后才能使用,会多一个Power Pivot的菜单。


本文转载于:
Excel、Power BI、Power Query、Power Pivot、M语言、DAX语言之间的关系 - 简书
https://www.jianshu.com/p/b3d6fdf480e6
数据科学交流群,群号:189158789 ,欢迎各位对数据科学感兴趣的小伙伴的加入!
PowerBI系列组件关系详解的更多相关文章
- slf4j log4j logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...
- 【转】UML类图与类的关系详解
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- UML类图与类的关系详解
摘自:http://www.uml.org.cn/oobject/201104212.asp UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类 ...
- mongo 3.4分片集群系列之六:详解配置数据库
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- main.js index.html与app.vue三者关系详解
main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186 main.js与index.html是nodejs的项目启 ...
- slf4j、log4j、 logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着“拿来主义”的态度,复制粘贴下配置文件就开始编码了, ...
- Hibernate中的多对多关系详解(3)
前面两节我们讲到了一对一的关系,一对多,多对一的关系,相对来说,是比较简单的,但有时,我们也会遇到多对多的关系,比如说:角色与权限的关系,就是典型的多对多的关系,因此,我有必要对这种关系详解,以便大家 ...
- slf4j log4j logback log4j2关系详解和相关用法
来源:slf4j log4j logback关系详解和相关用法https://www.cnblogs.com/Sinte-Beuve/p/5758971.html The Simple Logging ...
- nginx高性能WEB服务器系列之四配置文件详解
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
随机推荐
- Flask基础全套
Flask简介 Flask是主流PythonWeb三大框架之一,其特点是短小精悍以及功能强大从而获得众多Pythoner的追捧,相比于Django它更加简单更易上手,Flask拥有非常强大的三方库,提 ...
- 自动化运维工具-Ansible之5-流程控制
自动化运维工具-Ansible之5-流程控制 目录 自动化运维工具-Ansible之5-流程控制 playbook条件语句 单条件 多条件 多条件运算 示例 playbook循环语句 with_ite ...
- springboot 不同环境读取不同配置
1. 3个配置文件(更多环境可以建多个): application.properties (公共配置文件) application-dev.properties (开发环境) applicatio ...
- 探讨EFCore如何优雅的实现读写分离
前言 我们都知道当单库系统遇到性能瓶颈时,读写分离是首要优化手段之一.因为绝大多数系统读的比例远高于写的比例,并且大量耗时的读操作容易引起锁表导致无发写入数据,这时读写分离就更加重要了. ...
- HarmonyOS(LiteOs_m) 官方例程移植到STM32初体验
HarmonyOS(LiteOs_m) 官方例程移植到STM32初体验 硬件平台 基于正点原子战舰V3开发板 MCU:STM32F103ZET6 片上SRAM大小:64KBytes 片上FLASH大小 ...
- Navicat Premium 12连接MySQL数据库出现Authentication plugin 'caching_sha2_password' cannot be loaded的解决方案
1. 管理员权限运行命令提示符,登陆MySQL mysql -u root -p password 2. 修改账户密码加密规则并更新用户密码 ALTER USER 'root'@'localhost' ...
- RMI之由浅入深(一)
0x01.什么是RMI RMI(Remote Method Invocation)即Java远程方法调用,RMI用于构建分布式应用程序,RMI实现了Java程序之间跨JVM的远程通信.顾名思义,远程方 ...
- 使用Lists.partition切分性能优化
项目实战 影拓邦电影同步中,使用Lists.partition按500条长度进行切分,来实现es的同步. 切分的List为 使用介绍及示例 将list集合按指定长度进行切分,返回新的List<L ...
- 使用Spring中@Async注解实现异步调用
异步调用? 在解释异步调用之前,我们先来看同步调用的定义:同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果. 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕,继 ...
- idea生成UML
原文链接http://zhhll.icu/2020/12/18/idea/%E7%94%9F%E6%88%90UML/ 使用idea直接生成UML类图 然后点击所要生成的类即可生成 由于本身的博客百度 ...