Power BI 微课堂 | 第3课:从关系数据源中获取数据

published: 2023-05-08

今天,我们继续来学习:从关系数据源中获取数据,学习如何从 Microsoft SQL Server 等关系数据库中获取数据。

PS:本节课不提供练习数据源,请参考步骤在业务环境中使用。


》关系型数据库

如果企业使用关系数据库存储销售数据,你可以使用 Power BI Desktop 直接连接到数据库,而不是使用导出的平面文件。

将 Power BI 连接到数据库将帮助你监视业务进度并确定趋势,以便预测销售数据、计划预算并设置性能指标和目标。Power BI Desktop 可以连接到云或本地的多个关系数据库。


》示例操作

Tailwind Traders 的销售团队已请求你连接到企业的本地 SQL Server 数据库,并将销售数据导入 Power BI Desktop,以便可以构建销售报表。


一、连接到关系数据库中的数据

可以使用 Power BI Desktop 菜单栏中的“获取数据(Get Data)”按钮,并为关系数据库选择适用的选项。在此示例中,我们选择“SQL Server”选项,如以下截图所示。

请注意,“获取数据”按钮旁边提供了“快速访问数据源”的选项,如“SQL Server”。

下一步,是在“SQL Server 数据库”窗口中输入 数据库服务器地址 和 数据库名称。数据连接模式下有两个选项:“导入”(默认选择,推荐)和“DirectQuery”。

大多数情况下,选择“导入”即可。也可在“SQL Server 数据库”窗口中找到其他高级选项,但本例中可将其忽略。

添加服务器和数据库名称后,系统将提示你使用用户名和密码登录。这里有三个登录选项:

  • Windows:使用你的 Windows 帐户(Azure Active Directory 凭据)。

  • 数据库:使用数据库凭据。例如,SQL Server 有自己的登录和身份验证系统(有时会用到)。如果数据库管理员为你提供了对数据库的唯一登录,则可能需要在“数据库”选项卡上输入这些凭据。

  • Microsoft 帐户:使用你的 Microsoft 帐户凭据。此选项通常用于 Azure 服务。


二、选择要导入的数据

数据库连接到 Power BI Desktop 后,“导航器”窗口将显示数据源中可用的数据(本例为 SQL 数据库)。

你可以选择一个表或实例来预览其内容,以确保将正确的数据加载到 Power BI 模型中。选中要引入 Power BI Desktop 的数据表的复选框,然后选择“加载”或“转换数据”选项。

  • 加载:自动将数据加载到处于其当前状态的 Power BI 模型中。

  • 转换数据:在 Microsoft Power Query 中打开数据,你可以在其中执行一些操作,例如删除不必要的行或列、对数据进行分组、删除错误以及许多其他数据质量任务。


三、通过编写 SQL 查询导入数据

另一种导入数据的方法是:编写一个 SQL 查询,以仅指定所需的表和列。

若要编写 SQL 查询,请在“SQL Server 数据库”窗口中,输入服务器地址和数据库的名称,然后点击“高级选项”旁的箭头,以展开此部分并查看选项。

在“SQL 语句”框中,编写查询语句,然后选择“确定”。 在此示例中,你将使用“Select”SQL 语句从 SALES 表中加载 ID、NAME 和 SALESAMOUNT 列。


四、更改数据源设置

创建数据源连接并将数据加载到 Power BI Desktop 后,可以随时返回和更改连接设置。由于企业内部的安全策略(例如,当需要每 90 天更新一次密码时),通常需要执行此操作。

你可以更改数据源、编辑权限或清除权限。在“主页”选项卡上,选择“转换数据”,然后选择“数据源设置”选项。

从显示的数据源列表中,选择要更新的数据源。然后,可以右键单击该数据源以查看可用的更新选项,也可以使用窗口左下角的更新选项按钮。

选择所需的更新选项,根据需要更改设置,然后应用所做的更改。

还可以从 Power Query 中更改数据源设置。选择表,然后在“主页”功能区上选择“数据源设置”选项。或者,你可以转到屏幕右侧的“查询设置”面板,然后选择“源”旁边的“设置”图标(或双击“选择源”)。在显示的窗口中,更新服务器和数据库的详细信息,然后选择“确定”。

完成更改后,选择“关闭并应用”,将这些更改应用于数据源设置。


》编写 SQL 语句

如上所述,你可以使用 SQL 查询将数据导入到 Power BI 模型。SQL 代表结构化查询语言,是一种标准化的编程语言,用于管理关系数据库和执行各种数据管理操作。

常见的用例是:数据库具有一个大型表,其中包含多年的销售数据。2009 年的销售数据与你正在创建的报表不相关。

在这种情况下,SQL 非常有用.因为你可以通过在 SQL 语句中指定确切的列和行,然后将它们导入数据模型,以仅加载所需的数据集。还可以联接不同的表、运行特定计算、创建逻辑语句,并在 SQL 查询中筛选数据。

以下示例显示了一个简单查询:从 SALES 表中选择 ID、NAME 和 SALESAMOUNT。

SQL 查询以 Select 语句开头,该语句允许你选择要从数据库中提取的特定字段。在此示例中,你可以加载 ID、NAME 和 SALESAMOUNT 列。

SELECT

ID

, NAME

, SALESAMOUNT

FROM

FROM 指定要从中提取数据的表的名称。在本例中,它是 SALES 表。下面的示例展示了完整的 SQL 查询:

SELECT

ID

, NAME

, SALESAMOUNT

FROM

SALES

使用 SQL 查询导入数据时,请尝试避免在查询中使用通配符 ()。如果在 SELECT 语句中使用通配符 (),则将从指定的表中导入所有不需要的列。

下面的示例演示使用通配符的查询。

SELECT *

FROM

SALES

通配符 () 将导入 Sales 表中的所有列。不建议使用此方法,因为它将导致数据模型中出现冗余数据,进而引发性能问题,并且需要额外的步骤来规范化用于报告的数据。

所有查询还应具有 WHERE 子句。此子句将筛选行,以仅选择所需的筛选记录。

在此示例中,如果要获取 2020 年 1 月 1 日之后的最新销售数据,请添加一个 WHERE 子句。改进后的查询如下例所示。

SELECT

ID

, NAME

, SALESAMOUNT

FROM

SALES

WHERE

OrderDate >= ‘1/1/2020’

最佳做法应该是,避免直接在 Power BI 中执行此操作,而是考虑在视图中编写此类查询。视图是关系数据库中的对象,类似于表。视图具有行和列,并且可以包含 SQL 语言中几乎每个运算符。

如果 Power BI 使用视图,则在检索数据时,它会参与查询折叠,这是 Power Query 的一项功能。稍后将对查询折叠进行说明,但简言之,Power Query 会根据以后使用数据的方式来优化数据检索。



以上就是关于「从关系数据源中获取数据」的全部内容。感谢您的耐心阅读,更多 Power BI 学习资源,请持续关注优阅达大数据生态。