使用 Airflow PUT 命令将 S3 文件移动到 Snowflake 阶段

Move S3 files to Snowflake stage using Airflow PUT command

我正在尝试找到一种解决方案,使用 Airflow 将文件从 S3 存储桶移动到 Snowflake 内部阶段(不是直接 table),但当前的 Snowflake 运算符似乎不支持 PUT 命令。

我知道还有其他选项,例如 Snowpipe,但我想展示 Airflow 的功能。 COPY INTO 也是一种替代解决方案,但我想从文件加载 DDL 语句,而不是 运行 在 Snowflake 中手动加载它们。

这是我能找到的最接近的,但它使用 COPY INTO table:

https://artemiorimando.com/2019/05/01/data-engineering-using-python-airflow/

还有:

有没有办法通过Airflow+Python+Snowsql将文件从S3 bucket移动到Snowflake internal stage?

谢谢!

我建议您从 Airflow 中执行 COPY INTO 命令以直接从 S3 加载文件。没有将文件从 S3 转移到内部阶段而不将文件跳到另一台机器(如 Airflow 机器)的好方法。您将使用 SnowSQL GET 从 S3 到本地,并使用 PUT 从本地到 S3。对内部阶段执行 PUT 的唯一方法是通过 SnowSQL。