镜像Microsoft Fabric中的雪花

Fabric中的镜像功能使您能够轻松避开复杂的ETL(提取转换加载)过程,将您现有的Snowflake数据仓库数据与Microsoft Fabric中的其他数据集成。 可以将现有的 Snowflake 数据直接复制到 Fabric 的 OneLake 中。 在 Fabric 中,可以解锁强大的商业智能、人工智能、数据工程、数据科学和数据共享方案。

有关在 Fabric 中配置用于镜像的 Snowflake 数据库的教程,请参阅 Tutorial:从 Snowflake 配置Microsoft Fabric镜像数据库

为什么在 Fabric 平台中使用镜像?

在 Fabric 中使用镜像时,无需将来自多个供应商的不同服务拼凑在一起。 相反,您可以享受一个高度集成、端到端且易于使用的产品,该产品旨在简化您的分析需求,专为Microsoft、Snowflake和数千种技术解决方案之间的开放合作而构建,这些解决方案能够读取开源Delta Lake表格式。

内置了哪些分析体验?

镜像数据库是 结构数据仓库 中的项,不同于 仓库SQL 分析终结点

Snowflake 的 Fabric 数据库镜像示意图。

镜像会在 Fabric 工作区中创建以下项:

  • 镜像化的数据库项。 这可实现数据工程、数据科学等下游方案。 镜像管理:
    • 将托管表和视图数据复制到 OneLake,并转换为适合分析的 Parquet 格式。
    • 使用快捷方式将 Iceberg 表元数据复制到 OneLake ,并将其转换为包含 Iceberg 表的存储。 OneLake 会自动将这些 Iceberg 表转换为 Delta Lake 格式的表,以便能够在 Fabric 工作负载之间使用。
  • SQL 分析终结点

重要

Iceberg 表支持:如果选择镜像 Iceberg 表,则必须提供与包含 Iceberg 表数据的基础存储的存储连接。 只有通过同一存储连接可访问的 Iceberg 表才能一起进行镜像。 若要查找 Iceberg 表的存储位置,请在 Snowflake 中运行 SYSTEM$GET_ICEBERG_TABLE_INFORMATION 系统功能。 有关详细信息,请参阅教程:从 Snowflake 配置Microsoft Fabric镜像数据库

每个镜像数据库都有自动生成的 SQL 分析终结点 ,在镜像进程创建的增量表的基础上提供丰富的分析体验。 用户可以访问熟悉的 T-SQL 命令,这些命令可以定义和查询数据对象,但不能操作 SQL 分析终结点的数据显示,因为它仅为只读副本。 可以在 SQL 分析终结点中执行以下作:

  • 浏览从 Snowflake 引用 Delta Lake 表中数据的表。
  • 在无需编写任何代码的情况下创建无代码查询和视图,并以可视化方式探索数据。
  • 开发 SQL 视图、内联 TVF(表值函数)和存储过程,以在 T-SQL 中封装语义和业务逻辑。
  • 管理对象的权限。
  • 在同一工作区中查询其他仓库和数据湖库中的数据。

除了 SQL 查询编辑器, 有一个广泛的工具生态系统,可以查询 SQL 分析终结点,包括 SQL Server Management Studio (SSMS)用于 Visual Studio Code 的 MSSQL 扩展,甚至GitHub Copilot。

支持的 Snowflake 对象类型

下表列出了镜像支持哪些 Snowflake 对象类型:

对象类型 支持 注释
托管表 是的 完全支持复制
冰山表 是的 需要与基础 Iceberg 表存储建立存储连接。 只能镜像可通过同一存储连接访问的 Iceberg 表。
Views 是的 支持每 12 小时同步一次
具体化视图 是的 支持每 12 小时同步一次
外部表 No 不支持
暂时性表 No 不支持
临时表 No 不支持
动态表 No 不支持

安全注意事项

若要启用 Fabric 镜像,需要具有以下权限的 Snowflake 数据库的用户权限:

  • CREATE STREAM
  • SELECT table
  • SHOW tables
  • DESCRIBE tables

有关详细信息,请参阅 Snowflake 文档,了解流式处理表的访问控制权限流的必要权限

重要

源 Snowflake 仓库中建立的任何细粒度安全性必须在 Microsoft Fabric 的镜像数据库中进行重新配置。 有关详细信息,请参阅 Microsoft Fabric 中的 SQL 粒度权限

支持的身份验证方法

