Power Query从入门到精通
上QQ阅读APP看书,第一时间看更新

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语言脚本的数据内容。