本章内容将介绍:
- 定义Power BI支持的数据源类型
- 探索如何在Power BI中连接和配置数据源
- 了解选择数据源的最佳做法
现代组织有很多数据。因此,不用说,微软等企业软件供应商已经构建了数据源连接器,以帮助组织将数据导入Power BI等应用程序。你很快就会意识到,连接数据源并不一定是棘手的部分,通常是数据转换需要一点时间。在你弄清楚哪种方法最适合准备数据并将其加载到Power BI中之后,你就可以很好地分析和可视化你的宇宙中的数据了。在本章中,您将学习使用Power BI Desktop and Services准备和加载数据的方法。
从数据源获取数据
如果没有数据源,就很难使用Microsoft Power BI。您可以连接到自己的数据源,也可以使用Microsoft作为Power BI Desktop或Services的一部分向用户提供的众多连接器之一。在开始加载数据之前,您必须首先了解数据源的业务需求。例如,数据源是否是您桌面的本地数据源,偶尔会进行更新?您的数据可能来自提供实时提要的第三方数据源吗?这两种场景的要求大不相同。
请记住,Microsoft不断向其桌面和服务平台添加数据连接器。事实上,作为Power BI定期更新的一部分,每月至少发布一到两个新连接器,不要感到惊讶。因此,Power BI提供了超过100个数据连接器。最常用的选项包括文件、数据库和web服务。
在网站上您可以在以下位置找到所有可用数据源的列表
Power BI data sources - Power BI | Microsoft Learn
要在Power BI中正确映射数据,必须确定数据的确切性质。例如,如果文档类型用于Azure SQL数据库,您会使用Excel连接器吗?这不会产生您作为Power BI用户所期望的结果。
在网络上,在整个Microsoft Power BI For Dummies中,您可以找到一些补充数据集的使用。你可以在本章上找到这些数据集。在可下载的Zip文件中,你会发现一个名为FiscalYearAwards.xlsx的Excel文件,用于大多数练习。
要使用带有Power BI Desktop的Excel连接器连接到FiscalYearAwards.xlsx文件,请执行以下步骤:
- 在Excel主页选项卡上,单击Excel按钮或获取数据按钮,然后从显示的下拉菜单中选择Excel,如图5-1所示。
- 在“打开”窗口中,定位到FiscalYearAwards.xlsx文件,单击以将其选中,然后单击“打开”。
- 打开文件后,前往导航器并选中左侧的两个复选框:Prime Awards和Sub Awards。
- 单击“转换数据”按钮
请注意,我没有告诉您按加载按钮。如果使用Load,则必须手动修改数据集。
借助Transform,Power BI代表您完成了艰巨的工作。(我在第7章中详细介绍了数据转换,但目前的重点是了解如何准备和加载数据。)
单击“转换数据”后,将显示一个名为“增强查询编辑器”的新界面。这是从您刚刚在以前的Power BI屏幕上单击的两个Excel电子表格选项卡中加载数据的方法。您会发现这种体验如图5-3所示。
请记住,当您将数据加载到Power BI Desktop时,数据会及时存储为快照。要确保查看最新数据,请每隔一段时间单击主屏幕上的“刷新预览”按钮。
加载包含数据的文件夹可能会带来一些独特的挑战。尽管您可以指向一个文件夹并获取几乎任何类型的文件,但使用Power Query Editor复制文件夹结构是另一回事。在Power BI中加载存储在文件夹中的数据时,应确保存在相同的文件类型和结构。一个例子是一系列Microsoft Excel或Google Sheet文件,这些文件将是免费的。要确保实现这一点,请务必遵循以下步骤:
- 转到功能区上的“常用”选项卡,然后单击“获取数据”按钮。
- 全选⇒ 出现的菜单中的文件夹。
想尝试另一种方式吗?转到功能区上的“开始”选项卡,单击“新建源”,从显示的菜单中选择“更多”,然后选择“文件夹”。 - 无论以何种方式选择“文件夹”,下一步都是单击“连接”按钮。(见图5-4)。
按下“连接”按钮可访问单个数据源。 - 找到特定于您在桌面上存储文件的文件夹路径,然后浏览到您放置文件的位置,类似于C:\xxx\TrainingNAICS。
您刚刚选择的文件夹中的文件加载到一个新屏幕中,如图5-5所示。 - 选择一个或多个已加载的表。
- 选择表格后,单击“合并和转换数据”按钮。
TrainingNAICS.xlsx中的数据集现在加载到Power Query Editor中。
提示: “合并和变换数据”选项与“变换数据”选择之间的区别在于文件类型和结构。
假设每个文件都是相似的,并且可以创建一致的列,则可以使用“合并和转换数据”选项将所有内容合并到一个文件中。否则,最好使用“转换数据”选项,因为通常只有一个文件结构。
到目前为止,您可以看出,将文件、文件夹、数据库或web源加载到Power BI中不需要做太多操作。如果大多数用户能够指向文件路径,或者知道数据库连接和安全凭据,或者知道URL和相关参数,则可以立即配置其数据源。Power BI的Power Query功能可自动检测连接中的细微差别,并应用适当的转换。
管理数据源设置
通常,数据集需求会随着时间的推移而变化。这意味着,如果数据源发生更改,配置Power BI时最初加载的一些设置也会发生更改。假设您将包含文件611420.xlsx和54151S.xlsx的TrainingNAICS文件夹从C:\Desktop移动到C:\Documents。如果更改文件夹位置,则需要修改数据源设置。您可以通过以下两种方式之一进行这些更改:
- 在左侧的“查询”下选择每个查询。
- 在界面右侧找到“查询设置”。
- 在Applied Steps下,单击Source,如图5-6所示。
这样做会弹出一个窗口,指向文件路径和文件源。 - 进行必要的更新以满足新的要求。
使用此选项更改每个查询的原始文件的文件类型或路径。
尽管这里概述的步骤乍看起来很容易,但它们可能会变得很费力,因为您需要对每个查询列出的每个文件进行更改。这个过程可能非常耗时,而且,考虑到工作的乏味性,如果你有很多查询,你肯定会出错。这就是为什么您要考虑一个替代选项——在这个选项中,您可以一下子更改源位置,而不是使用此选项独立处理每个查询。对于其他方法,请执行以下步骤:
- 在Power Query Editor的“开始”选项卡上,单击“数据源设置”按钮。(这是一个带有齿轮的齿轮——见图5-7。)
- 选择“更改源”,选择所有需要更改位置的文件。
- 对源位置进行所需的更改。
- (可选)通过在此界面中选择“编辑权限”或“清除权限”来更改和清除关联的安全凭据。
使用共享数据集与本地数据集
到目前为止,本章的重点是使用Power BI Desktop处理创建和管理的本地数据集。数据集发布并通过您自己的工作区或共享工作区与他人共享后,数据集被称为共享数据集。与Power BI Desktop不同,在Power BI Desktop中,您必须不断更新本地硬盘上的数据集,共享数据集存储在云上,这意味着,无论它存储在您的工作区还是与其他人存储,更新都可以更加一致。
使用共享数据集还有许多其他好处,包括
- 报告和仪表板之间的一致性
- 由于数据源的集中化,数据集复制减少
- 能够毫不费力地从现有数据源创建新的数据源
记住,尽管您可能对数据集有自己的需求,但在与团队共享数据集后,所需的输出可能会有所不同。在这种情况下,您可能希望创建一个单独的数据集,并允许其他用户从该数据集开发报告和仪表板。
提示:连接到Power BI Services中已发布的数据集需要用户具有“生成”权限。您也可以是存在数据集的共享工作区的贡献成员。确保数据集的所有者根据您的业务需求提供您的访问权限。
您可以使用Power BI Desktop或Power BI Services连接到共享数据集。要完成此操作,请执行以下步骤:
- 使用Power BI Desktop,单击“主页”选项卡上的“Power BI数据集”按钮,或单击该选项卡的“获取数据”按钮,然后从显示的菜单中选择“Power BI Datasets”。(见图5-8)。
数据将从Power BI Desktop传输到Power BI Services供您使用。 - 使用Power BI Services,您将首先转到已发布数据的工作区,然后选择“新建”⇒ 报告,如图5-9所示。
无论您使用的是Power BI Desktop还是Power BI Services,您都可以轻松连接到数据集,而无需担心数据刷新问题或版本控制。您还可以选择在“我的工作区”或共享工作区中的任何报告旁边的Power BI服务中选择“保存副本”,而无需重新创建数据集。此操作类似于使用Power BI Desktop连接到数据集,因为您创建的报告没有基本数据模型。
警告如果您决定使用共享数据集,然后Power BI Desktop中的某些按钮处于非活动状态,请不要惊慌。发生这种情况是因为您无法再使用Power Query Editor进行更改。因此,数据视图也不再可见。但是,您可以通过查看Power BI Desktop界面的右下角来判断数据集是共享的还是本地的,在那里您可以找到数据集的名称和访问数据的用户。
如果您需要从共享数据集更改为本地数据集,请执行以下步骤:
- 单击“转换数据”标签。
- 选择“数据源设置”选项。
- 将数据源设置修改为要连接到的数据集,而不是共享数据集。
- 完成后单击“更改”按钮。
存储模式
正如您可能已经猜到的,您可以使用Power BI Desktop和Power BI Services以多种方式使用数据。最常见的方法是将数据导入到数据模型中。通过在Power BI中导入数据,您可以在本地复制数据集,直到您提交数据刷新。尽管数据文件和文件夹只能导入Power BI,但数据库允许您使用支持更大灵活性的连接。数据库连接有两种选择:
- 在本地导入数据。这支持数据模型缓存以及减少连接和查找数量的能力。通过吸收该模型,用户可以使用Power BI提供的所有桌面功能。
- 使用DirectQuery创建到数据源的连接。使用此功能,数据不会被缓存。相反,每次需要数据调用时都必须查询数据源。大多数(但不是全部)数据源都支持DirectQuery。
使用DirectQuery创建到数据源的连接。使用此功能,数据不会被缓存。相反,每次需要数据调用时都必须查询数据源。大多数(但不是全部)数据源都支持DirectQuery。
第二种选择使用复合模型。现在,假设用户必须结合导入数据和DirectQuery,或者需要连接到多个DirectQuery连接。在这种情况下,您将应用一个复合模型。不过,在处理模型安全性时,您会面临一些风险。例如,假设您打开了一个Power Bi Desktop文件,该文件是从不受信任的源发送的。如果文件包含复合模型,则有人使用打开文件的用户的凭据从单个源检索的信息可以作为新形成的查询的一部分发送到另一个数据源。因此,确保数据源只正确分配给那些需要访问数据源的人是至关重要的。
Dual模式
四种存储模式——本地存储、DirectQuery、Live Connection和复合模型——将数据存储在一个位置。它要么是用户本地的,要么绑定到数据中心或云中网络上的某个服务器。
回顾复合模型,存储模式属性规定了表在数据模型中的存储位置。要查看表的属性,可以将鼠标悬停在表上。在Power BI中,您可以在报告的“字段”窗格中执行此操作,也可以访问“数据”视图。您也可以通过查找“高级”部分来更改“属性”窗格中的“模型”视图。
您可以为存储模型选择三个选项之一:导入、DirectQuery或双重。您可能想知道为什么不能同时选择Live Connection或Composite。简单地说,这些特定的选项是Import和DirectQuery的混合模式。
双模式不是一种混合模式——相反,它允许在必要时以DirectQuery模式缓存和检索表。如果另一个表使用了另一种存储模式,则DirectQuery不需要使用。当导入的表与使用DirectQuery模式专门提供的表相似时,您会发现双模式是有益的。
警告:如果必须更改存储模式,则可能会遇到一些复杂情况。例如,如果您决定从DirectQuery模式或Dual模式转到Import模式,则以后不会恢复。此外,如果由于表存储的更改而决定冒险更改为双模式,则需要首先使用DirectQuery创建表。
考虑查询
在我的Power BI讨论中,我总是强调这样一个事实,即您可以从各种方法中进行选择,以准备数据并将数据加载到Power BI中。当您有疑问时,确保您和您的组织最准确的方法是导入模式——手把手。不过,在某些用例中,直接导入的用户体验并不是最好的。考虑以下列表中描述的情况:
- 在处理非常大的数据集时,DirectQuery可能是更好的选择。但是,导入的性能与导入所来自的系统直接相关。
- 数据频率和新鲜度是使用DirectQuery的两个原因。之所以会出现这种情况,是因为数据源必须始终显示在合理的时间长度内返回的结果。
- 假设数据必须位于其原始数据源中,并且源的位置不能更改。在这种情况下,DirectQuery更适合于数据移动。
警告:DirectQuery不是最好的,如果你认为直接导入不能解决你的问题。在以下情况下使用DirectQuery有时会面临一场艰苦的战斗:
- 基础结构的状态决定DirectQuery的结果。这意味着在处理大型数据集时,速度慢或旧的硬件不会像你想象的那样工作。
- 并非所有查询类型都可用于DirectQuery。对于具有表表达式或存储过程的本机查询尤其如此。
- 与直接导入不同,数据转换是有限的。每次需要更改时,都必须与界面交互。
- 数据建模存在局限性,尤其是在处理计算表和列时。正如您将在第14章中看到的,当您使用DirectQuery导入数据时,DAX功能受到限制。
根据Power BI中使用的数据连接模式,数据查询会有所不同。Import、DirectQuery和Live Connection之间的差异。
实时连接和 DirectQuery 之间有什么区别? - Power BI | Microsoft Learn
寻址和校正性能
在某个时刻,你连接到一个数据源,盯着屏幕想,“为什么事情这么慢!”
Power BI性能低下有几个原因,其中许多原因可以很快诊断和纠正。
Power Query使用Microsoft在产品中预先配置的本机查询语言转换数据源。PowerBI中的SQL等翻译语言示例有助于转换数据源。语言转换过程称为查询折叠。尽管查询折叠通常非常有效,但也会出现问题。查询折叠可能导致问题的一个例子是,数据集仅部分从数据源检索。因此,数据集不是加载所有列,而是加载数据的一个子集,这使得您更难选择要保留的内容和要删除的内容。
提示:如果您想了解Power Query如何将数据加载到Power BI中,有一种简单的方法可以查看发送到数据源的查询:要查看查询,请在Power query Editor中的Applied Steps下右键单击查询步骤,然后从显示的菜单中选择view Native query。
请记住,本机查询并不总是可用的。例如,有些数据源不支持查询折叠。此外,考虑到使用的母语,查询步骤可能不会被翻译,这意味着该选项将变灰。
诊断查询
Power BI包括一个查询诊断工具集,允许您解决可能出现的任何性能问题。如果您需要在数据集刷新周期中查看您编写和生成的查询,包括那些您可能希望更好地评估查询折叠异常的查询,这些工具会很有用。若要访问“查询诊断”工具集,您必须首先准备好数据源。理想情况下,您已经转换了数据,而不仅仅是加载了数据。完成后,请执行以下步骤:
- 单击功能区的“工具”选项卡。
- 单击Start Diagnostics(启动诊断)按钮启动流程,然后单击Stop Diagnostics(停止诊断)停止。(见图5-10。)
- (可选)若要分析单个步骤,请单击“工具”功能区上的“诊断步骤”按钮,或右键单击某个步骤并选择“诊断”。(见图5-11。)
探索MICROSOFT DATAVERSE
Power BI是Microsoft Power Platform产品套件的一部分。这些功能之间紧密集成的是一个以前称为通用数据服务的数据平台。新产品名称为Dataverse。使用Dataverse,您可以获得一组标准化的表,将数据映射到其中,这样您就可以创建自己的表系列或复制其他基于Power Platform的应用程序中的表系列。
Dataverse可以将Power BI数据流以及其他Microsoft Power Platform数据流存储在一个通用存储库中。连接到Dataverse,无论是针对Power BI还是其他Power Platform应用程序(如Power Apps或Power Automate),都只需要用户使用其登录凭据。只要为用户分配了对数据存储的权限,并给定了相关流,访问就应该是透明的。用户唯一需要的就是知道服务器地址。
想知道如何找到您环境的Dataverse URL吗?按照Microsoft提供的说明,转到
Create a Power BI report using the Dataverse connector - Power Apps | Microsoft Learn
提示:查询诊断对于静态数据非常有用。但是,假设您有动态数据——这些数据增量地需要刷新。在这种情况下,您永远不知道性能是否会下降。如果您知道您的数据将经常更新,请实施增量刷新策略。这样,您的遗留数据将保持不变。同时,在数据加载和刷新周期中,只评估新数据。
导出Power BI桌面文件并利用XMLA
假设您已经连接到Power BI Desktop中的数据。您可以使用此连接导出Power BI Desktop(PBIDS)文件,所有数据详细信息都嵌入在该文件中。当您希望创建与特定数据源的可重复连接时,该文件是有效的。
要导出PBIDS文件以在另一个上下文中使用,请执行以下步骤:
- 在Power BI Desktop中打开文件后,从“文件”菜单中选择“选项和设置”选项。
- 从“选项和设置”菜单中选择“数据源设置”。
- 在页面底部,单击Export PBIDS按钮以生成您的PBIDS文件。
文件将保存到您选择的位置,无论是桌面还是硬盘。PBIDS将您的所有数据(包括数据源、数据模型和报告)压缩到一个文件中,该文件可供其他访问Power BI Desktop或Services的用户重用。
使用Power BI Services Premium,端点的另一个选项,称为XML for Analysis(XMLA),可用于连接端点。使用XMLA,您可以从Power BI数据中提取数据,并使用除Power BI desktop之外的任何其他桌面客户端工具来操作数据集。例如,如果你想使用Excel来编辑数据集,那肯定是有可能的。要使用XMLA端点,必须使用要使用Power BI管理门户启用的内部部署数据集来配置XMLA端点。
请记住,XMLA端点设置需要Power BI Premium容量才能运行。若要成功,必须将环境配置为只读或读写。对于编辑数据集,读写是必要的
XMLA端点连接被视为将工作区连接到服务器,将数据集作为数据库。要确保数据集正确连接,请转到工作区连接地址并查找工作区设置。通过执行以下步骤,确保您可以访问这些功能:
- 请访问Power BI服务门户网站www.powerbi.com/。
- 从屏幕左侧的导航菜单中选择“工作空间”。
- 通过从下拉列表中选择一个选项来确定要修改的工作空间。
- 单击垂直省略号,然后从显示的菜单中选择Workplace Settings。
- 修改设置以适应您的环境需求,如图5-12所示。