airflow.providers.snowflake.hooks.snowflake_sql_api
¶
模块内容¶
类¶
一个使用 SQL API 与 Snowflake 交互并在单个请求中提交多个 SQL 语句的客户端。 |
- class airflow.providers.snowflake.hooks.snowflake_sql_api.SnowflakeSqlApiHook(snowflake_conn_id, token_life_time=LIFETIME, token_renewal_delta=RENEWAL_DELTA, *args, **kwargs)[源代码]¶
基类:
airflow.providers.snowflake.hooks.snowflake.SnowflakeHook
一个使用 SQL API 与 Snowflake 交互并在单个请求中提交多个 SQL 语句的客户端。
结合 aiohttp,发送 post 请求以提交 SQL 语句执行,轮询以检查语句的执行状态。 异步获取查询结果。
此 hook 需要 snowflake_conn_id 连接。此 hook 主要使用帐户、模式、数据库、仓库和以下之一的身份验证机制:1. 从 private_key_file 或 private_key_content 生成的 JWT 令牌。其他输入可以在连接或 hook 实例化中定义。2. 从连接中指定的 refresh_token、client_id 和 client_secret 生成的 OAuth 令牌
- 参数
snowflake_conn_id (str) – 引用 Snowflake 连接 ID
account – Snowflake 帐户名称
authenticator – Snowflake 的身份验证器。‘snowflake’(默认)使用内部 Snowflake 身份验证器 ‘externalbrowser’ 使用您的 Web 浏览器和 Okta、ADFS 或为您的帐户定义的任何其他 SAML 2.0 兼容的身份提供商 (IdP) 进行身份验证 ‘https://<your_okta_account_name>.okta.com’ 通过原生 Okta 进行身份验证。
warehouse – Snowflake 仓库的名称
database – Snowflake 数据库的名称
region – Snowflake 区域的名称
role – Snowflake 角色的名称
schema – Snowflake 模式的名称
session_parameters – 您可以在连接到 Snowflake 时设置会话级参数
token_life_time (datetime.timedelta) – JWT 令牌的生命周期(以 timedelta 为单位)
token_renewal_delta (datetime.timedelta) – JWT 令牌的更新时间(以 timedelta 为单位)
deferrable – 在可延迟模式下运行操作符。
- execute_query(sql, statement_count, query_tag='', bindings=None)[源代码]¶
通过发出 API 请求,使用 SnowflakeSQL API 在 Snowflake 中运行查询。
- 参数
sql (str) – 要执行的 sql 字符串,可能包含多个语句
statement_count (int) – 将 MULTI_STATEMENT_COUNT 字段设置为请求中 SQL 语句的数量
query_tag (str) – (可选)您要与 SQL 语句关联的查询标签。有关详细信息,请参阅 https://docs.snowflake.com/en/sql-reference/parameters.html#label-query-tag 参数。
bindings (dict[str, Any] | None) – (可选)SQL 语句中绑定变量的值。执行语句时,Snowflake 会将语句中的占位符(? 和 :name)替换为这些指定的值。
- get_request_url_header_params(query_id)[源代码]¶
使用连接参数中的帐户名称标识符和查询 ID 构建请求头 URL。
- 参数
query_id (str) – 语句句柄,用于单个语句的查询 ID。