雪花

总结

说明
发布状态 正式发布
产品 Power BI(语义模型)
Power BI(数据流)
Fabric(数据流 Gen2)
Power Apps(数据流)
支持的身份验证类型 Snowflake(用户名/密码), Microsoft 帐户 (Microsoft Entra ID)
功能参考文档

注意

由于部署计划和主机特定功能的缘故,某些功能可能在一个产品中存在,而在其他产品中不存在。

注意

自 2025 年 1 月以来,我们引入了 Snowflake 连接器的新实现,目前以预览版提供。 详细了解此功能

支持的功能

  • 导入
  • DirectQuery(Power BI 语义模型)
  • 高级选项
    • 指定要用作角色名称的文本值
    • 关系列
    • 连接超时时间(以秒为单位)
    • 命令超时(以秒为单位)
    • 数据库
    • 本机 SQL 语句

从 Power Query Desktop 连接到 Snowflake 数据仓库

注意

自 2025 年 3 月版 Power BI Desktop 以来, 默认启用新的 Snowflake 连接器实现 选项。 如果需要还原到旧连接器行为,可以取消选择“选项和设置”中的选项,或者从现有查询中删除 Implementation="2.0" 标志。

要连接到 Snowflake 计算仓库,请执行以下步骤:

  1. 从 Power BI Desktop 的主页功能区中选择获取数据,从左侧的类别中选择数据库,选择 Snowflake,然后选择连接

    “获取数据”对话框的屏幕截图,其中显示了 Snowflake 数据库选择。

  2. 在显示的 Snowflake 窗口中,在服务器中输入 Snowflake 服务器的名称,然后在仓库中输入 Snowflake 计算仓库的名称。

    Snowflake 对话框的屏幕截图,其中显示了选中的“导入”单选按钮。

  3. 或者,在要用于修改连接查询的任何高级选项中输入值,例如用作角色名称的文本值或命令超时。 详细信息:使用高级选项进行连接

  4. 选择“确定”

  5. 要登录到 Snowflake 计算仓库,请输入用户名和密码,然后选择连接

    Snowflake 凭据提示的屏幕截图,其中显示了“用户名”和“密码”字段。

    注意

    输入特定 Snowflake 服务器的用户名和密码之后,Power BI Desktop 即可在后续连接尝试中使用这些凭据。 可以通过“文件”>“选项和设置”>“数据源设置”来修改这些凭据。 详细信息:更改身份验证方法

    如果要使用 Microsoft 帐户选项,必须在 Snowflake 端配置 Snowflake Microsoft Entra ID 集成。 详细信息:Power BI SSO 到 Snowflake - 入门

  6. 导航器中,选择要在 Power BI Desktop 中导入和使用的一个或多个元素。 然后选择加载以在 Power BI Desktop 中加载表;或选择转换数据以打开 Power Query 编辑器,可在其中筛选和优化要使用的数据集,然后将该优化数据集加载到 Power BI Desktop 中。

    导航器的屏幕截图,其中打开了测试架构数据库,并且选中了 DimProduct 表。

  7. 选择导入以将数据直接导入到 Power BI 中,或选择 DirectQuery,然后选择确定。 详细信息:在 Power BI Desktop 中使用 DirectQuery

    注意

    Microsoft Entra ID 单一登录(SSO)仅支持 DirectQuery。

    连接设置的屏幕截图,其中包含导入和 DirectQuery 选择。

从 Power Query Online 连接到 Snowflake 数据库

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

  1. 在连接器选择中选择 Snowflake 选项。

  2. 在显示的 Snowflake 对话框中,输入服务器和仓库的名称。

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

  3. 在要使用的高级选项中输入任何值。 如果 UI 中未表示任何高级选项,稍后可以在 Power Query 的高级编辑器中编辑它们。

  4. 输入连接凭据,包括选择或创建新连接、要使用的网关以及用户名和密码。

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

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

    在线导航器的屏幕截图,其中打开了测试架构数据库,并且选中了 DimProduct 表。

使用高级选项进行连接

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

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

高级选项 说明
角色名称 指定报表通过驱动程序使用的角色。 此角色必须可供用户使用,否则不会设置任何角色。
包含关系列 如果选中,则包含可能与其他表格有关系的列。 如果清除此框,则看不到这些列。
连接超时时间(以秒为单位) 指定在返回错误之前与 Snowflake 服务交互时等待响应的时间。 默认值为 0(无超时)。
命令超时(以秒为单位) 指定在返回错误之前等待查询完成的时间。 默认值为 0(无超时)。
数据库 指定仓库中的特定数据库。 此选项仅在 Power Query Desktop 中可用。
SQL 语句 有关信息,请参阅使用本机数据库查询从数据库导入数据。 此选项仅在 Power Query Desktop 中可用。

选择所需的高级选项后,请在 Power Query Desktop 中选择 确定,或在 Power Query Online 中选择 下一步 以连接到 Snowflake 数据库。

新的 Snowflake 连接器实现(预览版)

自 2025 年 1 月以来,我们引入了 Snowflake 连接器的新实现,以增强与 Snowflake 的集成,目前以预览版提供。 它使用 Arrow Database Connectivity (ADBC) 而不是 ODBC 连接到 Snowflake 并从中检索数据,从而提高性能,尤其是对于大型结果集。 随着我们继续增强和向下表中列出的此连接器添加新功能,我们鼓励你升级到最新版本,以试用并提供 反馈

