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)[source]¶
-
创建一个新的 Cloud SQL 实例。
如果存在同名实例,将不会执行任何操作,并且操作符将成功。
另请参阅
有关如何使用此操作符的更多信息,请查看指南: CloudSQLCreateInstanceOperator
- 参数
body (dict) – Cloud SQL 插入 API 所需的主体,如 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) – 如果应验证主体,则为 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')[source]¶
- 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)[source]¶
-
更新 Cloud SQL 实例的设置。
注意:这是一个部分更新,因此只会更新设置中包含的值。
在请求主体中,根据修补语义规则,提供实例资源的相关部分。 https://cloud.google.com/sql/docs/mysql/admin-api/how-tos/performance#patch
另请参阅
有关如何使用此操作符的更多信息,请查看指南: CloudSQLInstancePatchOperator
- 参数
body (dict) – Cloud SQL 修补 API 所需的主体,如 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')[source]¶
- 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)[source]¶
-
删除 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')[source]¶
- 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)[source]¶
-
将一个实例克隆到目标实例。
另请参阅
有关如何使用此操作符的更多信息,请查看指南: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')[source]¶
- 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)[source]¶
-
在 Cloud SQL 实例内创建一个新的数据库。
另请参阅
有关如何使用此操作符的更多信息,请查看指南:CloudSQLCreateInstanceDatabaseOperator
- 参数
instance (str) – 数据库实例 ID。这不包括项目 ID。
body (dict) – 请求正文,如 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) – 是否应验证正文。默认为 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]¶
-
使用补丁语义更新包含数据库信息的资源。
请参阅: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) – 是否应验证正文。默认为 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]¶
-
从 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]¶
-
将 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) – 是否应验证正文。默认为 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]¶
-
将 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://。有关如何定义
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',...[源代码]¶
- template_ext: collections.abc.Sequence[str] = ('.sql',)[源代码]¶