PostgreSQL

总结

项目 说明
发布状态 正式版
产品 Excel
Power BI(语义模型)
Power BI(数据流)
Fabric(数据流 Gen2)
Power Apps(数据流)
Dynamics 365 Customer Insights
Analysis Services
支持的身份验证类型 数据库(用户名/密码)
函数参考文档 PostgreSQL.Database

注意

由于部署计划和特定于主机的功能,某些功能可能只存在于一个产品中。

先决条件

自 2019 年 12 月版本起,NpgSQL 4.0.10 随 Power BI Desktop 提供,因此无需进行其他安装。 GAC 安装将替代随 Power BI Desktop 提供的版本,这是默认值。 支持通过 Power BI 服务中的云进行刷新,也支持通过本地数据网关在本地进行刷新。 要在没有本地数据网关的情况下从 Power BI 服务刷新数据,必须采用允许从 Azure 上的 Power BI 服务直接连接的方式托管 PostgreSQL。 Microsoft Azure 中托管的 PostgreSQL 本机支持此功能。 对于其他托管环境,请咨询托管提供商,了解如何配置 PostgreSQL,以便从 Internet 直接访问。 如果将 PostgreSQL 配置为无法从 Internet 直接访问(出于安全性建议),则需要使用本地数据网关进行刷新。 在 Power BI 服务中,将使用 NpgSQL 4.0.10,而本地刷新将使用 NpgSQL 的本地安装(如果可用),否则使用 NpgSQL 4.0.10。

对于 2019 年 12 月之前发布的 Power BI Desktop 版本,必须在本地计算机上安装 NpgSQL 提供程序。 要安装 NpgSQL 提供程序,请转到发布页面,搜索 v4.0.10,然后下载并运行 .msi 文件。 提供程序体系结构(32 位或 64 位)需要与要使用连接器的产品的体系结构相匹配。 安装时,确保选择 NpgSQL GAC 安装,以确保将 NpgSQL 本身添加到计算机。

建议使用 NpgSQL 4.0.10。 NpgSQL 4.1 和更高版本因 .NET 版本不兼容而无法正常工作。

选中了 GAC 安装的 Npgsql 安装程序。

对于 Power Apps,必须在本地计算机上安装 NpgSQL 提供程序。 要安装 NpgSQL 提供程序,请转到发布页面并下载相关版本。 下载并运行安装程序(NpgSQL-[版本号].msi)文件。 确保选择 NpgSQL GAC 安装,并在完成后重启计算机,使此安装生效。

支持的功能

  • 导入
  • DirectQuery(Power BI 语义模型)
  • 高级选项
    • 命令超时(分钟)
    • Native SQL 语句
    • 关系列
    • 在完整层次结构中导航

从 Power Query Desktop 连接到 PostgreSQL 数据库

安装匹配的 Npgsql 提供程序后,可以连接到 PostgreSQL 数据库。 请执行以下步骤来建立连接:

  1. 在连接器选项中选择“PostgreSQL 数据库”选项。

  2. 在出现的 PostgreSQL 数据库对话框中,提供服务器和数据库的名称。

    Power BI 中的 PostgreSQL 连接生成器。

  3. 选择导入DirectQuery 数据连接模式。

  4. 如果这是首次连接到此数据库,请在数据库身份验证类型的用户名密码框中输入 PostgreSQL 凭据。 选择要应用身份验证设置的级别。 然后选择“连接”。

    输入 PostgreSQL 用户名和密码。

    有关使用身份验证方法的详细信息,请转到使用数据源进行身份验证

    注意

    如果连接未加密,系统会通过以下消息提示您。

    Azure SQL 数据库加密支持。

    选择确定以使用未加密的连接来连接到数据库,或按照启用数据库引擎的加密连接中的说明,设置与 PostgreSQL 数据库的加密连接。

  5. 导航器中,选择所需的数据库信息,然后选择加载以加载数据,或是选择转换数据以继续在 Power Query 编辑器中转换数据。

    显示 PostgreSQL 数据库中的人力资源员工数据的 Power Query Desktop 导航器。

从 Power Query Online 连接到 PostgreSQL 数据库

请执行以下步骤来建立连接:

  1. 在连接器选项中选择“PostgreSQL 数据库”选项。

  2. 在出现的 PostgreSQL 数据库对话框中,提供服务器和数据库的名称。

    Power Query Online 中的 PostgreSQL 连接生成器。

  3. 选择要使用的本地数据网关的名称。

  4. 选择“基本”身份验证类型,并在“用户名”和“密码”框中输入 PostgreSQL 凭据。

  5. 如果你的连接未加密,请清除“使用加密的连接”。

  6. 选择“下一步”以连接到数据库。

  7. “导航器”中选择所需的数据,然后选择“转换数据”以在 Power Query 编辑器中转换数据。

使用高级选项进行连接

Power Query Desktop 提供了一组高级选项,你可以根据需要将其添加到查询中。

PostgreSQL 连接对话框中包括的高级选项。

下表列出了可在 Power Query Desktop 中设置的所有高级选项。

高级选项 说明
命令超时(分钟) 如果连接持续时间超过 10 分钟(默认超时),你可以输入另一个值(以分钟为单位),使连接保持打开更长时间。 此选项仅在 Power Query Desktop 中可用。
SQL 语句 有关信息,请参阅使用本机数据库查询从数据库导入数据
包含关系列 如果选中此框,则会包含可能与其他表存在关系的列。 如果清除此框,则你看不到这些列。
在完整层次结构中导航 如果选中此框,导航器将显示你要连接到的数据库中的表的完整层次结构。 如果清除此框,导航器仅显示列和行包含数据的表。

选择所需的高级选项后,在 Power Query Desktop 中选择“确定”以连接到 PostgreSQL 数据库。

本机查询折叠

默认情况下,本机查询折叠处于启用状态。 将根据正常的导入或直接查询逻辑,在本机查询的基础上应用能够折叠的操作。 本机查询折叠不适用于 Value.NativeQuery() 中存在的可选参数。

在极少数情况下,在启用本机查询折叠时折叠无法正常工作,可以将其禁用。 要禁用本机查询折叠,请在高级编辑器中将 Value.NativeQuery()EnableFolding 标志设置为 false

示例:Value.NativeQuery(target as any, query, null, [EnableFolding=false])

疑难解答

本机查询可能会引发以下错误:

We cannot fold on top of this native query. Please modify the native query or remove the 'EnableFolding' option.

一个基本故障排除步骤是检查 Value.NativeQuery() 中的查询是否引发相同的错误,其中包含一个 limit 1 子句:

select * from (query) _ limit 1