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 主要使用帳戶、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 – 在可延遲模式下執行運算子。
- 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。