列出表快照
本文档介绍如何通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS
表、使用 bq ls
命令或者调用 tables.list
API 在 Google Cloud Console 中获取 BigQuery 数据集中的表快照。此外还介绍如何通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS
表来列出指定基表的所有表快照。本文档适用于熟悉 BigQuery 表和表快照的用户。
权限和角色
本部分介绍列出数据集中的表快照所需的 Identity and Access Management (IAM) 权限以及授予这些权限的预定义 IAM 角色。列出表快照所需的权限和角色与列出其他类型的表所需的权限和角色相同。
权限
如需列出数据集中的表快照,您需要以下权限:
权限 | 资源 |
---|---|
bigquery.tables.list
|
包含表快照的数据集。 |
角色
提供所需权限的预定义 BigQuery 角色如下所示:
角色 | 资源 |
---|---|
以下任意一项:bigquery.dataUser bigquery.dataViewer bigquery.dataEditor bigquery.dataOwner bigquery.admin
|
包含表快照的数据集。 |
列出数据集中的表快照
获取数据集中的表快照的列表与列出其他类型的表类似。表快照的类型为 SNAPSHOT
。
您可以使用以下选项之一列出表快照:
控制台
在 Google Cloud 控制台中,转到 BigQuery 页面。
在浏览器窗格中,展开要列出其表快照的数据集的项目和数据集节点。
您可以在数据集中使用图标来识别表快照。
SQL
查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS
视图:
在 Google Cloud 控制台中,转到 BigQuery 页面。
在查询编辑器中,输入以下语句:
SELECT * FROM PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS;
请替换以下内容:
PROJECT_ID
:包含要列出的快照的项目的 ID。DATASET_NAME
:包含要列出的快照的数据集的名称。
点击
运行。
如需详细了解如何运行查询,请参阅运行交互式查询。
输出类似于以下内容:
+---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+ | table_catalog | table_schema | table_name | base_table_catalog | base_table_schema | base_table_name | snapshot_time | +---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+ | myproject | mydataset | mysnapshot | basetableproject | basetabledataset | basetable | 2021-04-16 14:05:27.519 UTC | +---------------+----------------+------------------+--------------------+-------------------+-----------------+-----------------------------+
bq
在 Cloud Shell 中输入以下命令:
bq ls \ PROJECT_ID:DATASET_NAME
请替换以下内容:
PROJECT_ID
:包含要列出的快照的项目的 ID。DATASET_NAME
:包含要列出的快照的数据集的名称。
输出类似于以下内容:
+-------------------------+--------+---------------------+-------------------+ | tableId | Type | Labels | Time Partitioning | +-------------------------+--------+---------------------+-------------------+ | mysnapshot |SNAPSHOT| | | +-------------------------+--------+---------------------+-------------------+
API
使用以下参数调用 tables.list
方法:
参数 | 值 |
---|---|
projectId |
包含要列出的快照的项目的 ID。 |
datasetId |
包含要列出的快照的数据集的名称。 |
列出指定基表的表快照
您可以通过查询 INFORMATION_SCHEMA.TABLE_SNAPSHOTS
视图来列出指定基表的快照:
SELECT * FROM PROJECT_ID.DATASET_NAME.INFORMATION_SCHEMA.TABLE_SNAPSHOTS WHERE base_table_name = 'books';
请替换以下内容:
PROJECT_ID
:包含要列出的快照的项目的 ID。DATASET_NAME
:包含要列出的快照的数据集的名称。