airflow.providers.google.cloud.hooks.spanner

此模組包含 Google Cloud Spanner Hook。

SpannerConnectionParams

關於 Google Spanner 連線引數的資訊。

SpannerHook

用於 Google Cloud Spanner API 的 Hook。

模組內容

class airflow.providers.google.cloud.hooks.spanner.SpannerConnectionParams[source]

基類: NamedTuple

關於 Google Spanner 連線引數的資訊。

project_id: str | None[source]
instance_id: str | None[source]
database_id: str | None[source]
class airflow.providers.google.cloud.hooks.spanner.SpannerHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]

基類: airflow.providers.google.common.hooks.base_google.GoogleBaseHook, airflow.providers.common.sql.hooks.sql.DbApiHook

用於 Google Cloud Spanner API 的 Hook。

Hook 中所有使用 project_id 的方法必須使用關鍵字引數而不是位置引數呼叫。

conn_name_attr = 'gcp_conn_id'[source]
default_conn_name = 'google_cloud_spanner_default'[source]
conn_type = 'gcpspanner'[source]
hook_name = 'Google Cloud Spanner'[source]
get_uri()[source]

覆蓋 DbApiHook 的 get_uri 方法以用於 get_sqlalchemy_engine()。

get_sqlalchemy_engine(engine_kwargs=None)[source]

獲取 sqlalchemy_engine 物件。

引數:

engine_kwargs – 在 create_engine() 中使用的 Kwargs。

返回:

建立的 engine。

get_instance(instance_id, project_id)[source]

獲取關於特定 instance 的資訊。

引數:
  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

  • instance_id (str) – Cloud Spanner instance 的 ID。

返回:

Spanner instance

返回型別:

google.cloud.spanner_v1.instance.Instance | None

create_instance(instance_id, configuration_name, node_count, display_name, project_id)[source]

建立一個新的 Cloud Spanner instance。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • configuration_name (str) – instance 配置的名稱,定義了 instance 的建立方式。可能的配置值可以透過 https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs/list 獲取

  • node_count (int) – (可選) 分配給 Cloud Spanner instance 的節點數。

  • display_name (str) – (可選) 在 Google Cloud Console 中 instance 的顯示名稱。長度必須在 4 到 30 個字元之間。如果未傳遞此值,則名稱預設為 instance ID。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

None

返回型別:

None

update_instance(instance_id, configuration_name, node_count, display_name, project_id)[source]

更新現有的 Cloud Spanner instance。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • configuration_name (str) – instance 配置的名稱,定義了 instance 的建立方式。可能的配置值可以透過 https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instanceConfigs/list 獲取

  • node_count (int) – (可選) 分配給 Cloud Spanner instance 的節點數。

  • display_name (str) – (可選) 在 Google Cloud Console 中 instance 的顯示名稱。長度必須在 4 到 30 個字元之間。如果在建構函式中未設定此值,則名稱預設為 instance ID。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

None

返回型別:

None

delete_instance(instance_id, project_id)[source]

刪除現有的 Cloud Spanner instance。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

None

返回型別:

None

get_database(instance_id, database_id, project_id)[source]

在 Cloud Spanner 中檢索資料庫;如果資料庫在 instance 中不存在,則返回 None。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • database_id (str) – Cloud Spanner 中資料庫的 ID。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

資料庫物件,如果資料庫不存在則為 None

返回型別:

google.cloud.spanner_v1.database.Database | None

create_database(instance_id, database_id, ddl_statements, project_id)[source]

在 Cloud Spanner 中建立新資料庫。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • database_id (str) – 要在 Cloud Spanner 中建立的資料庫 ID。

  • ddl_statements (list[str]) – 包含新資料庫 DDL 的字串列表。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

None

返回型別:

None

update_database(instance_id, database_id, ddl_statements, project_id, operation_id=None)[source]

更新 Cloud Spanner 中資料庫的 DDL。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • database_id (str) – Cloud Spanner 中資料庫的 ID。

  • ddl_statements (list[str]) – 包含新資料庫 DDL 的字串列表。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

  • operation_id (str | None) – (可選) 每個資料庫唯一的 operation ID,可用於實現冪等性檢查。

返回:

None

返回型別:

None

delete_database(instance_id, database_id, project_id)[source]

刪除 Cloud Spanner 中的資料庫。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • database_id – Cloud Spanner 中資料庫的 ID。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

返回:

如果一切成功則為 True

返回型別:

bool

execute_dml(instance_id, database_id, queries, project_id)[source]

執行任意 DML 查詢 (INSERT, UPDATE, DELETE)。

引數:
  • instance_id (str) – Cloud Spanner instance 的 ID。

  • database_id (str) – Cloud Spanner 中資料庫的 ID。

  • queries (list[str]) – 要執行的查詢。

  • project_id (str) – 可選,擁有 Cloud Spanner 資料庫的 Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。

此條目有用嗎?