下表列出了 Snowflake 镜像支持哪些身份验证方法:

身份验证方法 支持 注释
用户名和密码 是的 Snowflake 本机身份验证
Microsoft Entra ID (SSO) 是的 通过 Entra ID 单一登录
密钥对身份验证 是的 用于服务账户场景的 RSA 密钥对
工作区标识 No 目前不支持 Snowflake

配置 Snowflake 于防火墙后进行镜像

检查网络要求以访问 Snowflake 数据源。 如果 Snowflake 数据源不可公开访问且位于专用网络中, 请创建虚拟网络数据网关安装本地数据网关 以镜像数据。 Azure 虚拟网络或网关服务器的网络必须通过专用终结点连接到 Snowflake 实例,或者受防火墙规则允许。 若要开始,请参阅 教程:从 Snowflake 配置 Microsoft Fabric 镜像数据库

专用链接 和工作区标识:

  • 专用链接:尚不支持 Fabric 工作区与 Snowflake 之间的直接 专用链接 连接。 在此期间,使用虚拟网络数据网关或本地数据网关进行专用连接。
  • 工作区标识:Snowflake 镜像当前不支持工作区标识身份验证。

镜像雪花成本考虑事项

用于将数据复制到 Fabric OneLake 的 Fabric 计算是免费的。 镜像存储可以免费使用,但免费限额取决于容量。 有关详细信息,请参阅镜像成本Microsoft Fabric定价。 使用 SQL、Power BI 或 Spark 查询数据的计算按常规费率收费。

Fabric 不对用于镜像的网络数据流入 OneLake 收取费用。

数据镜像过程中,将产生与 Snowflake 和云相关的计算和查询成本:虚拟仓库计算成本和云服务计算成本。

  • Snowflake 虚拟仓库计算费用:
    • 如果 Snowflake 中的数据更改被读取,并且随后被镜像到 Fabric 中,Snowflake 端会收取计算费用。
    • 任何在后台运行以检查数据更改的元数据查询,不会收取 Snowflake 计算费用,但是生成输出数据的查询(例如 SELECT * 将唤醒 Snowflake 数据仓库)会产生计算费用。
  • Snowflake 服务计算费用:
    • 尽管后台任务没有任何计算费用,例如创作、元数据查询、访问控制、显示数据更改,甚至 DDL 查询,但存在与这些查询相关的云成本。
    • 根据你拥有的 Snowflake 版本类型,你将因任何云服务成本而被收取相应的费用。

在以下屏幕截图中,你可以看到关联到 Snowflake 数据库并镜像到 Fabric 的虚拟仓库和云服务的计算成本。 在这种情况下,云服务计算成本中的大部分(用黄色标示)来自之前提到的点的数据更改查询。 虚拟仓库的计算费用(蓝色)完全来源于从 Snowflake 读取的数据更改,并被镜像到 Fabric 中。

Snowflake 成本图的屏幕截图。

成本优化建议

为尽量降低因镜像而产生的 Snowflake 计算成本,请考虑以下最佳实践:

  • 重用现有仓库。 不要创建专用的镜像仓库,而是将镜像配置为使用应用程序已用于更新源表的同一个仓库。 此方法可避免不必要的仓库唤醒和自动暂停周期。 当应用程序更新表时,镜像复制进程会在仓库仍处于活动状态时几乎立即捕获这些更改,因此您无需唤醒另一个仓库。 某些组织可能更喜欢专用仓库进行预算隔离。 这种首选项是成本节省与预算粒度之间的权衡。
  • 仅镜像你需要的表。 镜像整个数据库可能会导致 Snowflake 资源消耗异常升高,并造成 Fabric 容量激增。 首先,请仅选择分析场景所需的表。 可以根据需要稍后添加表。
  • 监控是否出现异常的重新设种。 全量重载会对整张表进行处理,并产生与表的大小成正比的计算开销。 架构更改(包括 DBT 等工具触发的更改)可能会导致连续重新分配。 在“镜像状态”页面中查看出现重复初始复制行为的表,并查阅下面的重新设定种子部分,了解触发条件和故障排除指导。
  • 请注意,镜像同步会持续进行。 镜像当前不支持计划或复制窗口。 复制器会持续轮询变更,这会持续产生 Snowflake 计算资源消耗。 相应地规划 Snowflake 预算。

有关 Snowflake 特定云查询成本的详细信息,请参阅 Snowflake 文档:了解总体成本

后续步骤