SQLExecuteQueryOperator 連接 Snowflake

使用 SQLExecuteQueryOperatorSnowflake 資料庫中執行 SQL 命令。

警告

以前,SnowflakeOperator 被用於執行此類操作。但目前 SnowflakeOperator 已被棄用,並將在未來版本中移除。請考慮盡快切換到 SQLExecuteQueryOperator。

使用運算子

使用 conn_id 參數來連接到您的 Snowflake 實例,其中連線元數據結構如下

Snowflake Airflow 連線元數據

參數

輸入

登入:字串

Snowflake 使用者名稱

密碼:字串

Snowflake 使用者密碼

Schema:字串

設定預設執行 SQL 操作的 schema

額外參數:字典

warehouse, account, database, region, role, authenticator

以下是如何使用 SQLExecuteQueryOperator 連接 Snowflake 的範例

tests/system/snowflake/example_snowflake.py[原始碼]

snowflake_op_sql_str = SQLExecuteQueryOperator(
    task_id="snowflake_op_sql_str", sql=CREATE_TABLE_SQL_STRING
)

snowflake_op_with_params = SQLExecuteQueryOperator(
    task_id="snowflake_op_with_params",
    sql=SQL_INSERT_STATEMENT,
    parameters={"id": 56},
)

snowflake_op_sql_list = SQLExecuteQueryOperator(task_id="snowflake_op_sql_list", sql=SQL_LIST)

snowflake_op_sql_multiple_stmts = SQLExecuteQueryOperator(
    task_id="snowflake_op_sql_multiple_stmts",
    sql=SQL_MULTIPLE_STMTS,
    split_statements=True,
)

snowflake_op_template_file = SQLExecuteQueryOperator(
    task_id="snowflake_op_template_file",
    sql="example_snowflake_snowflake_op_template_file.sql",
)

注意

可以傳遞給運算子的參數將優先於 Airflow 連線元數據中已給定的參數(例如 schemaroledatabase 等等)。

SnowflakeSqlApiOperator

使用 SnowflakeSqlApiHookSnowflake 資料庫中執行 SQL 命令。

您也可以通過將 deferrable 參數設定為 True,在可延遲模式下執行此運算子。這將確保任務從 Airflow worker 插槽延遲,並且任務狀態的輪詢發生在觸發器上。

使用運算子

使用 snowflake_conn_id 參數來連接到您的 Snowflake 實例,其中連線元數據結構如下

Snowflake Airflow 連線元數據

參數

輸入

登入:字串

Snowflake 使用者名稱。如果使用 OAuth 連線,這是 client_id

密碼:字串

Snowflake 使用者密碼。如果使用 OAuth,這是 client_secret

Schema:字串

設定預設執行 SQL 操作的 schema

額外參數:字典

warehouse, account, database, region, role, authenticator, refresh_token。如果使用 OAuth,必須指定 refresh_token ( 在此處取得 )

以下是如何使用 SnowflakeSqlApiHook 的範例

tests/system/snowflake/example_snowflake.py[原始碼]

snowflake_sql_api_op_sql_multiple_stmt = SnowflakeSqlApiOperator(
    task_id="snowflake_op_sql_multiple_stmt",
    sql=SQL_MULTIPLE_STMTS,
    statement_count=len(SQL_LIST),
)

注意

可以傳遞給運算子的參數將優先於 Airflow 連線元數據中已給定的參數(例如 schemaroledatabase 等等)。

這個條目對您有幫助嗎?