You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Fabric PowerBI工作区跨账号迁移及IaC实现方案咨询

Microsoft Fabric 工作区跨账号迁移方案(含IaC实现)

一、能否通过基础设施即代码(IaC)完成?

完全可以。Microsoft Fabric支持通过REST API、PowerShell模块,配合Bicep(ARM模板进阶版)或Terraform Provider实现IaC式迁移,批量导出原资源的元数据定义,再部署到目标账号。

二、分资源类型的迁移方法(手动+IaC)

1. Environment

  • 手动方式:在目标账号创建新Environment,匹配原环境的容量级别(F/P系列)、区域和权限配置。
  • IaC方式:用Bicep定义Environment资源,指定关键参数后部署到目标租户。示例代码:
resource fabricEnvironment 'Microsoft.Fabric/environments@2024-02-01' = {
  name: 'Target-Prod-Env'
  location: 'eastus'
  properties: {
    capacityId: '/subscriptions/{你的订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.Fabric/capacities/{容量名}'
    displayName: '生产环境副本'
  }
}

2. Lakehouse

  • 手动方式:
    • 数据导出:用Spark作业把原Lakehouse的数据写入ADLS Gen2存储,或直接用Lakehouse的「导出到数据湖」功能。
    • 结构同步:在原Lakehouse的SQL编辑器导出表、视图的DDL脚本,到目标Lakehouse执行。
    • 数据导入:在目标Lakehouse用Spark作业或COPY INTO语句从ADLS Gen2拉取数据。
  • IaC方式:
    • 用Fabric REST API获取原Lakehouse的元数据(表结构、视图定义),生成Bicep配置。
    • 部署Lakehouse资源到目标Environment后,通过IaC定义的SQL脚本任务自动执行DDL。
    • 数据迁移可通过IaC定义的Spark作业实现自动批量复制。

3. Data Pipeline

  • 手动方式:
    • 打开原管道,点击「导出」保存JSON格式的管道定义。
    • 在目标账号新建Data Pipeline,点击「导入」上传JSON文件,修改数据源/目标的连接字符串和权限。
  • IaC方式:
    • 用REST API导出管道定义,再通过API导入到目标Workspace。示例PowerShell命令:
    # 导出原管道
    $token = "原账号的访问令牌"
    $pipelineDef = Invoke-RestMethod -Uri "https://api.fabric.microsoft.com/v1/workspaces/{原工作区ID}/pipelines/{管道ID}/export" -Headers @{Authorization = "Bearer $token"}
    
    # 导入到目标账号
    $targetToken = "目标账号的访问令牌"
    Invoke-RestMethod -Uri "https://api.fabric.microsoft.com/v1/workspaces/{目标工作区ID}/pipelines/import" -Method Post -Headers @{Authorization = "Bearer $targetToken"; "Content-Type" = "application/json"} -Body $pipelineDef
    

4. Warehouse

  • 手动方式:
    • 导出DDL脚本:在原Warehouse的SQL编辑器生成表、视图、存储过程的创建脚本。
    • 结构恢复:在目标账号新建Warehouse,执行DDL脚本。
    • 数据迁移:用COPY INTO语句从原Warehouse的外部存储(如ADLS Gen2)导入数据,或用Azure Data Factory做增量同步。
  • IaC方式:
    • 用REST API获取Warehouse元数据,生成Bicep部署脚本创建Warehouse资源。
    • 通过IaC配置SQL脚本任务,自动执行DDL和数据复制命令。

5. ML Model

  • 手动方式:
    • 在原ML Model页面点击「下载」,获取模型文件(如.pkl)和依赖环境配置(conda.yaml)。
    • 目标账号新建ML Model,上传模型文件,重新配置Python版本、依赖库版本。
    • 验证模型运行状态,必要时重新训练。
  • IaC方式:
    • 用REST API /mlModels/{模型ID}/download 拉取模型文件,暂存到Blob存储。
    • 通过目标账号的REST API /mlModels/upload 上传模型,同时用IaC定义依赖环境配置。

6. Spark Job Definition

  • 手动方式:
    • 打开原作业定义,点击「导出」保存JSON文件。
    • 目标账号新建Spark Job Definition,导入JSON,修改依赖的Lakehouse/Warehouse连接和资源配置(节点数、内存)。
  • IaC方式:
    • 用REST API导出作业定义,转换为Bicep/Terraform资源后部署到目标Workspace。
    • 通过IaC配置作业的触发规则、权限等参数,与原环境保持一致。

三、完整IaC迁移流程

  1. 权限准备:原账号需有工作区的读取/导出权限,目标账号需有资源创建权限。
  2. 元数据批量导出:用PowerShell/Python脚本调用Fabric REST API,批量导出所有资源的定义和元数据。
  3. 配置参数替换:修改导出的配置文件,替换目标账号的环境ID、容量ID、连接字符串等参数。
  4. 资源批量部署:用Bicep/Terraform执行部署脚本,在目标账号创建Environment、工作区及各类资源。
  5. 数据自动同步:通过IaC定义的Spark作业或SQL脚本,同步Lakehouse、Warehouse的数据。
  6. 功能验证:逐个检查资源运行状态,确保数据一致性和功能正常。

四、注意事项

  • 容量匹配:目标账号必须有对应的Fabric容量(F/P系列),否则无法创建部分资源。
  • 数据迁移效率:大数据量建议用增量迁移,避免一次性迁移导致的性能瓶颈。
  • 依赖顺序:按Environment→Lakehouse/Warehouse→Data Pipeline/Spark Job的顺序部署,避免依赖报错。
  • API版本:使用Fabric REST API的最新稳定版本(如2024-02-01),避免兼容性问题。

内容的提问来源于stack exchange,提问作者Usama Khalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:13:28