airflow.providers.snowflake.hooks.snowflake_sql_api

模块内容

SnowflakeSqlApiHook

一个使用 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 – 在可延迟模式下运行操作符。

property account_identifier: str[源代码]

返回 Snowflake 帐户标识符。

LIFETIME[源代码]
RENEWAL_DELTA[源代码]
get_private_key()[源代码]

从 Snowflake 连接获取私钥。

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_headers()[源代码]

基于 OAuth 令牌或来自私钥的 JWT 令牌形成身份验证头。

get_oauth_token()[源代码]

使用连接详细信息中的刷新令牌生成临时 OAuth 访问令牌。

get_request_url_header_params(query_id)[源代码]

使用连接参数中的帐户名称标识符和查询 ID 构建请求头 URL。

参数

query_id (str) – 语句句柄,用于单个语句的查询 ID。

check_query_output(query_ids)[源代码]

根据提供的查询 ID 向 Snowflake SQL API 发出 HTTP 请求并记录响应。

参数

query_ids (list[str]) – 语句句柄,用于单个语句的查询 ID。

get_sql_api_query_status(query_id)[源代码]

根据查询 ID,向 Snowflake SQL API 发出异步 HTTP 请求并返回响应。

参数

query_id (str) – 单个语句的语句句柄 ID。

async get_sql_api_query_status_async(query_id)[source]

根据查询 ID,向 Snowflake SQL API 发出异步 HTTP 请求并返回响应。

参数

query_id (str) – 单个语句的语句句柄 ID。

此条目是否有帮助?