airflow.providers.google.cloud.operators.cloud_sql
¶
此模組包含 Google Cloud SQL 運算子。
模組內容¶
類別¶
Google Cloud SQL 運算子的抽象基礎運算子。 |
|
建立新的 Cloud SQL 執行個體。 |
|
更新 Cloud SQL 執行個體的設定。 |
|
刪除 Cloud SQL 執行個體。 |
|
將執行個體複製到目標執行個體。 |
|
在 Cloud SQL 執行個體內建立新的資料庫。 |
|
使用修補語意更新包含資料庫資訊的資源。 |
|
從 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)[原始碼]¶
基底類別:
airflow.providers.google.cloud.operators.cloud_base.GoogleCloudBaseOperator
Google Cloud SQL 運算子的抽象基礎運算子。
- 參數
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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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)[原始碼]¶
基底類別:
CloudSQLBaseOperator
建立新的 Cloud SQL 執行個體。
如果具有相同名稱的執行個體已存在,則不會採取任何動作,且運算子將會成功。
另請參閱
如需有關如何使用此運算子的詳細資訊,請參閱指南: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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)[原始碼]¶
基底類別:
CloudSQLBaseOperator
更新 Cloud SQL 執行個體的設定。
注意:這是部分更新,因此只會更新設定中包含的值。
在請求 body 中,根據修補語意的規則,提供執行個體資源的相關部分。 https://cloud.google.com/sql/docs/mysql/admin-api/how-tos/performance#patch
另請參閱
如需有關如何使用此運算子的詳細資訊,請參閱指南: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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)[原始碼]¶
基底類別:
CloudSQLBaseOperator
刪除 Cloud SQL 執行個體。
另請參閱
如需有關如何使用此運算子的詳細資訊,請參閱指南: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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)[原始碼]¶
基底類別:
CloudSQLBaseOperator
將執行個體複製到目標執行個體。
另請參閱
如需有關如何使用此運算子的詳細資訊,請參閱指南: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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)[原始碼]¶
基底類別:
CloudSQLBaseOperator
在 Cloud SQL 執行個體內建立新的資料庫。
另請參閱
如需有關如何使用此運算子的詳細資訊,請參閱指南: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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]¶
基底類別:
CloudSQLBaseOperator
使用修補語意更新包含資料庫資訊的資源。
請參閱: 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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]¶
基底類別:
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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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]¶
基底類別:
CloudSQLBaseOperator
將資料從 Cloud SQL 執行個體匯出到 Cloud Storage 儲存桶。
匯出格式可以是 SQL 傾印或 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 所需的串聯帳戶清單,這將在請求中被模擬。如果設定為字串,則帳戶必須授予原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須將「服務帳戶權杖建立者」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]¶
基底類別:
CloudSQLBaseOperator
將資料從 Cloud Storage 匯入到 Cloud SQL 執行個體。
CSV 匯入¶
此運算子對於 CSV 匯入並非等冪。如果同一個檔案匯入多次,則匯入的資料將在資料庫中重複。此外,如果存在任何唯一性約束,重複匯入可能會導致錯誤。
SQL 匯入¶
如果 SQL 匯入也是由 Cloud SQL 匯出,則此運算子對於 SQL 匯入是等冪的。匯出的 SQL 包含要匯入的所有表格的 ‘DROP TABLE IF EXISTS’ 陳述式。
如果匯入檔案是以不同的方式產生,則不保證等冪性。必須在 SQL 檔案層級確保等冪性。
另請參閱
如需瞭解如何使用此運算子,請參閱指南: CloudSQLImportInstanceOperator
- param instance
Cloud SQL 執行個體 ID。這不包含專案 ID。
- param body
請求主體,如 https://cloud.google.com/sql/docs/mysql/admin-api/v1beta4/instances/import#request-body 中所述
- param project_id
選填,Google Cloud 專案 ID。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。
- param gcp_conn_id
用於連線至 Google Cloud 的連線 ID。
- param api_version
使用的 API 版本 (例如 v1beta4)。
- param validate_body
是否應驗證主體。預設值為 True。
- param impersonation_chain
選填的服務帳戶,用於使用短期憑證模擬,或是取得清單中最後一個帳戶的 access_token 所需的鏈結帳戶清單,該帳戶將在請求中被模擬。如果設定為字串,則帳戶必須授與原始帳戶「服務帳戶權杖建立者」IAM 角色。如果設定為序列,則清單中的身分必須授與緊鄰前一個身分「服務帳戶權杖建立者」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]¶
基底類別:
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://。請參閱
CloudSQLDatabaseHook
以瞭解如何定義gcpcloudsql://
連線的詳細資訊。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 需求,提及的 dict 應儲存為字串,並以 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]¶