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。

此条目有用吗?