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

如何通过Azure Data Factory实现跨Snowflake账户创建表?

可行解决方案

针对你在Azure Data Factory(ADF)中跨两个Snowflake账户复制表的需求,以下是几种可落地的方案:

方案1:Snowflake跨账户访问 + ADF Script Activity

核心思路是让其中一个Snowflake账户能直接访问另一个账户的对象,这样ADF只需连接单个账户就能执行跨账户的建表查询:

  • 步骤1:在目标Snowflake账户snowflake_account1中配置跨账户访问权限。可以通过Snowflake的数据共享(Data Sharing)功能,将源账户snowflake_account2中的snowflake_acccount2_schema.table1共享给目标账户;或者创建外部访问集成(External Access Integration),让目标账户能直接查询源账户的表。
  • 步骤2:在ADF中创建连接目标账户snowflake_account1的Linked Service和Dataset。
  • 步骤3:使用Script Activity,直接执行你期望的SQL语句(注意调整为跨账户访问的语法,比如加上源账户的标识):
    create table if not exists snowflake_acccount1_schema.table1 as 
    select * from snowflake_acccount2.snowflake_acccount2_schema.table1;
    

方案2:借助Azure中间存储中转

如果无法修改Snowflake账户的跨账户配置,可以通过Azure存储做中转:

  • 步骤1:用ADF Copy Activity,将源Snowflake账户snowflake_account2的snowflake_acccount2_schema.table1数据复制到Azure Blob Storage或ADLS Gen2中。
  • 步骤2:再用另一个Copy Activity,将中间存储中的数据写入目标Snowflake账户snowflake_account1,并在Copy Activity的"Sink"设置中勾选"Auto create table",自动创建目标表。

方案3:通过自定义代码执行跨账户操作

利用ADF支持的自定义计算资源来处理双账户连接:

  • 选项A:使用Azure Functions。编写Python/Java代码,同时连接两个Snowflake账户,先从源账户读取数据,再写入目标表;或者在代码中执行跨账户建表逻辑(需Snowflake跨账户权限),然后在ADF中调用这个Function。
  • 选项B:使用Databricks Notebook。在Notebook中编写Scala/Python脚本,同时连接两个Snowflake账户,完成数据复制和建表操作,ADF通过Databricks Activity调用该Notebook。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:33:23