您的系统上安装了 Power BI,您是否想知道:“我可以从多个来源获取数据吗?” 比如,六个不同的来源,或者一些 Excel 文件,使用 SQL 数据库,甚至从网络上获取一些实时汇率?
简而言之,答案是肯定的,完全可以。这确实是 Power BI 的一大优势——它专为连接、混合和可视化来自多个来源的数据而构建。
在本文中,我将通过实际示例,向您讲解如何在 Power BI 中连接到多个数据源。我还会分享一些关于如何正确组合数据的重要技巧,以免您的报告日后出现问题。
了解Power BI中的数据源
在深入探讨之前,我们先来明确一下“数据源”究竟是什么。
在 Power BI 中,数据源几乎可以是任何包含数据的内容。它可以是:
- Excel 或 CSV 等文件
- 数据库(SQL Server、PostgreSQL 等)
- 云平台(例如 Azure 或 SharePoint)
- 实时数据 Feed 或 Web API
- 甚至是另一个 Power BI 数据集
没错,您可以在一份报表中同时连接多个数据源。但您需要妥善管理它们(尤其是在关系和刷新方面)。
数据源类型
为了帮助您了解情况,以下是数据源的大致分类:
类别 | 示例 |
---|---|
文件 | Excel、CSV、XML、JSON、PDF |
数据库 | SQL Server、MySQL、PostgreSQL |
云服务 | SharePoint、OneDrive、Azure |
网站与 API | 带表格的网站、REST API |
这里列出了 Power BI 中的所有功能。
Power BI 在连接各种数据源方面表现出色。无论您的数据是简单的 Excel 文件、可靠的 SQL Server 数据库、云服务,还是实时的 Web API,Power BI 都能无缝衔接。这种令人难以置信的灵活性意味着您可以轻松地从任何地方整合信息,从而构建全面的仪表板并获取洞察,从而全面展现您的业务。
如何在Power BI中连接多个数据源
现在,让我们进入本文的核心部分:如何在 Power BI 中连接所有这些不同的数据源?让我一步步指导您。
- 打开 Power BI Desktop
- 在“主页”功能区中点击“Get Data”。
- 选择您的第一个源,例如“Excel Workbook”,然后单击“Connect”。
- 导航到 Excel 文件并打开它。
- 现在,在导航器中,选择需要导入 Power BI 的文件并加载所需的数据。您可以通过点击“Transform Data”在 Power Query 中对其进行转换。
- 现在您的数据将加载到 Power BI。
- 接下来,再次点击“Get Data”。这次,可以选择 Web。
- 粘贴包含一些公共数据的 URL(例如,欧洲足球锦标赛维基百科页面上的结果表:https://en.wikipedia.org/wiki/UEFA_European_Football_Championship)
- 在导航器中加载数据后,选择所需的工作表或表格并加载到 Power BI。如果需要,您还可以转换数据。
- 根据需要不断重复。您连接的每个源都将成为模型中的一个新表。
Power BI中的连接模式类型
在 Power BI 中连接数据时,您可以选择两种主要的连接模式:Import(我们之前使用过)和 DirectQuery。每种模式都有各自的优缺点,了解它们对于构建高效、响应迅速的仪表板至关重要。
1. 导入模式
这是大多数情况下最常用和推荐的连接模式。在此方法中,Power BI 从数据源提取数据并将其本地存储在 .pbix 文件中。当数据不频繁更改或需要高性能和完整的建模功能时,这种方法效果最佳。
优点:
- 高性能:由于数据加载到 Power BI 的内存引擎中,因此报表速度快且响应迅速。
- 丰富的功能:您可以充分利用 DAX、复杂的数据转换、计算列和自定义度量。
- 离线访问:导入后,即使没有实时连接到数据源,也可以分析数据。
缺点:
- 数据新鲜度:由于数据在刷新前是静态的,因此除非您定期刷新,否则您的报告可能会过时。
- 文件大小限制:如果不进行优化,非常大的数据集可能会增加 .pbix 文件的大小,并导致性能问题。
2. DirectQuery模式
在 DirectQuery 模式下,Power BI 不会存储数据。相反,它会在您每次与报表交互时向源发送查询。数据保留在源系统中,Power BI 仅在需要时提取所需的数据。在实时或近实时数据至关重要的场景中,它是更好的选择。请确保在使用 DirectQuery 时,底层数据源能够高效地处理频繁的查询负载。
优点:
- 实时访问:您始终可以看到最新数据,这对于运营或监控仪表板来说是理想的选择。
- 无大小限制:由于数据不存储在报表文件中,因此无需担心内存或文件大小限制。
缺点:
- 性能较慢:每次点击或交互都会向数据源发送查询,这可能会导致延迟,具体取决于数据源的速度和工作负载。
- 功能受限:某些 Power BI 功能(例如某些 DAX 函数、数据转换和计算表)受到限制或不可用。
- 依赖于数据源可用性:如果数据源出现故障,报表将崩溃或加载缓慢。
值得尝试的热门真实数据源
如果您正在尝试或编写教程(就像我在这里做的一样),最好使用免费且易于访问的数据源。以下是我的一些精选:
来源 | 有用性 |
---|---|
Excel / CSV | 易于创建模拟数据 |
网页 / API | 获取实时数据,如汇率或天气 |
OData Feed | Microsoft 提供公共 OData 供给(Northwind) |
本地 SQL Server | 提供数据库风格的数据结构 |
有了所有这些免费选项,您可以跳过 Salesforce 或 Azure 等来源,除非您已经为这些平台付费。
在Power BI中合并来自多个来源的数据
现在您的报告中已经包含了所有这些来源,但如何让它们协同工作呢?
这时 Power Query 和模型视图就派上用场了。
在 Power Query 中,您可以:
- 转换每个数据集、重命名列、筛选行以及更改数据类型
- 如果表相似(堆叠行),请使用“Append”
- 如果要通过键值连接表(例如 VLOOKUP),请使用“Merge”
在“模型视图”中,您可以:
- 定义表之间的关系(例如,订单表链接到产品表)
- 始终检查一对多或多对多问题
- 不要创建循环引用,Power BI 不喜欢这种情况
性能和刷新注意事项
混合数据源时需要小心谨慎,尤其是当一些数据源来自云端,而一些来自本地时。以下是一些需要注意的事项:
- 导入模式 = 获取数据的最快方式,并支持所有 Power BI 功能。
- DirectQuery = 保持更新,但速度较慢,转换功能有限。
- 有些数据源不会自动刷新,您需要为它们设置网关(尤其是本地 SQL)。
- 如果凭据设置不正确,计划刷新可能会失败。
专业提示:如果可能,请将所有数据保持在相同模式(全部导入或全部 DirectQuery),以避免兼容性问题。
用例示例
假设您要创建一个仪表板,显示以下内容:
- 月度预算:来自 CSV 文件
- 实际销售额:来自 SQL Server 表(本地)
- 汇率:来自公共 API(例如 exchangerate-api.com)
操作方法如下:
- 连接到测试/CSV
- 加载预算表。我这里使用的是示例表,您可以随意加载自己的数据集。
- 连接到 SQL Server。
- 按地区加载销售额数据(或您选择的任何其他数据)。在 SQL Server 数据库对话框中,输入服务器和数据库(可选)名称,并确保数据连接模式设置为导入。
- 选择“OK”,在下一个屏幕上验证您的凭据,然后选择“Connect”。
- 选择所需的表并加载数据。
- 使用“Get Data > Web”提取汇率(https://app.exchangerate-api.com)。
- 在 Power Query 中,转换并格式化所有表格。
- 将汇率与销售额合并以转换数值。
- 创建可视化效果(条形图、KPI、地图)。
现在,您拥有一份可以与来自三个不同来源的数据进行通信的报告。
请记住:
- 除非您需要实时数据,否则请使用导入模式。
- 谨慎地组合数据,先进行清理,然后根据需要进行关联或连接。
- 不要过度混合所有可能的来源。从小规模开始,并根据需要扩展。
- 如果您是新手,请尝试使用 Excel + OData + Web API,所有这些都免费且易于使用。
关于SQL Server数据(本地)的重要说明
由于您的 SQL Server 数据是本地来源,因此您需要设置 Power BI 本地数据网关。将此网关视为允许 Power BI(在云端运行)安全连接到您本地 SQL Server 数据库的安全桥梁。
配置网关后,您可以为报告安排自动数据刷新。这意味着您的仪表板将始终保持最新的销售数据,而无需您手动刷新 Power BI Desktop 中的数据。您可以直接在 Power BI 服务中设置刷新频率(例如,每日、每小时)。
如果没有网关,Power BI 将无法访问您的本地 SQL Server,每次更新报表时,您都不得不手动导入销售数据。
小结
在 Power BI 中连接多个数据源不仅仅是可能,更是该平台最强大的功能之一。Power BI 让从本地 Excel 文件、云平台、SQL 数据库、实时 API 等各种数据源提取数据变得非常简单(且功能强大)。它让您可以灵活地将所有这些数据融合成一份统一、富有洞察力的报表。然而,成功的关键在于管理数据关系、选择正确的连接模式以及规划刷新需求。只需稍加练习,您就能轻松构建功能强大的多源仪表板,展现完整的数据。
评论留言