Airflow passing Snowflake session_parameters

Viewed 671

As you can see in the code example, I'm trying to pass session_parameters to my Snowflake connection through Airflow DAG Task, but the parameter is not being picked up, any solution to that?

task = SnowflakeOperator(
    task_id='Task',
    sql="CREATE OR REPLACE TABLE MY_DB.MY_SCHEMA.MY_TABLE (test VARCHAR)",
    session_parameters={
        "QUERY_TAG": "my_tag"
    },
    snowflake_conn_id="snowflake_connection",
    warehouse="MY_WH",
    dag=dag,
)
1 Answers

You are probably using an outdated version of the snowflake operator. Support for session_parameters was added in PR

For Airflow<2.0.0 you will need to have:

pip install apache-airflow-backport-providers-snowflake>='2020.11.23'

For Airflow>=2.0.0 you will need to have:

pip install apache-airflow-providers-snowflake

Then you can use your code as:

from airflow.providers.snowflake.operators.snowflake import SnowflakeOperator
task = SnowflakeOperator(
    task_id='Task',
    sql="CREATE OR REPLACE TABLE MY_DB.MY_SCHEMA.MY_TABLE (test VARCHAR)",
    session_parameters={
        "QUERY_TAG": "my_tag"
    },
    snowflake_conn_id="snowflake_connection",
    warehouse="MY_WH",
    dag=dag,
)
Related