
1.3 Power Query组件
在Power Query组件中,进行数据清洗和集成主要有四大组件作用,四大组件可以分工协作,帮助我们高效完成数据的集成和清洗。
(1)数据获取组件
数据获取组件是对接各种不同的数据来源,使用Power Query支持各个不同的业务数据或各类不同的在线API数据的获取,目前数据非常多,Excel和Power BI提供的数据种类大概有100多种,包含文件夹、文本数据、XML数据和JSON数据,都可以通过数据获取进行数据的导入。
(2)数据清洗组件
数据清洗组件主要负责获取各类数据后,通过数据清洗组件进行数据的清洗和重构,保证RAW数据经过清洗和重构后变成相对比较可靠和有用的数据,这个过程是使用数据清洗组件完成的。
(3)数据合并组件
数据合并组件是为了完成多个不同数据来源数据内容的合并,通常来说,数据合并组件用来查询和合并多个不同文件中的数据,通常来说,合并分为横向合并和纵向合并两种,横向合并类似于数据库中的外键合并,而纵向合并是基于相同的数据字段进行的合并。合并的最终目的是将所有的相关数据整合到一起。
(4)数据分享组件
数据分享组件是在Excel中进行数据访问连接的分享,在Power BI中没有相应的数据分享组件。在Excel中如果希望将目前的Power Query连接分享到其他同事Excel中进行数据访问集成并且重复使用,这时Power Query数据分享组件将帮助我们完成数据连接分享功能。
在实际的应用过程中,数据集成组件是Power Query的必选组件。而其他的组件在实际应用过程中有不同的场景,具体有哪些组合场景呢?
(1)数据集成
我们需要实现多个不同数据来源的数据集成,为后期数据的使用提供标准数据。
(2)数据集成+数据清洗
我们需要对复杂数据进行集成和清洗的时候,除了通过数据集成方式将数据导入,根据其他的需求,还要将数据进行重构和重新定义,例如,我们导入了一些会员身份证号码,需要基于身份证号码进行出生年月日的提取,这时就需要进行数据清洗和集成。
(3)数据集成+数据清洗+数据合并
当然,也可能会有一些特殊的应用场景,例如,数据的内容包含在一个文件夹中,文件夹中包含了需要合并的1—12月的销售业绩。当我们进行数据集成后要完成必要的数据清洗,再进行多个数据表合并。
在Excel中开启Power Query组件和在Power BI中开启相应的组件方法略有不同,这里我们基于Excel和Power BI分享如何开启相应的Power Query功能组件。
1. Excel的Power Query组件注册与开启
Excel从2010版本开始提供了Power Query组件进行数据的集成,不同的Excel版本使用Power Query的方法略有不同,以下版本的Excel 均可主动或被动支持Power Query。
■ Office 2010和Office 2013:以加载项方式实现Power Query组件。
■ Office 2016版本:默认集成Power Query组件。
■ Office 365版本:默认集成Power Query组件。
目前Office 2010和Office 2013版本的Power Query插件提供的功能和函数不再更新,如果需要使用最新的函数,需要将Excel更新到Office 2016或更新的版本。
Office 2010和Office 2013需要通过COM加载项的方式启用Power Query加载项,如在图1.4所示的对话框中选中Power Queryfor Excel复选框。

图1.4 启用Power Queryfor Excel加载项
在Excel 2016 版本中Power Query不再以加载项的方式提供服务,而是集成在Excel的数据标签中。在Excel 2016 版本中,Excel数据导入和Power Query功能都存在,但这两个功能是完全不同的,如图1.5所示,左边框中内容为Excel的数据导入功能,即将外部数据导入Excel中;右边框中为Power Query获取外部数据功能,即通过Power Query建立外部查询功能。

图1.5 Power Query查询方式和Excel获取外部数据
Excel数据导入与Power Query看起来功能相同,实际上差别很大,两者的功能差别在哪里呢?
(1)支持数据来源类型
Excel获取外部数据支持的数据源类型比较少,目前仅支持文本文件、SQL Server 及Web等类型数据。而建立查询方式支持非常广泛的数据源类型,包含文本文件、Excel文件、SQL Server、MySQL和网页的API连接,都是标准支持的数据类型。
(2)导入数据处理
获取外部数据方式仅仅支持将所有的数据导入Excel后再进行数据的处理,通过导入操作支持的数据量是有限的,目前仅仅支持1048576行数据。而建立查询方式支持数据导入的方式相当灵活,我们可以将数据导入Excel中,也可以建立到数据源连接,选择建立连接后的所有数据处理将没有上限,几千万、上亿行的数据处理都可以在Excel处理过程中得到支持。
(3)数据导入后操作与处理
通过获取外部数据方式导入的数据只能在Excel中进行再处理,所有的数据将保存在Excel中。而通过查询方式导入后的数据支持Power Query的M函数处理,处理完成后可以保存在Excel文件中,也可以为千万级的数据进行建模操作。
2. Office 365 版本的Excel 支持
接下来我们看看Office 365 版本的Excel对Power Query的支持。在Office 365版本中已经完全替代了获取外部数据,获取外部数据的功能选项已经从数据标签消失了,只有“获取和转换数据”组,如图1.6所示。

