airflow.providers.google.cloud.operators.cloud_sql¶
此模組包含 Google Cloud SQL operators。
屬性¶
類¶
Google Cloud SQL operators 的抽象基類 operator。 |
|
建立一個新的 Cloud SQL 例項。 |
|
更新 Cloud SQL 例項的設定。 |
|
刪除一個 Cloud SQL 例項。 |
|
將一個例項克隆到目標例項。 |
|
在 Cloud SQL 例項中建立一個新資料庫。 |
|
使用 patch 語義更新包含資料庫資訊的資源。 |
|
從 Cloud SQL 例項中刪除一個數據庫。 |
|
將資料從 Cloud SQL 例項匯出到 Cloud Storage 儲存桶。 |
|
將資料從 Cloud Storage 匯入到 Cloud SQL 例項。 |
|
在現有 Cloud Sql 例項上執行 DML 或 DDL 查詢。 |
模組內容¶
- airflow.providers.google.cloud.operators.cloud_sql.CLOUD_SQL_CREATE_VALIDATION: collections.abc.Sequence[dict][源]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLBaseOperator(*, instance, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', impersonation_chain=None, **kwargs)[源]¶
Bases:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperatorGoogle Cloud SQL operators 的抽象基類 operator。
- 引數:
instance (str) – Cloud SQL 例項 ID。不包含專案 ID。
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceOperator(*, body, instance, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', validate_body=True, impersonation_chain=None, **kwargs)[源]¶
Bases:
CloudSQLBaseOperator建立一個新的 Cloud SQL 例項。
如果存在同名例項,則不會採取任何行動,operator 將會成功。
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: CloudSQLCreateInstanceOperator
- 引數:
body (dict) – Cloud SQL insert API 所需的 body,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances/insert #request-body 中所述
instance (str) – Cloud SQL 例項 ID。不包含專案 ID。
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
validate_body (bool) – 如果應驗證 body 則為 True,否則為 False。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain')[源]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLInstancePatchOperator(*, body, instance, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', impersonation_chain=None, **kwargs)[源]¶
Bases:
CloudSQLBaseOperator更新 Cloud SQL 例項的設定。
注意:這是一個部分更新,因此只會更新 settings 中包含的值。
在請求 body 中,根據 patch 語義規則提供例項資源的相應部分。 https://cloud.google.com/sql/docs/mysql/admin-api/how-tos/performance#patch
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: CloudSQLInstancePatchOperator
- 引數:
body (dict) – Cloud SQL patch API 所需的 body,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances/patch#request-body 中所述
instance (str) – Cloud SQL 例項 ID。不包含專案 ID。
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain')[源]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceOperator(*, instance, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', impersonation_chain=None, **kwargs)[源]¶
Bases:
CloudSQLBaseOperator刪除一個 Cloud SQL 例項。
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: CloudSQLDeleteInstanceOperator
- 引數:
instance (str) – Cloud SQL 例項 ID。不包含專案 ID。
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'gcp_conn_id', 'api_version', 'impersonation_chain')[源]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCloneInstanceOperator(*, instance, destination_instance_name, clone_context=None, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', impersonation_chain=None, **kwargs)[源]¶
Bases:
CloudSQLBaseOperator將一個例項克隆到目標例項。
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: CloudSQLCloneInstanceOperator
- 引數:
instance (str) – 要克隆的資料庫例項 ID。不包含專案 ID。
destination_instance_name (str) – 要建立的資料庫例項 ID。不包含專案 ID。
clone_context (dict | None) – 其他 clone_context 引數,如 https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instances/clone 中所述
project_id (str) – 包含例項的專案的專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'destination_instance_name', 'gcp_conn_id', 'api_version')[源]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLCreateInstanceDatabaseOperator(*, instance, body, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', validate_body=True, impersonation_chain=None, **kwargs)[源]¶
Bases:
CloudSQLBaseOperator在 Cloud SQL 例項中建立一個新資料庫。
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: CloudSQLCreateInstanceDatabaseOperator
- 引數:
instance (str) – 資料庫例項 ID。不包含專案 ID。
body (dict) – 請求 body,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/databases/insert#request-body 中所述
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
validate_body (bool) – 是否應驗證 body。預設為 True。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLPatchInstanceDatabaseOperator(*, instance, database, body, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', validate_body=True, impersonation_chain=None, **kwargs)[source]¶
Bases:
CloudSQLBaseOperator使用 patch 語義更新包含資料庫資訊的資源。
參見: https://cloud.google.com/sql/docs/mysql/admin-api/how-tos/performance#patch
另請參閱
有關如何使用此運算子的更多資訊,請參閱指南: CloudSQLPatchInstanceDatabaseOperator
- 引數:
instance (str) – 資料庫例項 ID。不包含專案 ID。
database (str) – 要在例項中更新的資料庫名稱。
body (dict) – 請求正文,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/databases/patch#request-body 中所述
project_id (str) – 可選,Google Cloud 專案 ID。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
validate_body (bool) – 是否應驗證 body。預設為 True。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'database', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLDeleteInstanceDatabaseOperator(*, instance, database, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', impersonation_chain=None, **kwargs)[source]¶
Bases:
CloudSQLBaseOperator從 Cloud SQL 例項中刪除一個數據庫。
另請參閱
有關如何使用此運算子的更多資訊,請參閱指南: CloudSQLDeleteInstanceDatabaseOperator
- 引數:
instance (str) – 資料庫例項 ID。不包含專案 ID。
database (str) – 要在例項中刪除的資料庫名稱。
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'database', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExportInstanceOperator(*, instance, body, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', validate_body=True, impersonation_chain=None, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), poke_interval=10, **kwargs)[source]¶
Bases:
CloudSQLBaseOperator將資料從 Cloud SQL 例項匯出到 Cloud Storage 儲存桶。
匯出的格式可以是 SQL dump 檔案或 CSV 檔案。
注意:此運算子是冪等的。如果使用相同的匯出檔案 URI 多次執行,GCS 中的匯出檔案將被簡單地覆蓋。
另請參閱
有關如何使用此運算子的更多資訊,請參閱指南: CloudSQLExportInstanceOperator
- 引數:
instance (str) – Cloud SQL 例項 ID。不包含專案 ID。
body (dict) – 請求正文,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances/export#request-body 中所述
project_id (str) – 可選的,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設 project_id。
gcp_conn_id (str) – 用於連線 Google Cloud 的連線 ID。
api_version (str) – 使用的 API 版本(例如 v1beta4)。
validate_body (bool) – 是否應驗證 body。預設為 True。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈式列表,該賬號將在請求中被模擬。如果設定為字串,則該賬號必須向發起賬號授予 Service Account Token Creator IAM 角色。如果設定為序列,則列表中的身份必須向緊接在其前的身份授予 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
deferrable (bool) – 在可推遲模式下執行運算子。
poke_interval (int) – (僅限可推遲模式)呼叫之間等待檢查執行狀態的時間(秒)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLImportInstanceOperator(*, instance, body, project_id=PROVIDE_PROJECT_ID, gcp_conn_id='google_cloud_default', api_version='v1beta4', validate_body=True, impersonation_chain=None, **kwargs)[source]¶
Bases:
CloudSQLBaseOperator將資料從 Cloud Storage 匯入到 Cloud SQL 例項。
CSV 匯入¶
對於 CSV 匯入,此運算子不是冪等的。如果多次匯入同一個檔案,匯入的資料將在資料庫中重複。此外,如果存在任何唯一約束,重複匯入可能會導致錯誤。
SQL 匯入¶
如果匯入的 SQL 檔案也是由 Cloud SQL 匯出的,則此運算子對於 SQL 匯入是冪等的。匯出的 SQL 包含所有要匯入的表的“DROP TABLE IF EXISTS”語句。
如果匯入檔案以不同方式生成,則不保證冪等性。必須在 SQL 檔案級別確保冪等性。
另請參閱
有關如何使用此運算子的更多資訊,請參閱指南: CloudSQLImportInstanceOperator
- 引數 instance:
Cloud SQL 例項 ID。不包括專案 ID。
- 引數 body:
請求正文,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances/import#request-body 中所述
- 引數 project_id:
可選,Google Cloud 專案 ID。如果設定為 None 或缺失,則使用 Google Cloud 連線中的預設專案 ID。
- 引數 gcp_conn_id:
用於連線 Google Cloud 的連線 ID。
- 引數 api_version:
使用的 API 版本(例如 v1beta4)。
- 引數 validate_body:
是否應驗證正文。預設為 True。
- 引數 impersonation_chain:
可選的服務賬號,用於使用短期憑據進行模擬,或者獲取列表中最後一個賬號的 access_token 所需的賬號鏈列表,最後一個賬號將在請求中被模擬。如果設定為字串,該賬號必須授予發起賬號 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須授予其直接前一個身份 Service Account Token Creator IAM 角色,列表中的第一個賬號將此角色授予發起賬號(模板化)。
- template_fields: collections.abc.Sequence[str] = ('project_id', 'instance', 'body', 'gcp_conn_id', 'api_version', 'impersonation_chain')[source]¶
- class airflow.providers.google.cloud.operators.cloud_sql.CloudSQLExecuteQueryOperator(*, sql, autocommit=False, parameters=None, gcp_conn_id='google_cloud_default', gcp_cloudsql_conn_id='google_cloud_sql_default', sql_proxy_binary_path=None, ssl_server_cert=None, ssl_client_cert=None, ssl_client_key=None, ssl_secret_id=None, **kwargs)[source]¶
Bases:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator在現有 Cloud Sql 例項上執行 DML 或 DDL 查詢。
它可以選擇使用 cloud-sql-proxy 與資料庫建立安全連線。
另請參閱
有關如何使用此運算子的更多資訊,請參閱指南: CloudSQLExecuteQueryOperator
- 引數:
sql (str | collections.abc.Iterable[str]) – 要執行的 SQL 查詢或查詢列表(應為 DML 或 DDL 查詢 - 此運算子不從資料庫返回任何資料,因此傳遞 DQL 查詢沒有用處。請注意,查詢作者有責任確保查詢是冪等的。例如,您可以使用 CREATE TABLE IF NOT EXISTS 建立表)。
parameters (collections.abc.Iterable | collections.abc.Mapping[str, Any] | None) – (可選)用於渲染 SQL 查詢的引數。
autocommit (bool) – 如果為 True,每個命令都會自動提交。(預設值:False)
gcp_conn_id (str) – 用於連線 Google Cloud 進行 cloud-sql-proxy 身份驗證的連線 ID。
gcp_cloudsql_conn_id (str) – 用於連線 Google Cloud SQL 的連線 ID,其方案應為 gcpcloudsql://。有關如何定義
gcpcloudsql://連線的詳細資訊,請參閱CloudSQLDatabaseHook。sql_proxy_binary_path (str | None) – (可選)指向 cloud-sql-proxy 二進位制檔案的路徑。如果未指定或二進位制檔案不存在,則會自動下載。
ssl_cert – (可選)使用 SSL 時用於身份驗證的客戶端證書路徑。覆蓋連線欄位
sslcert。ssl_key – (可選)使用 SSL 時用於身份驗證的客戶端私鑰路徑。覆蓋連線欄位
sslkey。ssl_root_cert – (可選)使用 SSL 時用於身份驗證的伺服器證書路徑。覆蓋連線欄位
sslrootcert。ssl_secret_id (str | None) –
(可選)Google Cloud Secret Manager 中儲存 SSL 證書的金鑰 ID,格式如下
- {‘sslcert’: ‘’,
’sslkey’: ‘’, ‘sslrootcert’: ‘’}
覆蓋連線欄位
sslcert、sslkey、sslrootcert。請注意,根據 Secret Manager 的要求,提到的字典應儲存為字串,並使用 base64 編碼。請注意,此引數與引數ssl_cert、ssl_key、ssl_root_cert不相容。
- template_fields: collections.abc.Sequence[str] = ('sql', 'gcp_cloudsql_conn_id', 'gcp_conn_id', 'ssl_server_cert', 'ssl_client_cert',...[source]¶
- template_ext: collections.abc.Sequence[str] = ('.sql',)[source]¶