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 主要使用帳戶、Schema、資料庫、倉庫和以下其中一種身份驗證機制: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’ 使用您的網頁瀏覽器和 Okta、ADFS 或任何其他已為您的帳戶定義的 SAML 2.0 相容身分識別提供者 (IdP) 進行驗證 ‘https://<your_okta_account_name>.okta.com’ 通過原生 Okta 進行身份驗證。

  • warehouse – Snowflake 倉庫名稱

  • database – Snowflake 資料庫名稱

  • region – Snowflake 區域名稱

  • role – Snowflake 角色名稱

  • schema – Snowflake Schema 名稱

  • 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()[來源]

使用連線詳細資訊中的 refresh 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)[來源]

基於查詢 ID,向 Snowflake SQL API 發送異步 HTTP 請求並返回響應。

參數

query_id (str) – 語句處理單個語句的 ID。

這個條目有幫助嗎?