释放 连接器改进
2025 年 4 月 - 添加了对 Snowflake 查询标记的支持。 例如: {"PowerQuery":true,"Host":"PBI_SemanticModel_MWC","HostContext":"PowerBIPremium-DirectQuery"}
2025 年 3 月 - 在从 Snowflake 检索数据时,提高了性能。
- 在 Power BI Desktop 中默认启用,以便新创建的连接自动使用新的连接器实现。
- 修复了自 3 月最新版本发布以来 不可见的视图 问题。
2025 年 2 月 - 通过减少元数据调用数来提高性能。
- 解决了大型结果集的重复值问题。

注意

此功能在 Power BI Desktop 的 64 位版本中受支持,在 32 位版本中不起作用。

若要在 Power BI Desktop 中访问此功能,请导航到 “选项”和“设置 ”(在“ 文件 ”选项卡下) >选项>预览功能,然后选择复选框以启用 “使用新的 Snowflake 连接器实现 ”选项。 选项打开后,所有新创建的连接将自动使用新的连接器实现。 自 2025 年 3 月版 Power BI Desktop 以来,此选项默认处于启用状态。 如果要还原到旧连接器行为,可以取消选择“选项和设置”中的选项。

Power BI Desktop 中新 Snowflake 实现选项的屏幕截图。

现有连接保持不变。 可以通过在查询中添加Implementation="2.0"Snowflake.Databases标志来试用该功能,如下所示。 此属性区分所使用的连接器版本。

若要在 Dataflow Gen2 中访问此功能,请在配置从 Snowflake 获取数据后,转到顶部功能区中的 高级编辑器 ,并在 Implementation="2.0" 查询中添加 Snowflake.Databases 标志,如下所示以使用此新连接器。

Source = Snowflake.Databases("contoso.snowflakecomputing.com", "CONTOSO_WH", [Implementation="2.0"])

注意

使用本地数据网关时,请注意支持的最低版本为 2025 年 1 月。 建议使用最新版本来评估具有最新功能的此功能。

为了帮助诊断任何潜在问题,可以在 Mashup 日志中找到 ImplementationDriverType 详细信息。 例如:

{"Start":"2024-11-02T00:14:02.7968686Z","Action":"Engine/Module/Snowflake/IO/Snowflake/Implementation","ResourceKind":"Snowflake","ResourcePath":"powerbi.snowflakecomputing.com ;DEMO_WH","HostProcessId":"29200","Implementation":"2.0","DriverType":"ADBC","ProductVersion":"2.139.0.0 (Main)+eda56ecd858054173a4d11db9c63a6da5cf92a99","ActivityId":"106f16b6-cfbb-4853-9f20-ed45486486d2","Process":"Microsoft.Mashup.Container.NetFX45","Pid":38560,"Tid":1,"Duration":"00:00:00.0000291"}

目前,此连接器具有以下已知限制:

  • 不支持多语句查询。
  • 不支持持续时间类型。
  • 不支持关系。

故障排除

错误:SQL 编译错误:对象不存在,或者无法执行操作

当系统找不到指定的对象时,会发生此错误。 通常,此错误是由于用户将无效的数据库名称设置为其默认数据库造成的。

确保对属性 DEFAULT_NAMESPACE 使用有效的默认数据库名称:DESC USERusername

更新默认的数据库名称:alter userusername set DEFAULT_NAMESPACE=<database name>.<schema name>。 有关详细信息,请参阅 Snowflake 文档 - https://docs.snowflake.com/en/sql-reference/sql/alter-user

限制和已知问题

数据库名称中的连字符

如果数据库名称中具有连字符,则可能会遇到 ODBC: ERROR[42000] SQL compilation error。 此问题在 2024 年 9 月版本中得到解决。

布尔数据类型的切片器视觉对象

布尔数据类型的切片器视觉对象在 2024 年 6 月版本中没有按预期运行。 此非功能性是一个已知问题。 作为临时解决方案,用户可以通过导航到以下位置来将报表中的布尔数据类型转换为文本:“传输”->“数据类型”->“文本”。 2024 年 10 月版本中提供了修补程序。

在 Implementation=“2.0”时视图不可见

在 Power BI Desktop 2025 年 3 月版本的某些版本中,在使用新的 Snowflake 连接器时,可能会遇到视图不可见的问题。Implementation="2.0" 自 Power BI Desktop 2025 年 3 月发布以来,此问题已修复。 升级安装以重试。

TIMESTAMP_NTZ值为 UTC,实现=“2.0”

TIMESTAMP_LTZ类型不会转换为本地时区,但在使用新的 Snowflake 连接器时返回 UTC 值。Implementation="2.0" 例如,从 Snowflake 执行 SELECT CURRENT_TIMESTAMP 会返回 UTC 时间,而不是用户的本地时区。 目前正在进行修复工作,修复程序发布后将更新文档。

使用 Implementation=“2.0” 时,索引超出了数组的边界

在某些情况下,使用新的 Snowflake 连接器时会抛出错误,并指明 Index was outside the bounds of the arrayImplementation="2.0")。 解决方法是从查询中删除 Implementation="2.0" 值。 目前正在进行修复工作,修复程序发布后将更新文档。

其他信息