图1.6 Office 365选项组
Office各个版本的Power Query有什么不同呢?
(1)函数数量不同
目前各个版本中Excel 提供的Power Query函数都有所不同,函数功能和数量会随着Office的更新而更新。
(2)智能提示功能
在Office 365版本中的Power Query提供了智能提示功能,而在非Office 365版本的Power Query中将不包含智能提示功能,图1.7所示的界面为Office 365版本的Power Query启用智能提示功能的效果,即依据输入的字符提供智能提示。

图1.7 Power Query函数的智能提示
1.3.1 Excel的Power Query组件
在Excel早期版本中,我们必须在COM组件加载后才能载入Power Query,而在Office 2016版本之后,默认就存在Power Query组件,从而帮助我们进行数据的导入和处理。通过快速导入命令可以实现常规类型的快速导入,包含但不仅限于:CSV 数据格式,Excel数据格式,WEB 数据格式。
图1.8就是Excel中的快速导入命令,快速导入命令位于“数据”选项卡中,利用快速导入命令能够实现常用的数据导入。

图1.8 Excel中的Power Query组件
在实际的操作过程中,快速导入命令不能完成所有数据的导入操作,当需要对文件夹、MySQL数据库等进行导入操作,这些在快速导入命令中是无法完成的,这时就需要通过标准的导入界面来实现数据的导入操作,而在Excel和Power BI的标准界面中进行的操作略有不同。
在Excel中的Power Query导入数据操作,导入数据窗口支持在获取数据和Power Query编辑器窗口这两个不同的入口进行数据导入,目前Excel支持如下数据内容和格式的导入。
1. 来自文件
■ 工作簿:支持Excel 工作簿数据导入。
■ CSV/TXT文件:支持CSV/TXT文本数据导入。
■ XML:支持XML格式数据导入。
■ JSON:支持JSON格式数据导入。
■ PDF:支持PDF格式数据导入。
■ 文件夹:支持文件夹内多个不同文件数据导入。
■ SharePoint:支持SharePoint服务器列表数据和内容数据导入。
2. 来自数据库
■ SQL Server:支持来自SQL Server数据库的数据导入。
■ MySQL:支持来自MySQL数据库的数据导入。
■ Mongo DB:支持来自Mongo DB数据库的数据导入。
■ Oracle:支持来自Oracle数据库的数据导入。
3. 来自Azure
■ Azure Database:支持来自Azure数据库的数据导入。
■ Azure HDinsight:支持来自HDinsight的数据导入。
4. 来自在线源
■ SharePoint在线服务:支持在线的SharePoint数据和列表获取。
■ Dynamic 365:支持Dynamic 365数据获取。
■ Sales Force:支持Sales Force数据获取。
5. 来自其他来源
■ 空查询:支持自定义的数据内容获取。
■ Web:支持来自网站的数据内容提取。
■ OleDB:支持以OleDB 驱动连接的数据内容。
■ ODBC:支持以ODBC驱动方式连接的数据源。
Excel的Power Query支持导入的数据类型会随着Office补丁的更新逐渐增加,图1.9是当前Power Query导入数据能够支持的数据类型。

图1.9 Excel的Power Query支持的数据导入类型
1.3.2 Power BI的Power Query数据导入界面
Power BI中的各个Power组件已经被深度集成到Power BI中,不再作为像Excel一样的独立组件而存在。在Power BI的界面中为了快速导入这些常用的数据,也有相应的快速导入命令。Power BI的快速导入命令位于主页面中,图1.10就是Power BI的快速导入命令。

图1.10 Power BI快速导入命令
在Power BI的数据导入界面中,提供了更多类型的数据导入,支持常用的数据导入类型如下。
1. 文件类型
■ CSV/TXT文件:支持CSV/TXT 文本数据导入。
■ Excel文件:支持Excel 工作簿数据导入。
■ XML文件:支持XML格式数据导入。
■ JSON文件:支持JSON格式数据导入。
■ PDF文件:支持PDF格式数据导入。
■ 文件夹数据:支持文件夹内多个不同文件数据导入。
■ SharePoint:支持SharePoint数据内容获取。
2. 数据库
■ SQL Server:支持SQL Server 数据库访问。
■ MySQL:支持MySQL数据库访问。
■ Oracle:支持Oracle 数据库访问。
■ PostSQL:支持PostSQL 数据库访问。
3. Power Platform
■ Power BI数据集:支持Power BI数据集访问。
■ Power BI数据流:支持Power BI数据流访问。
■ Common Data Service:支持CDS数据访问。
4. Azure 服务
■ Azure SQL数据库服务:支持Azure SQL数据库访问。
■ Azure Blog存储:支持Azure Blog数据存储访问。
■ Azure表存储:支持Azure 表存储的数据库访问。
■ Azure HDinsight:支持Azure HDinsight的数据库访问。
5. 联机服务
■ SharePoint Online列表:支持SharePoint Online的列表访问。
■ Exchange Online 服务:支持Exchange Online的数据内容访问。
■ Dynamics 365:支持Dynamics 365数据访问。
■ SalesForce:支持SalesForce数据访问。
■ Zendesk:支持Zendesk数据访问。
■ Zoho CRM:支持Zoho CRM数据访问。
6. 其他系列服务
■ Web:支持网页及网页API访问和获取。
■ 空语句:支持自定义数据的访问。
■ Python脚本:支持Python脚本的数据内容。
■ R语言脚本:支持R语言脚本的数据内容。