本文是 Azure Synapse Spark 向 Microsoft Fabric 迁移最佳做法系列中的第 4 阶段,共 4 个阶段。
在迁移的最后阶段使用本文来验证工作负载、协调安全性和治理控制措施,并规划生产直接转换。 本文提供有关安全映射以及清单导向的验证、优化和切换准备的指导。
在这篇文章中,你将学会如何:
- 将 Synapse RBAC 和网络模式映射到 Fabric 工作区、OneLake 和管理网络控制。
- 重新连接治理工作流,包括Microsoft Purview的集成功能和标记功能。
- 使用分阶段迁移清单来验证、优化和执行切换。
- 计划在成功切换后停用遗留 Synapse Spark 资源。
访问控制
Synapse RBAC 角色(Synapse Administrator、Synapse SQL 管理员、Synapse Spark 管理员和其他角色)映射到 Fabric 工作区角色(管理员、成员、参与者、查看者)。 Fabric的模型更简单,具有四个角色。
Synapse 链接服务被 Fabric 连接所取代。 通过工作区设置>创建连接管理连接和网关。 在笔记本代码中,请将链接服务引用替换为基于密钥保管库的身份验证或直接终结点配置。
OneLake RBAC 在 "Lakehouse" 中提供精细的文件夹和表级别的数据访问控制。
网络安全
Synapse 托管 VNet 和专用终结点映射到 Fabric 托管 VNet 和托管专用终结点。 请注意,Fabric Spark 需要使用自定义池(而不是启动池)来支持托管私有终结点。
Synapse 中的自承载集成运行时(SHIR)由 Fabric 中的本地数据网关(OPDG)取代。 VNet 数据网关取代了 VNet IRs。
治理
如果将 Azure Purview 与 Synapse 配合使用,Fabric 为数据目录、数据谱系、敏感度标签和访问策略提供内部 Microsoft Purview 集成。 重新连接 Purview 帐户以扫描Fabric工作区。
迁移核对清单
使用此清单跟踪 Spark 迁移的进度。 每个阶段都基于上一个阶段。 在进入下一阶段之前,完成所有项目。
阶段 1:评估和计划
有关规划指南、迁移模式和功能比较,请参阅 阶段 1:迁移策略和规划。
- 1.1 完成 Spark 资产清单:Spark 池、笔记本、Spark 作业定义、湖数据库、Hive 元存储(HMS)数据库和笔记本中使用的链接服务。
- 1.2查看 Synapse 与Fabric功能差异。 阻塞标志:GPU 工作负载、不支持的目录 API、链接服务的依赖关系。
-
1.3 运行预重构审核:搜索所有笔记本中的特定于 Synapse 的模式(
spark.synapse.linkedService、getSecretWithLS、TokenLibrary、synapsesql)。 对受影响的笔记本进行计数。 -
1.4 检查库兼容性:在 Synapse 池上运行
pip freeze,与 Fabric Runtime 1.3 内置库进行比较。 列出需要预安装的库。 - 1.5 创建 Fabric 工作区、预配容量和创建目标 Lakehouse 项目。
- 1.6从Synapse Studio导出 Spark 池配置、自定义库和 Spark 属性。
阶段 2:设置连接和凭据
有关链接服务替换和身份验证指南,请参阅 阶段 2:Spark 工作负荷迁移 和 阶段 4:安全性和治理迁移。
- 2.1 清点所有笔记本、Spark 作业定义和 Lakehouse 数据访问中使用的 Synapse 链接服务。
2.2 通过Workspace Settings 管理连接和网关 为外部数据源(ADLS Gen2、Cosmos DB、Azure SQL 等)创建 Fabric 连接。- 2.3 为需要基于密钥的身份验证(Cosmos DB 密钥、存储帐户密钥、Kusto 令牌)的数据源设置Azure 密钥保管库。 为Fabric工作区标识配置访问策略。
- 2.4 为 ADLS Gen2 OAuth 访问配置服务主体凭据:在 Entra ID 中注册应用,授予存储 Blob 数据参与者角色,记下客户端 ID/机密/租户。
- 2.5 验证连接:在继续操作之前,从 Fabric 笔记本测试密钥保管库的机密检索和存储帐户的访问权限。
阶段 3:迁移数据和 Hive 元存储
有关湖元数据和数据访问迁移指南,请参阅 阶段 3:Hive 元存储和数据迁移 以及 迁移数据和管道。
- 3.1 创建现有 ADLS Gen2 路径的 OneLake 快捷方式(零复制,首选方法)。 使用在第 2 阶段中设置的Fabric连接进行基于数据网关的访问。
- 3.2 对于非增量文件(CSV、JSON、Parquet),请在“文件”部分创建快捷方式。 如果需要数据复制,请使用AzCopy或数据工厂复制活动。
- 3.3 迁移 Hive 元存储对象。 选择一种方法:选项 A:为所有元数据运行 HMS 导出/导入笔记本。 选项 B:对 Delta Lake DB 表使用 迁移助手,仅对非 Delta 数据库表使用 HMS 导出/导入。
- 3.4 验证 Lakehouse Explorer 中的 Delta 表自动注册。
- 3.5 验证所有导入的表和快捷方式在 Lakehouse Explorer 中可见,并且可从笔记本访问。
阶段 4:迁移 Spark 工作负载
有关项迁移、代码重构和环境设置指南,请参阅 阶段 2:Spark 工作负荷迁移。
- 4.1 为笔记本、Spark 作业定义、Spark 池和湖数据库运行 Spark 迁移助手。 查看迁移报告,了解错误和警告。
- 4.2使用目标 Spark 运行时、池配置和自定义库创建Fabric环境。 提前安装在阶段 1 中标识的缺失库。
-
4.3 重构笔记本和 SJD 代码:将
mssparkutils替换为notebookutils, 将文件路径更新到 OneLakeabfss://路径,将链接服务引用替换为密钥保管库或Fabric连接,并将不支持的spark.catalog方法替换为 Spark SQL 等效项。 -
4.4 重构连接器:Kusto/ADX - 将链接服务替换为
accessToken通过getToken()。 Cosmos DB — 将getSecretWithLS替换为getSecret(akvName, secret). -
4.5 将 Synapse 令牌提供程序(
LinkedServiceBasedTokenProvider,TokenLibrary)替换为通过spark.conf.set()的标准 OAuthClientCredsTokenProvider。 - 4.6 对重构的笔记本和 SJDs 进行端到端测试,以验证其在数据(阶段 3)和连接(阶段 2)方面的功能。
阶段 5:安全、治理和网络
有关安全、治理和网络映射指南,请参阅 阶段 4:安全性和治理迁移。
- 5.1将 Synapse RBAC 角色映射到Fabric工作区角色(管理员、成员、参与者、查看器)。
- 5.2 在文件夹和表级别配置 OneLake RBAC,以便进行精细的数据访问控制。
- 5.3 为 Spark 工作负载配置托管 VNet 和专用托管终结点,以访问专用数据源(需要自定义池)。
- 5.4 将 SHIR 替换为本地数据网关(OPDG),并将 VNet IR 替换为 VNet 数据网关。
- 5.5 重新连接 Microsoft Purview,以实现治理、数据沿袭和敏感度标签的功能。
- 5.6 根据需要查看并应用敏感度标签到迁移后的 Lakehouse 项目。
阶段 6:优化和验证
有关迁移后验证和生产就绪性指南,请参阅 阶段 4:安全性和治理迁移。
- 6.1 为 Parquet 和 Delta 工作负载启用本机执行引擎(NEE),以改进 Spark 性能。
-
6.2 对被 Power BI Direct Lake 或 SQL 分析终结点使用的表运行
OPTIMIZE VORDER。 - 6.3 运行并行工作负荷,并比较 Synapse 与 Fabric 之间的 Spark 作业结果和性能。
- 6.4将下游使用者(包括Power BI报表、API 和应用程序)重新路由到Fabric终结点。
- 6.5 使用 Monitoring Hub 和 Diagnostic Emitter 对 Fabric 工作负荷进行监视,持续至少一到两周。
阶段 7:切换
有关最终验证、下游重新路由和直接转换指南,请参阅 阶段 4:安全性和治理迁移。
- 7.1确认所有迁移的笔记本、SSD 和 Spark 作业在Fabric中成功运行。
- 7.2 通过行计数、架构验证和查询结果比较验证数据完整性。
- 7.3 将系统切换通知给利益相关者并更新文档。
- 7.4 停用 Synapse Spark 池、笔记本和相关资源。
注释
迁移后,请考虑为迁移的笔记本和 Spark 作业定义设置Fabric Git 集成。 Fabric 支持 Azure DevOps Git 集成,以实现源代码管理、分支和部署管道。 与 Synapse(使用用于 CI/CD 的 ARM 模板)不同,Fabric使用基于工作区的模型将工作区连接到 Git 分支并直接同步项。 笔记本、环境和 SJD 都支持 Git 集成。 设置部署管道(开发→测试→ Prod),以跨环境管理升级。