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

关于将Synapse Spark DB作为复制活动源的技术问题咨询

Synapse Spark Delta库迁移与链接服务问题解决

链接服务创建失败的原因

  • Delta格式的Synapse Spark湖数据库本质是ADLS G2上的文件集合,并非Synapse SQL池的原生表,因此无法直接通过Synapse SQL端点创建链接服务——SQL端点仅支持访问Serverless/专用SQL池内的表。
  • 若尝试用Spark端点创建链接服务失败,大概率是权限或配置问题:
    • 检查服务主体是否同时拥有Spark数据库的SELECT权限,以及ADLS G2容器的Storage Blob Data Contributor权限
    • 确认链接服务配置中的Spark池名称、数据库名是否正确,且网络连通性正常(比如本地网络到Synapse工作区的端口是否开放)

迁移到本地数据库的可行方案

方案1:直接用ADLS G2作为复制活动源(当前最便捷)

既然你已能访问ADLS G2上的Parquet文件,直接通过复制活动实现迁移即可:

  • 源数据集选择Azure Data Lake Storage Gen2,指定Parquet文件的存储路径
  • 目标数据集配置你的本地数据库(如SQL Server、MySQL等)
  • 复制活动中直接完成字段映射;若需数据转换,可先通过Spark作业将Delta表转为标准Parquet格式,再执行复制

方案2:用Synapse Spark DB端点实现迁移(可行但需编写代码)

可以通过Spark端点实现迁移,但无法直接通过链接服务调用,需编写Spark作业完成:

  1. 读取Delta表:
    df = spark.read.format("delta").table("your_spark_db.your_table")
    
  2. 通过JDBC写入本地数据库:
    df.write.format("jdbc") \
      .option("url", "jdbc:sqlserver://your_local_db_ip:1433/your_db_name") \
      .option("dbtable", "target_table") \
      .option("user", "db_user") \
      .option("password", "db_pwd") \
      .mode("append") \
      .save()
    
    注意:需确保Synapse工作区的虚拟网络能访问本地数据库的端口,防火墙需添加Synapse工作区的出站IP至白名单

总结

若仅需单纯迁移数据,优先选择ADLS G2作为复制活动源,操作简单稳定;若需复杂的数据清洗、转换逻辑,再通过Spark作业处理后写入本地数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:03:23