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

Airflow无法导入S3ToSnowflakeOperator模块问题求助

问题解决:Airflow Snowflake Provider找不到s3_to_snowflake模块

核心原因

你遇到的问题是Snowflake Provider版本迭代导致的模块迁移:

  • 在apache-airflow-providers-snowflake 4.0.0及以上版本中,S3ToSnowflakeOperator被合并到CopyIntoSnowflakeOperator中,原airflow.providers.snowflake.transfers.s3_to_snowflake模块被移除。
  • 你当前安装的版本已经是4.0.0+,所以只能找到copy_into_snowflake组件。

解决方案

方案1:升级代码适配新版本(推荐)

将原有的S3ToSnowflakeOperator替换为CopyIntoSnowflakeOperator,后者完全支持从S3加载数据到Snowflake的功能,用法示例:

import pendulum
from airflow.providers.snowflake.transfers.copy_into_snowflake import CopyIntoSnowflakeOperator
from airflow import DAG

with DAG(
    dag_id="main",
    start_date=pendulum.datetime(year=2024, month=3, day=26, hour=15, minute=35),
    schedule_interval="15 4 * * *",
    catchup=False,
) as dag:
    load_s3_to_snowflake = CopyIntoSnowflakeOperator(
        task_id="load_s3_to_snowflake",
        snowflake_conn_id="your_snowflake_conn",
        table="target_table",
        stage="@your_s3_stage",  # 提前在Snowflake中创建好关联S3的stage
        files=["data_file.csv"],
        file_format="(type = 'CSV', field_delimiter = ',', skip_header = 1)",
    )

方案2:降级Snowflake Provider版本(不推荐)

如果必须使用旧的S3ToSnowflakeOperator,可以在requirements.txt中指定低于4.0.0的版本:

apache-airflow-providers-snowflake==3.5.0

然后重新构建Docker镜像,确保依赖安装正确。

验证步骤

  1. 查看当前Snowflake Provider版本:在Airflow容器中执行pip show apache-airflow-providers-snowflake确认版本号。
  2. 根据版本选择对应方案修改代码或依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:07:41