Fabric中的镜像功能使您能够轻松避开复杂的ETL(提取转换加载)过程,将您现有的Snowflake数据仓库数据与Microsoft Fabric中的其他数据集成。 可以将现有的 Snowflake 数据直接复制到 Fabric 的 OneLake 中。 在 Fabric 中,可以解锁强大的商业智能、人工智能、数据工程、数据科学和数据共享方案。
有关在 Fabric 中配置用于镜像的 Snowflake 数据库的教程,请参阅 Tutorial:从 Snowflake 配置Microsoft Fabric镜像数据库。
为什么在 Fabric 平台中使用镜像?
在 Fabric 中使用镜像时,无需将来自多个供应商的不同服务拼凑在一起。 相反,您可以享受一个高度集成、端到端且易于使用的产品,该产品旨在简化您的分析需求,专为Microsoft、Snowflake和数千种技术解决方案之间的开放合作而构建,这些解决方案能够读取开源Delta Lake表格式。
内置了哪些分析体验?
镜像数据库是 结构数据仓库 中的项,不同于 仓库 和 SQL 分析终结点。
镜像会在 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 STREAMSELECT tableSHOW tablesDESCRIBE 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 资源消耗异常升高,并造成 Fabric 容量激增。 首先,请仅选择分析场景所需的表。 可以根据需要稍后添加表。
- 监控是否出现异常的重新设种。 全量重载会对整张表进行处理,并产生与表的大小成正比的计算开销。 架构更改(包括 DBT 等工具触发的更改)可能会导致连续重新分配。 在“镜像状态”页面中查看出现重复初始复制行为的表,并查阅下面的重新设定种子部分,了解触发条件和故障排除指导。
- 请注意,镜像同步会持续进行。 镜像当前不支持计划或复制窗口。 复制器会持续轮询变更,这会持续产生 Snowflake 计算资源消耗。 相应地规划 Snowflake 预算。
有关 Snowflake 特定云查询成本的详细信息,请参阅 Snowflake 文档:了解总体成本。