google.cloud.gcp_bigquery_dataset 模块 – 创建 GCP 数据集

注意

此模块是 google.cloud 集合 (版本 1.4.1) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install google.cloud。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在 playbook 中使用它,请指定: google.cloud.gcp_bigquery_dataset

注意

由于违反了 Ansible 包含要求,google.cloud 集合将在 Ansible 12 中删除。该集合存在 未解决的完整性测试失败。有关更多信息,请参阅 讨论主题

概要

  • 数据集允许您组织和控制对表的访问。

要求

执行此模块的主机需要以下要求。

  • python >= 2.6

  • requests >= 2.18.4

  • google-auth >= 1.3.0

参数

参数

注释

access

列表 / 元素=字典

定义一个或多个实体的数据集访问权限的对象数组。

domain

字符串

要授予访问权限的域名。任何使用指定的域名登录的用户都将被授予指定的访问权限。

group_by_email

字符串

要授予访问权限的 Google 群组的电子邮件地址。

role

字符串

描述授予 access 对象其他成员指定的用户的权限。支持基本角色、预定义角色和自定义角色。API 将预定义角色与其等效的基本角色互换为其基本角色对应物。请参阅 [官方文档](https://cloud.google.com/bigquery/docs/access-control)。

special_group

字符串

要授予访问权限的特殊组。可能的值包括:* `projectOwners`:封闭项目的拥有者。

* `projectReaders`:封闭项目的阅读者。

* `projectWriters`:封闭项目的写入者。

* `allAuthenticatedUsers`:所有经过身份验证的 BigQuery 用户。

user_by_email

字符串

要授予访问权限的用户的电子邮件地址。例如:fred@example.com

view

字典

来自不同数据集的视图,用于授予访问权限。针对该视图执行的查询将对该数据集中的表具有读取访问权限。设置此字段时,不需要 role 字段。如果该视图被任何用户更新,则需要通过更新操作再次授予对该视图的访问权限。

dataset_id

字符串 / 必需

包含此表的字段的 ID。

project_id

字符串 / 必需

包含此表的项目的 ID。

table_id

字符串 / 必需

表的 ID。ID 只能包含字母 (a-z, A-Z)、数字 (0-9) 或下划线。最大长度为 1,024 个字符。

access_token

字符串

如果凭据类型为 accesstoken,则为 OAuth2 访问令牌。

auth_kind

字符串 / 必需

使用的凭据类型。

选项

  • "application"

  • "machineaccount"

  • "serviceaccount"

  • "accesstoken"

dataset_reference

字典 / 必需

标识数据集的引用。

dataset_id

字符串 / 必需

此数据集的唯一 ID,不包含项目名称。ID 只能包含字母 (a-z, A-Z)、数字 (0-9) 或下划线。最大长度为 1,024 个字符。

project_id

字符串

包含此数据集的项目的 ID。

default_encryption_configuration

字典

数据集所有表的默认加密密钥。设置此属性后,数据集中的所有新创建的分区表都将加密密钥设置为此值,除非表创建请求(或查询)覆盖密钥。

kms_key_name

字符串 / 必需

描述将用于保护目标 BigQuery 表的 Cloud KMS 加密密钥。与您的项目关联的 BigQuery 服务帐户需要访问此加密密钥。

default_partition_expiration_ms

整数

数据集所有分区表的默认分区过期时间(以毫秒为单位)。

设置此属性后,数据集中的所有新创建的分区表都将在 `timePartitioning` 设置中具有设置为此值的 `expirationMs` 属性,并且更改该值只会影响新表,而不会影响现有表。分区中的存储将具有分区时间加上此值的过期时间。

设置此属性会覆盖对分区表使用 `defaultTableExpirationMs`:对于任何新的分区表,只使用 `defaultTableExpirationMs` 或 `defaultPartitionExpirationMs` 中的一个。如果您在创建或更新分区表时提供了明确的 `timePartitioning.expirationMs`,则该值优先于此属性指示的默认分区过期时间。

default_table_expiration_ms

整数

数据集所有表的默认生命周期(以毫秒为单位)。

最小值为 3600000 毫秒(一小时)。

设置此属性后,数据集中的所有新创建的表都将 `expirationTime` 属性设置为创建时间加上此属性中的值,并且更改该值只会影响新表,而不会影响现有表。当给定表的 `expirationTime` 到达时,该表将自动删除。

如果在表过期之前修改或删除表的 `expirationTime`,或者如果在创建表时提供了明确的 `expirationTime`,则该值优先于此属性指示的默认过期时间。

description

字符串

数据集的用户友好型描述。

env_type

字符串

指定您在哪个 Ansible 环境中运行此模块。

除非您知道自己在做什么,否则不应设置此项。

这只会更改任何 API 请求的用户代理字符串。

friendly_name

字符串

数据集的描述性名称。

labels

字典

与该数据集关联的标签。您可以使用这些标签来组织和分组您的数据集。

location

字符串

数据集应驻留的地理位置。

请参阅 [官方文档](https://cloud.google.com/bigquery/docs/dataset-locations)。

有两种类型的地理位置:区域位置或多区域位置。区域位置是特定的地理位置,例如东京,而多区域位置是包含至少两个地理位置的大型地理区域,例如美国。

默认值为多区域位置 `US`。

更改此设置将强制创建一个新的资源。

默认值: "US"

name

字符串

数据集名称。

project

字符串

要使用的 Google Cloud Platform 项目。

scopes

列表 / 元素=字符串

要使用的作用域数组

service_account_contents

jsonarg

服务帐户 JSON 文件的内容,可以是字典,也可以是表示它的 JSON 字符串。

service_account_email

字符串

如果选择 machineaccount 并且用户不想使用默认电子邮件,则可以选择的服务帐户电子邮件地址。

service_account_file

路径

如果选择 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。

state

字符串

指定的对象是否应该存在于 GCP 中

选项

  • "present" ← (默认)

  • "absent"

注释

注意

  • API 参考: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets

  • 数据集简介: https://cloud.google.com/bigquery/docs/datasets-intro

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_FILE 环境变量设置 service_account_file。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_CONTENTS 环境变量设置 service_account_contents。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_EMAIL 环境变量设置 service_account_email。

  • 对于身份验证,您可以使用 GCP_ACCESS_TOKEN 环境变量设置 access_token。

  • 对于身份验证,您可以使用 GCP_AUTH_KIND 环境变量设置 auth_kind。

  • 对于身份验证,您可以使用 GCP_SCOPES 环境变量设置 scopes。

  • 只有在未设置 playbook 值时,才会使用环境变量值。

  • service_account_emailservice_account_file 选项是互斥的。

示例

- name: create a dataset
  google.cloud.gcp_bigquery_dataset:
    name: my_example_dataset
    dataset_reference:
      dataset_id: my_example_dataset
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

access

复杂

定义一个或多个实体的数据集访问权限的对象数组。

返回:成功

domain

字符串

要授予访问权限的域名。任何使用指定的域名登录的用户都将被授予指定的访问权限。

返回:成功

groupByEmail

字符串

要授予访问权限的 Google 群组的电子邮件地址。

返回:成功

role

字符串

描述授予 access 对象其他成员指定的用户的权限。支持基本角色、预定义角色和自定义角色。API 将预定义角色与其等效的基本角色互换为其基本角色对应物。请参阅 [官方文档](https://cloud.google.com/bigquery/docs/access-control)。

返回:成功

specialGroup

字符串

要授予访问权限的特殊组。可能的值包括:* `projectOwners`:封闭项目的拥有者。

* `projectReaders`:封闭项目的阅读者。

* `projectWriters`:封闭项目的写入者。

* `allAuthenticatedUsers`:所有经过身份验证的 BigQuery 用户。

返回:成功

userByEmail

字符串

要授予访问权限的用户电子邮件地址。例如: fred@example.com

返回:成功

view

复杂

来自不同数据集的视图,用于授予访问权限。针对该视图执行的查询将对该数据集中的表具有读取访问权限。设置此字段时,不需要 role 字段。如果该视图被任何用户更新,则需要通过更新操作再次授予对该视图的访问权限。

返回:成功

datasetId

字符串

包含此表的字段的 ID。

返回:成功

projectId

字符串

包含此表的项目的 ID。

返回:成功

tableId

字符串

表的 ID。ID 只能包含字母 (a-z, A-Z)、数字 (0-9) 或下划线。最大长度为 1,024 个字符。

返回:成功

creationTime

整数

创建此数据集的时间,以自纪元以来的毫秒数表示。

返回:成功

datasetReference

复杂

标识数据集的引用。

返回:成功

datasetId

字符串

此数据集的唯一 ID,不包含项目名称。ID 只能包含字母 (a-z, A-Z)、数字 (0-9) 或下划线。最大长度为 1,024 个字符。

返回:成功

projectId

字符串

包含此数据集的项目的 ID。

返回:成功

defaultEncryptionConfiguration

复杂

数据集所有表的默认加密密钥。设置此属性后,数据集中的所有新创建的分区表都将加密密钥设置为此值,除非表创建请求(或查询)覆盖密钥。

返回:成功

kmsKeyName

字符串

描述将用于保护目标 BigQuery 表的 Cloud KMS 加密密钥。与您的项目关联的 BigQuery 服务帐户需要访问此加密密钥。

返回:成功

defaultPartitionExpirationMs

整数

数据集所有分区表的默认分区过期时间(以毫秒为单位)。

设置此属性后,数据集中的所有新创建的分区表都将在 `timePartitioning` 设置中具有设置为此值的 `expirationMs` 属性,并且更改该值只会影响新表,而不会影响现有表。分区中的存储将具有分区时间加上此值的过期时间。

设置此属性会覆盖对分区表使用 `defaultTableExpirationMs`:对于任何新的分区表,只使用 `defaultTableExpirationMs` 或 `defaultPartitionExpirationMs` 中的一个。如果您在创建或更新分区表时提供了明确的 `timePartitioning.expirationMs`,则该值优先于此属性指示的默认分区过期时间。

返回:成功

defaultTableExpirationMs

整数

数据集所有表的默认生命周期(以毫秒为单位)。

最小值为 3600000 毫秒(一小时)。

设置此属性后,数据集中的所有新创建的表都将 `expirationTime` 属性设置为创建时间加上此属性中的值,并且更改该值只会影响新表,而不会影响现有表。当给定表的 `expirationTime` 到达时,该表将自动删除。

如果在表过期之前修改或删除表的 `expirationTime`,或者如果在创建表时提供了明确的 `expirationTime`,则该值优先于此属性指示的默认过期时间。

返回:成功

description

字符串

数据集的用户友好型描述。

返回:成功

etag

字符串

资源的哈希值。

返回:成功

friendlyName

字符串

数据集的描述性名称。

返回:成功

id

字符串

数据集的完整限定唯一名称,格式为 projectId:datasetId。不包含项目名称的数据集名称在 datasetId 字段中给出。

返回:成功

labels

字典

与该数据集关联的标签。您可以使用这些标签来组织和分组您的数据集。

返回:成功

lastModifiedTime

整数

上次修改此数据集或其任何表格的日期,以自纪元以来的毫秒数表示。

返回:成功

location

字符串

数据集应驻留的地理位置。

请参阅 [官方文档](https://cloud.google.com/bigquery/docs/dataset-locations)。

有两种类型的地理位置:区域位置或多区域位置。区域位置是特定的地理位置,例如东京,而多区域位置是包含至少两个地理位置的大型地理区域,例如美国。

默认值为多区域位置 `US`。

更改此设置将强制创建一个新的资源。

返回:成功

name

字符串

数据集名称。

返回:成功

作者

  • Google Inc. (@googlecloudplatform)