文档
创建数据集

创建数据集

创建数据集 本文档介绍如何在 BigQuery 中创建数据集。 您可以通过以下方式创建数据集: 使用 Google Cloud 控制台。 使用 SQL 查询。 在 bq 命令行工具中使用 bq mk 命令。 调用 datasets.insert API 方法。 使用客户端库。 复

Related articles

适用于 iPhone 的 5 款最佳免费 VPN(2024 年) 2022年4个最好vpn chrome 扩展程序,以确保您的在线隐私 2024 年最佳iPhone VPN推荐 付费和免费iPhone VPN用户翻墙指南 马来西亚 5 款最佳免费 VPN(2024 年) 2024 年最佳VPN推荐 翻墙梯子白嫖最多中国人用的 免费vpn 服务

创建数据集

本文档介绍如何在 BigQuery 中创建数据集。

您可以通过以下方式创建数据集:

  • 使用 Google Cloud 控制台。
  • 使用 SQL 查询。
  • 在 bq 命令行工具中使用 bq mk 命令。
  • 调用 datasets.insert API 方法。
  • 使用客户端库。
  • 复制现有数据集。

如需查看复制数据集的步骤(包括跨区域复制),请参阅复制数据集。

如需了解如何查询公共数据集中的表,请参阅使用 Google Cloud 控制台查询公共数据集。

数据集限制

BigQuery 数据集有以下限制:

准备工作

授予为用户提供执行本文档中的每个任务所需权限的 Identity and Access Management (IAM) 角色。

所需权限

如需创建数据集,您需要拥有 bigquery.datasets.create IAM 权限。

以下每个预定义 IAM 角色都包含创建数据集所需的权限:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.user
  • roles/bigquery.admin

如需详细了解 BigQuery 中的 IAM 角色,请参阅预定义的角色和权限。

命名数据集

在 BigQuery 中创建数据集时,每个项目的数据集名称不得重复。数据集名称可以包含以下内容:

  • 不超过 1024 个字符。
  • 字母(大写字母或小写字母)、数字和下划线。

默认情况下,数据集名称区分大小写。mydatasetMyDataset 可以位于同一项目中,除非其中一个不区分大小写。

数据集名称不能包含空格或特殊字符,例如 -&@%

隐藏数据集

隐藏数据集是一个名称以下划线开头的数据集。您可以像在任何其他数据集中一样查询隐藏数据集中的表和视图。隐藏数据集具有以下限制:

  • 在 Google Cloud 控制台的探索器面板中处于隐藏状态。
  • 不会显示在任何 INFORMATION_SCHEMA 视图中。
  • 不能与关联的数据集搭配使用。
  • 不会显示在 Data Catalog 中。

创建数据集

要创建数据集,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中打开 BigQuery 页面。

    转到 BigQuery 页面

  2. 在探索器面板中,选择您要在其中创建数据集的项目。

  3. 展开 more_vert
    操作选项,然后点击创建数据集。

  4. 在创建数据集页面中执行以下操作:

    • 对于数据集 ID,输入唯一的数据集名称。
    • 对于位置类型,为数据集选择一个地理位置。创建数据集后,就无法再更改此位置。

      注意:如果您选择 EU 或某个欧盟区域作为数据集位置,则核心 BigQuery 客户数据会驻留在欧盟。核心 BigQuery 客户数据是在服务专用条款中定义的。

    • 可选:如果您希望此数据集中的表过期,请选择启用表过期时间,然后指定默认表存在时间上限(以天为单位)。

      注意:如果您的项目未与结算账号关联,则 BigQuery 会自动为您在该项目中创建的数据集设置默认表过期时间。您可以为数据集指定较短的默认表过期时间,但不能指定较长的默认表过期时间。

    • 可选:如果您要使用客户管理的加密密钥 (CMEK),请展开高级选项,然后选择客户管理的加密密钥 (CMEK)。

    • 可选:如果您要使用不区分大小写的表名称,请展开高级选项,然后选择启用不区分大小写的表名称。

    • 可选:如果您要使用默认排序规则,请展开高级选项,选择启用默认排序规则,然后选择要使用的默认排序规则。

    • 可选:如果您要使用默认舍入模式,请展开高级选项,然后选择要使用的默认舍入模式。

    • 可选:如果您要启用物理存储结算模式,请展开高级选项,然后选择启用物理存储结算模式。

      更改数据集的结算模式后,更改需要 24 小时才能生效。

      更改数据集的存储结算模式后,您必须等待 14 天才能再次更改存储结算模式。

    • 可选:如果您要设置数据集的时间旅行窗口,请展开高级选项,然后选择要使用的时间旅行窗口。

    • 点击创建数据集。

SQL

使用 CREATE SCHEMA 语句。

如需在非默认项目中创建数据集,请按照以下格式将项目 ID 添加到数据集 ID:.

  1. 在 Google Cloud 控制台中,进入 BigQuery 页面。

    转到 BigQuery

  2. 在查询编辑器中,输入以下语句:

    CREATE SCHEMA .
      OPTIONS (
        default_kms_key_name = '',
        default_partition_expiration_days = ,
        default_table_expiration_days = ,
        description = '',
        labels = [('',''),('','')],
        location = '',
        max_time_travel_hours = ,
        storage_billing_model = );

    替换以下内容:

  3. 点击 play_circle 运行。

如需详细了解如何运行查询,请参阅运行交互式查询。

bq

如需创建新数据集,请使用带有 --location 标志的 bq mk 命令。

