总结
| 项 | 说明 |
|---|---|
| 发布状态 | 正式发布 |
| 产品 | Power BI(语义模型) Power BI (数据流) Fabric (数据流 Gen2) Power Apps(数据流) |
| 支持的身份验证类型 | Snowflake (用户名/密码), Microsoft 帐户 (Microsoft Entra ID), 密钥对身份验证 (ADBC), 服务主体 (SPN) |
| 功能参考文档 | — |
注意
密码输入字段仅在必要时才会根据上传的证书类型自动显示。 用户上传证书后,系统会检测它是加密还是未加密,并有条件地显示通行短语对话框。 支持加密密钥和未加密密钥。
注意
由于部署计划和主机特定的功能,某些功能可能存在于一个产品中,但不是其他功能。
支持的功能
- 导入
- DirectQuery (Power BI语义模型)
- 高级选项
- 指定要用作角色名称的文本值
- 关系列
- 连接超时时间(以秒为单位)
- 命令超时(以秒为单位)
- 数据库
- 本机 SQL 语句
支持的身份验证类型
注意
用户名/密码身份验证模式将弃用。 在此处阅读详细信息。 可以在 Fabric 路线图的“连接”下找到详细信息。
数据流 Gen1 不支持密钥对认证。
Snowflake 连接器支持以下身份验证方法:
Microsoft Entra ID(建议):在不存储用户名或密码的情况下启用基于标识的强身份验证。
- 在 Microsoft Fabric 中,此身份验证方法可由受支持体验(如数据集和数据流 Gen2)中的工作区标识提供支持,从而允许 Fabric 使用工作区的托管标识向 Snowflake 进行身份验证。
工作区标识:与 Microsoft Fabric 工作区关联的托管标识。 使用 Microsoft Entra ID 进行身份验证时,支持的 Fabric 体验(如数据集和数据流 Gen2)可以使用工作区标识向 Snowflake 进行身份验证。 此方法允许 Fabric 使用绑定到工作区的标识(而不是单个用户凭据)访问 Snowflake。
密钥对身份验证(ADBC):基于证书的身份验证用于支持的场景。
服务主体(SPN):对于需要非用户、应用程序级标识的方案,Snowflake 支持服务主体。 支持取决于 Snowflake 配置和使用的身份验证方法。
从 Power Query Desktop 连接到 Snowflake 数据仓库
要连接到 Snowflake 计算仓库,请执行以下步骤:
从 Power BI Desktop 中的
Home Get Data>, 从左侧的类别中选择Database ,选择Snowflake ,然后选择Connect 。
在显示的 Snowflake 窗口中,在服务器中输入 Snowflake 服务器的名称,然后在仓库中输入 Snowflake 计算仓库的名称。
或者,在要用于修改连接查询的任何高级选项中输入值,例如用作角色名称的文本值或命令超时。 要了解详细信息,请转到通过高级选项进行连接。
选择“确定”。
要登录到 Snowflake 计算仓库,请输入用户名和密码,然后选择连接。
注意
输入特定 Snowflake 服务器的用户名和密码后,Power BI Desktop 在后续连接尝试中使用相同的凭据。 可以通过“文件”>“选项和设置”>“数据源设置”来修改这些凭据。 有关详细信息,请转到 “更改身份验证方法”。
如果要使用 Microsoft 账户选项,则必须在 Snowflake 端配置 Snowflake Microsoft Entra ID 集成配置。 有关详细信息,请转到 Power BI SSO to Snowflake - 入门。
在 Navigator 中,选择要在 Power BI Desktop 中导入和使用一个或多个元素。 然后选择 Load 以在 Power BI Desktop 中加载表,或Transform Data打开Power Query编辑器,可在其中筛选和优化要使用的数据集,然后将优化后的数据集加载到 Power BI Desktop 中。
选择 Import 将数据直接导入 Power BI,或选择 DirectQuery,然后选择 OK。 有关详细信息,请转到 在 Power BI Desktop 中使用 DirectQuery。
注意
Microsoft Entra ID单一登录(SSO)仅支持 DirectQuery。
从 Power Query Online 连接到 Snowflake 数据库
请执行以下步骤来建立连接:
在连接器选择中选择 Snowflake 选项。
在显示的 Snowflake 对话框中,输入服务器和仓库的名称。
在要使用的高级选项中输入任何值。 如果 UI 中未表示任何高级选项,则可以稍后在 Power Query 中的 Advanced Editor 中编辑它们。
输入连接凭据,包括选择或创建新连接、要使用的网关以及用户名和密码。
选择“下一步”以连接到数据库。
在 Navigator 中,选择所需的数据,然后选择 Transform 数据以转换Power Query Editor中的数据。
使用高级选项进行连接
Power Query提供了一组高级选项,可根据需要添加到查询。
下表列出了可以在Power Query中设置的所有高级选项。
| 高级选项 | 说明 |
|---|---|
| 角色名称 | 指定报表通过驱动程序使用的角色。 此角色必须可供用户使用。 否则,未设置任何角色。 |
| 包含关系列 | 如果选中,则包含可能与其他表格有关系的列。 如果清除此框,则看不到这些列。 |
| 连接超时时间(以秒为单位) | 指定在返回错误之前与 Snowflake 服务交互时等待响应的时间。 默认值为 0(无超时)。 |
| 命令超时(以秒为单位) | 指定在返回错误之前等待查询完成的时间。 默认值为 0(无超时)。 |
| 数据库 | 指定仓库中的特定数据库。 此选项仅在 Power Query Desktop 中可用。 |
| SQL 语句 | 有关信息,请参阅使用本机数据库查询从数据库导入数据。 此选项仅在 Power Query Desktop 中可用。 |
选择所需的高级选项后,请在 Power Query Desktop 中选择OK,或在 Power Query Online 中选择Next,以连接到 Snowflake 数据库。
Snowflake 连接器实现 2.0
2025 年 1 月,我们引入了 Snowflake 连接器的新实现,以增强与 Snowflake 的集成。 此连接器自 2025 年 7 月起正式发布。 建议将 Power BI Desktop 和本地数据网关升级到最新版本,以便从最新的功能中受益。 向我们提供反馈 ,帮助我们继续改进连接器。
Snowflake 连接器实现 2.0 是使用开源 箭头数据库连接 (ADBC)驱动程序生成的。 ADBC 提供了一组标准接口,用于与箭头数据交互,这对于提取大型数据集特别高效,开销最小,且无需序列化或复制。 ADBC 驱动程序还包含安全增强功能,例如内存安全和垃圾回收。 此外,与开放源代码社区的合作可实现更快速的更新,利用新式工具和安全开发生命周期(SDL)流程。
为了使你能够利用这些性能和安全增强功能,从 2025 年 7 月开始,桌面中的所有新创建连接都会自动使用 2.0 实现。 还可以通过更新现有查询并按如下所示添加 Implementation="2.0" 标志 Snowflake.Databases 来测试 2.0 实现。
Source = Snowflake.Databases("contoso.snowflakecomputing.com", "CONTOSO_WH", [Implementation="2.0"])
为了帮助诊断任何潜在问题,您可以在 Mashup 日志中找到 Implementation 和 DriverType 的详细信息,如以下示例所示。 如果在过渡期间遇到任何问题,请联系支持人员。 同时,若要自我缓解,可以删除 Implementation="2.0" 以继续使用 ODBC 连接器以避免业务中断,然后再解决问题。 但是,如果使用密钥对身份验证,则无论此设置如何,始终使用 ADBC 驱动程序。
{
"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"
}
自 2025 年 7 月发布以来,以下选项可用:
-
UseHighPrecision:控制应如何处理 Snowflake NUMBER(38,0) 字段的精度。 如果未指定任何值,连接器将使用SHOW PARAMETERS LIKE 'ODBC_TREAT_DECIMAL_AS_INT'向 Snowflake 发起查询。 如果未设置任何值,连接器将使用列指定的规模。 值true将 NUMBER(38,0)视为十进制类型。false该值将 NUMBER(38,0)视为 Int64 类型。 如果刻度大于 0,则列被视为 Double 类型。 -
DateTimePrecision:控制 Snowflake Timestamp 值的精度处理方式。 Snowflake 通常以纳秒精度存储时间戳值。 在 ADBC 中,根据 Snowflake 的说法,此精度可能会导致 1677 之前或 2262 之前的日期溢出异常。 此选项的有效值为 null,nanoseconds或microseconds。 默认情况下,null 值使用nanoseconds。 建议在 1677 之前或 2262 之后需要日期的用户使用此设置microseconds。 如果用户需要在 1677 之前或 2262 年之后保留第 1000 万位的精度,我们建议保留 ODBC 驱动程序。
如果需要使用代理连接到 Snowflake,请参阅 代理设置说明。 驱动程序将环境变量用于代理设置。
下表包含过去版本中发布的连接器增强功能的摘要:
| 释放 | 连接器改进 |
|---|---|
| 2025 年 7 月 | • 布尔列返回布尔类型,修复了布尔列在空记录集架构(包括元数据)中被视为字符串类型的问题。 • 将最大时间戳精度设置为微秒的新设置。 • 改进了持续时间支持。 • 向 ADBC 添加了对导航属性的支持。 • 改进了 ADBC 驱动程序中的跟踪功能,现在可以通过驱动程序层跟踪“ActivityId”。 |
| 2025 年 4 月 | • 添加了对 Snowflake 查询标记的支持。 例如: {"PowerQuery":true,"Host":"PBI_SemanticModel_MWC","HostContext":"PowerBIPremium-DirectQuery"} |
| 2025 年 3 月 | • 从 Snowflake 检索数据时提高了性能。 • 在 Power BI Desktop 中默认启用,以便新创建的连接自动使用新的连接器实现。 • 修复了自三月份最新版本以来视图不可见的问题。 |
| 2025 年 2 月 | • 通过减少元数据调用数来提高性能。 • 解决了大型结果集的重复值问题。 |
注意
使用本地数据网关时,请注意支持的最低版本为 2025 年 1 月。 建议使用具有最新功能的最新版本。
注意
此功能在 64 位版本的 Power BI Desktop 中受支持,在 32 位版本中不起作用。
故障排除
错误:SQL 编译错误:对象不存在,或者无法执行操作
当系统找不到指定的对象时,会发生此错误。 通常,此错误是由于用户将无效的数据库名称设置为其默认数据库造成的。
确保对属性 DEFAULT_NAMESPACE 使用有效的默认数据库名称:DESC USERusername
更新默认的数据库名称:alter userusername set DEFAULT_NAMESPACE=<database name>.<schema name>。 有关详细信息,请转到 Snowflake 文档。
限制和注意事项
Snowflake 连接器实现 2.0 中的已知问题
目前, Snowflake 连接器实现 2.0 具有以下已知问题。 目前正在进行修复工作,修复程序发布后将更新文档。
- 包含
count distinct逻辑的 Snowflake 查询返回不正确的结果。 - 内存使用率增加。 使用
Implementation="2.0",总体加载时间通常更快,但内存消耗也可能更高,在某些情况下,会导致Resource Governing: This operation was canceled because there wasn't enough memory to finish running it. Either reduce the memory footprint of your dataset by doing things such as limiting the amount of imported data, or if using Power BI Premium, increase the memory of the Premium capacity where this dataset is hosted.
已解决的问题
数据库名称中的连字符
如果数据库名称中具有连字符,则可能会遇到 ODBC: ERROR[42000] SQL compilation error。 此问题在 2024 年 9 月版本中得到解决。
布尔数据类型的切片器视觉对象
布尔数据类型的切片器视觉对象在 2024 年 6 月版本中没有按预期运行。 此非功能性是一个已知问题。 作为临时解决方案,用户可以通过导航到以下位置来将报表中的布尔数据类型转换为文本:“传输”->“数据类型”->“文本”。 2024 年 10 月版本中提供了修补程序。
在 Implementation=“2.0”时视图不可见
在 2025 年 3 月某些版本的 Power BI Desktop 中,您在使用 Snowflake 连接器实现 2.0 时,可能会遇到视图不可见的问题(Implementation="2.0")。 自 2025 年 3 月最新版 Power BI Desktop 以来,此问题已修复。 若要重试,请升级安装。