Google Cloud Spanner 運算子¶
先決條件任務¶
若要使用這些運算子,您必須執行幾項操作
使用 Cloud Console 選擇或建立 Cloud Platform 專案。
為您的專案啟用計費功能,如 Google Cloud 文件中所述。
啟用 API,如 Cloud Console 文件中所述。
透過 pip 安裝 API 程式庫。
pip install 'apache-airflow[google]'安裝提供詳細資訊。
SpannerDeployInstanceOperator¶
建立新的 Cloud Spanner 執行個體;或者,如果指定的專案中已存在具有相同執行個體 ID 的執行個體,則更新 Cloud Spanner 執行個體。
如需參數定義,請參閱 SpannerDeployInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_instance_create_task = SpannerDeployInstanceOperator(
project_id=PROJECT_ID,
instance_id=GCP_SPANNER_INSTANCE_ID,
configuration_name=GCP_SPANNER_CONFIG_NAME,
node_count=GCP_SPANNER_NODE_COUNT,
display_name=GCP_SPANNER_DISPLAY_NAME,
task_id="spanner_instance_create_task",
)
spanner_instance_update_task = SpannerDeployInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
configuration_name=GCP_SPANNER_CONFIG_NAME,
node_count=GCP_SPANNER_NODE_COUNT + 1,
display_name=GCP_SPANNER_DISPLAY_NAME + "_updated",
task_id="spanner_instance_update_task",
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"configuration_name",
"display_name",
"gcp_conn_id",
"impersonation_chain",
)
SpannerDeleteDatabaseInstanceOperator¶
從指定的 Cloud Spanner 執行個體刪除資料庫。如果資料庫不存在,則不會採取任何動作,且運算子會成功。
如需參數定義,請參閱 SpannerDeleteDatabaseInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_database_delete_task = SpannerDeleteDatabaseInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
task_id="spanner_database_delete_task",
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"gcp_conn_id",
"impersonation_chain",
)
更多資訊¶
SpannerDeployDatabaseInstanceOperator¶
在指定的執行個體中建立新的 Cloud Spanner 資料庫;或者,如果所需的資料庫已存在,則假設成功,且不會對資料庫組態套用任何變更。不會驗證資料庫的結構,只要資料庫以相同的名稱存在即可。
如需參數定義,請參閱 SpannerDeployDatabaseInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_database_deploy_task = SpannerDeployDatabaseInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
ddl_statements=[
"CREATE TABLE my_table1 (id INT64, name STRING(MAX)) PRIMARY KEY (id)",
"CREATE TABLE my_table2 (id INT64, name STRING(MAX)) PRIMARY KEY (id)",
],
task_id="spanner_database_deploy_task",
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"database_id",
"ddl_statements",
"gcp_conn_id",
"impersonation_chain",
)
template_ext: Sequence[str] = (".sql",)
template_fields_renderers = {"ddl_statements": "sql"}
SpannerUpdateDatabaseInstanceOperator¶
在 Cloud Spanner 資料庫中執行 DDL 查詢,並允許您修改現有資料庫的結構。
您可以選擇性地指定 operation_id 參數,以簡化判斷在重新執行 update_database 呼叫時是否已執行陳述式(等冪性檢查)。operation_id 在資料庫中應是唯一的,且必須是有效的識別碼:[a-z][a-z0-9_]*
。更多資訊請參閱 updateDdl API 文件
如需參數定義,請參閱 SpannerUpdateDatabaseInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_database_update_task = SpannerUpdateDatabaseInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
ddl_statements=[
"CREATE TABLE my_table3 (id INT64, name STRING(MAX)) PRIMARY KEY (id)",
],
task_id="spanner_database_update_task",
)
spanner_database_update_idempotent1_task = SpannerUpdateDatabaseInstanceOperator(
project_id=PROJECT_ID,
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
operation_id=OPERATION_ID,
ddl_statements=[
"CREATE TABLE my_table_unique (id INT64, name STRING(MAX)) PRIMARY KEY (id)",
],
task_id="spanner_database_update_idempotent1_task",
)
spanner_database_update_idempotent2_task = SpannerUpdateDatabaseInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
operation_id=OPERATION_ID,
ddl_statements=[
"CREATE TABLE my_table_unique (id INT64, name STRING(MAX)) PRIMARY KEY (id)",
],
task_id="spanner_database_update_idempotent2_task",
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"database_id",
"ddl_statements",
"gcp_conn_id",
"impersonation_chain",
)
template_ext: Sequence[str] = (".sql",)
template_fields_renderers = {"ddl_statements": "sql"}
更多資訊¶
請參閱 Google Cloud Spanner API 文件,以取得資料庫 update_ddl 的資訊。
SpannerQueryDatabaseInstanceOperator¶
執行任意 DML 查詢 (INSERT、UPDATE、DELETE)。
如需參數定義,請參閱 SpannerQueryDatabaseInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_instance_query_task = SpannerQueryDatabaseInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID,
database_id=GCP_SPANNER_DATABASE_ID,
query=["DELETE FROM my_table2 WHERE true"],
task_id="spanner_instance_query_task",
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"database_id",
"query",
"gcp_conn_id",
"impersonation_chain",
)
template_ext: Sequence[str] = (".sql",)
template_fields_renderers = {"query": "sql"}
SpannerDeleteInstanceOperator¶
刪除 Cloud Spanner 執行個體。如果執行個體不存在,則不會採取任何動作,且運算子會成功。
如需參數定義,請參閱 SpannerDeleteInstanceOperator
。
使用運算子¶
您可以使用或不使用專案 ID 來建立運算子。如果缺少專案 ID,系統會從使用的 Google Cloud 連線中擷取。兩種變體均已顯示
spanner_instance_delete_task = SpannerDeleteInstanceOperator(
instance_id=GCP_SPANNER_INSTANCE_ID, task_id="spanner_instance_delete_task"
)
範本¶
template_fields: Sequence[str] = (
"project_id",
"instance_id",
"gcp_conn_id",
"impersonation_chain",
)