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

能否通过Databricks将ADLS Gen2的数据加载到SQL DW?具体如何操作?

可行性说明

完全可以使用Databricks实现ADLS Gen2到SQL DW(现Azure Synapse Analytics专用SQL池)的数据迁移,该方案是Azure生态内非常成熟的批量数据迁移路径,支持分布式处理TB甚至PB级别的表数据,兼容Parquet、CSV、ORC、JSON等绝大多数常见存储格式。

具体操作步骤
  • 步骤1:完成前置权限配置
    首先确保Databricks工作区已获得两项访问权限:一是ADLS Gen2存储账号的读取权限,可通过存储账号访问密钥、服务主体RBAC授权两种方式配置;二是SQL DW的写入权限,需要将Databricks集群的出站IP加入SQL DW的防火墙白名单,同时使用的SQL账号具备目标库的建表、数据插入权限。
  • 步骤2:读取ADLS Gen2中的源表数据
    先在Spark配置中添加ADLS Gen2的访问凭证,示例代码如下:
    spark.conf.set("fs.azure.account.key.<存储账号名称>.dfs.core.windows.net", "<存储账号访问密钥>")
    之后直接读取对应路径下的表数据即可,以Parquet格式为例:
    df = spark.read.parquet("abfss://<容器名称>@<存储账号名称>.dfs.core.windows.net/<源表存储路径>")
    你也可以提前完成ADLS Gen2到Databricks DBFS的挂载,后续直接用挂载路径读取数据即可。
  • 步骤3:按需完成数据预处理(非必填)
    如果需要对齐SQL DW的目标表结构,可以提前做字段类型转换、无效值清洗、schema校验处理,避免写入阶段出现类型不匹配报错;如果SQL DW侧还未创建目标表,Databricks支持写入时自动根据DataFrame的schema建表。
  • 步骤4:配置SQL DW连接参数
    Databricks写入SQL DW依赖PolyBase做批量数据导入,需要提前准备好JDBC连接信息和临时中转存储路径,示例配置如下:
    # SQL DW JDBC连接配置
    dwHost = "<SQL DW服务器地址>.database.windows.net"
    dwDb = "<目标数据库名>"
    dwUser = "<SQL账号用户名>"
    dwPwd = "<SQL账号密码>"
    jdbcUrl = f"jdbc:sqlserver://{dwHost}:1433;database={dwDb};user={dwUser};password={dwPwd};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
    
    # 临时中转存储路径,可复用当前ADLS Gen2的存储空间
    tempPath = "abfss://<临时容器名>@<存储账号名称>.dfs.core.windows.net/<临时目录路径>"
    
  • 步骤5:执行数据写入操作
    按需求选择写入模式:全表覆盖用overwrite模式,增量追加用append模式,单表写入示例代码如下:
    df.write \
      .format("com.databricks.spark.sqldw") \
      .option("url", jdbcUrl) \
      .option("dbtable", "<SQL DW侧目标表名>") \
      .option("tempDir", tempPath) \
      .mode("overwrite") \
      .save()
    
    如果有多张表需要批量迁移,只需要循环遍历ADLS Gen2下的不同表路径,重复执行读取、写入逻辑即可。
注意事项
  • 大表迁移时可临时调高SQL DW的DWU配额,提升批量写入速度,迁移完成后再调回日常规格节省成本
  • 可根据源表数据量调整Databricks集群的节点规格和并行度,避免迁移耗时过长

内容的提问来源于stack exchange,提问作者Misaki Gome

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:09:01