1

我正在尝试使用 MWAA(来自 AWS 的托管 Airflow)运行气流作业以在 Snowflake 实例上执行一些 SQL 操作。在 MWAA 中设置 Airflow 时,它会要求 DAG、插件和要求。有什么方法可以包含自定义 sql 脚本?

以下是我尝试过的示例:


with DAG(
    'Snowflake_Prototype',
    default_args=default_args,
    schedule_interval='@daily',
    start_date=days_ago(1),
    template_searchpath="include"
) as dag:

    start = DummyOperator(task_id='start')
    
    t2 = SnowflakeOperator(
            task_id='create_staging_tables',
            snowflake_conn_id=SNOWFLAKE_CONN_ID,
            sql='create_staging.sql'
        )

我打算在create_staging.sql 中运行sql 命令。为此,我已将 sql 脚本“create_staging.sql”上传到 s3 中名为 include 的文件夹,然后在 DAG 声明中通过 template_searchpath 引用它。看起来它的不是气流没有导入 s3 的所有内容。它似乎没有找到该文件。通过 MWAA 运行气流时,是否有任何其他方法可以包含相关脚本。

4

1 回答 1

0

如果您指的是create_staging.sql类似的东西 - 相对引用,我认为它应该放在 dag 本身旁边,而不是放在专用的“包含”文件夹中。因此,只需将其放在放置 dag 的同一目录中即可。

或者,您可能会尝试在 MWAA 工作程序中找到最终安装“包含”文件夹的完整路径,并使用完整的“绝对”路径。

于 2021-08-10T06:07:13.320 回答