如需在非默认项目中创建数据集,请按照以下格式将项目 ID 添加到数据集名称::

bq --location= mk \
    --dataset \
    --default_kms_key= \
    --default_partition_expiration= \
    --default_table_expiration= \
    --description="" \
    --label=: \
    --label=: \
    --max_time_travel_hours= \
    --storage_billing_model= \
    :

替换以下内容:

  • :数据集的位置。创建数据集后,此位置无法再更改。您可以使用 .bigqueryrc 文件设置位置的默认值。

    注意:如果您选择 EU 作为数据集位置,则核心 BigQuery 客户数据会驻留在欧盟。核心 BigQuery 客户数据在服务专用条款中进行了定义。

  • :默认 Cloud Key Management Service 密钥的名称,此密钥用于保护此数据集中新创建的表,除非在创建时提供了不同的密钥。您无法使用此参数集在数据集中创建 Google 加密表。

  • :新创建的分区表中的分区的默认生命周期(以秒为单位)。默认分区到期时间没有最小值。过期时间以分区的日期加上这个整数值为准。在数据集分区表中创建的任何分区都会在分区的日期起的 秒后删除。如果在创建或更新分区表时提供 --time_partitioning_expiration 标志,则表级分区到期时间优先于数据集级默认分区到期时间。

  • :新创建的表的默认生命周期(以秒为单位)。最小值为 3600 秒(一小时)。到期时间以当前时间加上这个整数值为准。在数据集中创建的任何表都会在创建之时起的 秒后删除。如果您在创建表时未设置表过期时间,则系统会应用此值。

  • :数据集的说明

  • ::您想要在此数据集上设置为第一个标签的键值对,: 是您要设置为第二个标签的键值对。

  • :新数据集的时间旅行窗口的时长(以小时为单位)。
    值必须是 48(2 天)到 168(7 天)之间以 24 的倍数(48、72、96、120、144、168)表示的整数。如果未指定此选项,则默认值为 168 小时。

  • :设置数据集的存储结算模式。您可以将 BILLING_MODEL 值设置为 PHYSICAL 以在计算存储费用时使用物理字节,或设置为 LOGICAL 以使用逻辑字节。默认值为 LOGICAL

    更改数据集的结算模式后,更改需要 24 小时才能生效。

    更改数据集的存储结算模式后,您必须等待 14 天才能再次更改存储结算模式。

  • :您的项目 ID。

  • 是您要创建的数据集的 ID。

例如,以下命令会创建一个名为 mydataset 的数据集,数据位置设置为 US,默认表到期时间为 3600 秒(1 小时),相应说明为 This is my dataset。该命令使用的不是 --dataset 标志,而是 -d 快捷方式。如果省略 -d--dataset,该命令会默认创建一个数据集。

bq --location=US mk -d \
    --default_table_expiration 3600 \
    --description "This is my dataset." \
    mydataset

您可以输入 bq ls 命令来确认数据集已经创建。另外,您可以使用以下格式在创建新数据集时创建表:bq mk -t .。如需详细了解如何创建表,请参阅创建表。

Terraform

使用 google_bigquery_dataset 资源。

注意:您必须启用 Cloud Resource Manager API 才能使用 Terraform 创建 BigQuery 对象。

如需向 BigQuery 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为客户端库设置身份验证。

创建数据集

以下示例创建了一个名为 mydataset 的数据集。

当您使用 google_bigquery_dataset 资源创建数据集时,系统会自动向属于项目级层基本角色成员的所有账号授予对数据集的访问权限。如果您在创建数据集后运行 terraform show 命令,则数据集的 access 块类似于如下所示:

创建数据集

如需授予对数据集的访问权限,建议您使用 google_bigquery_iam 资源之一(如以下示例所示),除非您打算在数据集中创建已获授权的对象,例如已获授权的视图。在这种情况下,请使用 google_bigquery_dataset_access 资源。如需查看示例,请参阅该文档。

创建数据集并授予访问权限

以下示例创建一个名为 mydataset 的数据集,然后使用 google_bigquery_dataset_iam_policy 资源授予对该数据集的访问权限。

使用客户管理的加密密钥创建数据集

以下示例创建了一个名为 mydataset 的数据集,并且还会使用 google_kms_crypto_keygoogle_kms_key_ring 资源来指定数据集的 Cloud Key Management Service 密钥。您必须启用 Cloud Key Management Service API 才能运行此示例。

如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。

准备 Cloud Shell

  1. 启动 Cloud Shell。
  2. 设置要在其中应用 Terraform 配置的默认 Google Cloud 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    export GOOGLE_CLOUD_PROJECT=

    如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。

准备目录

每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。

  1. 在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf 扩展名,例如 main.tf。在本教程中,该文件称为 main.tf

    mkdir  && cd  && touch main.tf

  2. 如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。

    将示例代码复制到新创建的 main.tf 中。

    (可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。

  3. 查看和修改要应用到您的环境的示例参数。
  4. 保存更改。
  5. 初始化 Terraform。您只需为每个目录执行一次此操作。

    terraform init

    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:

    terraform init -upgrade

应用更改

  1. 查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:

    terraform plan

    根据需要更正配置。

  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:

    terraform apply

    等待 Terraform 显示“应用完成!”消息。

  3. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。

注意:Terraform 示例通常假定您的 Google Cloud 项目中启用了所需的 API。

数据集安全性

如需控制对 BigQuery 中数据集的访问权限,请参阅控制对数据集的访问权限。
如需了解数据加密,请参阅静态加密。

后续步骤


自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 BigQuery 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 BigQuery