本文档介绍了如何在 BigQuery 中管理数据集。 创建数据集后,您可以通过以下方式对其进行管理:
重命名数据集
目前,您无法更改现有数据集的名称,但可以复制数据集。请参阅复制数据集。
复制数据集
如需查看复制数据集的步骤(包括跨区域复制),请参阅复制数据集。
移动数据集
要手动将数据集从一个位置移动到另一个位置,请按照以下流程操作:
-
从 BigQuery 表中将数据导出到数据集所在位置的单区域或多区域 Cloud Storage 存储分区中。例如,如果您的数据集位于 EU 多区域位置,请将您的数据导出到位于 EU 的区域或多区域存储分区中。
从 BigQuery 导出数据不会产生费用,但是将导出的数据存储在 Cloud Storage 中会产生费用。BigQuery 导出操作需要遵循导出作业的相关限制。
-
将数据从 Cloud Storage 存储分区复制或移动到新位置的区域或多区域存储分区中。例如,如果要将数据从美国多区域位置移动到东京单区域位置,则需要将数据转移到位于东京的单区域存储分区。如需了解如何转移 Cloud Storage 对象,请参阅 Cloud Storage 文档中的复制、重命名和移动对象。
请注意,在不同区域之间转移数据会在 Cloud Storage 中产生网络出站费用。
-
将数据转移到新位置的 Cloud Storage 存储分区后,(在新位置)创建一个新的 BigQuery 数据集。然后,将数据从 Cloud Storage 存储分区加载到 BigQuery 中。
您不需要为将数据加载到 BigQuery 而付费,但在删除数据或存储分区之前,您需要为在 Cloud Storage 中存储数据支付费用。数据加载完毕后,在 BigQuery 中存储数据也须支付费用。将数据加载到 BigQuery 需要遵循加载作业的相关限制。
您还可以使用 Cloud Composer 以编程方式移动和复制大型数据集。
如需详细了解如何使用 Cloud Storage 存储和移动大型数据集,请参阅使用 Cloud Storage 处理大数据。
删除数据集
您可以通过以下方式删除数据集:
- 使用 Cloud Console。
- 在
bq
命令行工具中使用bq rm
命令。 - 调用
datasets.delete
API 方法。 - 使用客户端库。
所需权限
如需删除数据集,您必须至少拥有 bigquery.datasets.delete
权限。如果数据集包含表或视图,您还需要拥有 bigquery.tables.delete
权限。以下预定义 IAM 角色同时具有 bigquery.datasets.delete
和 bigquery.tables.delete
权限:
bigquery.dataOwner
bigquery.admin
此外,如果用户具有 bigquery.datasets.create
权限,则当该用户创建数据集时,系统会为其授予该数据集的 bigquery.dataOwner
访问权限。具有 bigquery.dataOwner
访问权限的用户可以删除其所创建的数据集和表。
如需详细了解 BigQuery 中的 IAM 角色和权限,请参阅预定义的角色和权限。
检查数据集是否存在
Java
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 BigQuery Java API 参考文档。
Python
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
删除数据集
使用 Cloud Console 删除数据集时,数据集中的表和视图(以及其中所含的数据)也会随之一起删除。使用 bq
命令行工具删除数据集时,您必须使用 -r
标志删除数据集的表和视图。
如需删除数据集,请执行以下操作:
控制台
在浏览器面板中,展开您的项目并选择数据集。
点击删除数据集。
在删除数据集对话框中,将数据集的名称输入到文本框中,然后点击删除。
bq
搭配使用 bq rm
命令和(可选)--dataset
或 -d
快捷方式标志来删除数据集。使用 bq
命令行工具移除数据集时,您必须确认该命令。您可以使用 -f
标志跳过确认。
此外,如果数据集包含表,您必须使用 -r
标志移除数据集中的所有表。如果您要删除非默认项目中的表,请按以下格式将相应项目 ID 添加到数据集名称中:project_id:dataset
。
<pre>
bq rm -r -f -d <var>project_id</var>:<var>dataset</var>
<pre>
替换以下内容:
project_id
是项目 ID。dataset
是要删除的数据集的名称。
示例:
输入以下命令可从您的默认项目中移除 mydataset
及其所含的全部表。该命令选用了 -d
快捷方式。
bq rm -r -d mydataset
出现提示时,请输入 y
并按 Enter 键。
输入以下命令可从 myotherproject
中移除 mydataset
及其所含的全部表。该命令未选用 -d
快捷方式。-f
标志用于跳过确认。
bq rm -r -f myotherproject:mydataset
API
调用 datasets.delete
方法来删除数据集,并将 deleteContents
参数设置为 true
来删除其中所含的表。
C#
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 C# 设置说明进行操作。如需了解详情,请参阅 BigQuery C# API 参考文档。
Go
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Go 设置说明进行操作。如需了解详情,请参阅 BigQuery Go API 参考文档。
Java
试用此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 BigQuery Java API 参考文档。
Node.js
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 BigQuery Node.js API 参考文档。
PHP
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 PHP 设置说明进行操作。如需了解详情,请参阅 BigQuery PHP API 参考文档。
Python
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 BigQuery Python API 参考文档。
Ruby
在尝试此示例之前,请按照《BigQuery 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。如需了解详情,请参阅 BigQuery Ruby API 参考文档。