SQLExecuteQueryOperator 连接到 Snowflake

使用 SQLExecuteQueryOperatorSnowflake 数据库中执行 SQL 命令。

警告

以前,SnowflakeOperator 用于执行此类操作。但目前 SnowflakeOperator 已弃用,并且将在提供程序的未来版本中删除。请考虑尽快切换到 SQLExecuteQueryOperator。

使用操作符

使用 conn_id 参数连接到 Snowflake 实例,其中连接元数据结构如下

Snowflake Airflow 连接元数据

参数

输入

登录: 字符串

Snowflake 用户名

密码: 字符串

Snowflake 用户的密码

架构: 字符串

默认情况下,设置要对 SQL 操作执行的架构

额外: 字典

仓库帐户数据库区域角色验证器

连接到 Snowflake 的 SQLExecuteQueryOperator 的示例用法如下

tests/system/providers/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 连接元数据中已给出的参数(例如 模式角色数据库 等)。

SnowflakeSqlApiOperator

使用 SnowflakeSqlApiHookSnowflake 数据库中执行 SQL 命令。

您还可以通过将 deferrable 参数设置为 True 来以可延迟模式运行此运算符。这将确保任务从 Airflow 工作槽中延迟,并且任务状态轮询在触发器上发生。

使用运算符

使用 snowflake_conn_id 参数连接到您的 Snowflake 实例,其中连接元数据结构如下

Snowflake Airflow 连接元数据

参数

输入

登录: 字符串

Snowflake 用户名。如果使用 OAuth 连接,则这是 client_id

密码: 字符串

Snowflake 用户的密码。如果使用 OAuth,则这是 client_secret

架构: 字符串

默认情况下,设置要对 SQL 操作执行的架构

额外: 字典

仓库帐户数据库区域角色验证器刷新令牌。如果使用 OAuth,必须指定 刷新令牌在此处获取

以下是 SnowflakeSqlApiHook 的一个示例用法

tests/system/providers/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 连接元数据中已给出的参数(例如 模式角色数据库 等)。

此条目是否有用?