存储空间分析数据集功能可帮助您大规模了解、整理和管理数据。您可以选择一个组织,也可以选择包含要更新元数据的存储分区和对象的一个或多个项目或文件夹。可查询的元数据索引,用于包含在这些项目中的存储分区和对象,以 BigQuery 关联数据集的形式提供。
如果您想深入了解导出到 BigQuery 的 Cloud Storage 资源,请使用存储空间分析数据集。这些分析洞见可帮助您进行数据探索、成本优化、安全执行和治理实施。存储空间分析数据集是一项专享功能,仅通过存储空间分析情报订阅提供。
概览
存储空间分析数据集是组织内一个或多个指定源项目中的所有存储分区和对象的元数据的滚动快照。借助数据集提供的信息,您可以更好地了解并定期审核 Cloud Storage 数据。
如需创建数据集,您首先需要在项目中创建数据集配置。您可以选择一个组织,也可以选择一个或多个包含您要查看元数据的存储分区和对象的项目或文件夹。数据集配置每天生成数据集。数据集配置和数据集都是存储在 Cloud Storage 中的资源。
如需查看数据集,您必须先将数据集关联到 BigQuery。
数据集配置属性
创建数据集配置时,您可以设置数据集的这些属性。配置数据集后,您最多可能需要等待 48 小时,才能在 BigQuery 中看到第一个填充为关联数据集的数据。 任何新添加的对象或存储分区都会包含在下一个每日快照中。
名称:用于引用数据集的名称。名称用作数据集配置的标识符,并且在创建配置后无法更改。该名称最多可包含 128 个字符,可使用字母、数字和下划线。名称必须以字母开头。
说明(可选):数据集的说明。您可以随时修改说明。
数据集范围:一个必需字段,用于指定包含您要获取元数据的存储分区和对象的组织、项目或文件夹。您可以单独指定项目或文件夹,也可以通过 CSV 文件指定,其中每个项目或文件夹编号各占一行。您可以在一个数据集配置中指定最多 10,000 个项目或文件夹。数据集是针对指定的数据集范围配置的。对于每个数据集配置,只能指定一个数据集范围。您可以在修改数据集配置时更新数据集范围。
存储桶过滤条件(可选):用于按存储桶名称或区域在数据集中包含和排除特定存储桶的过滤条件。
保留期限:数据集捕获和保留数据的天数,包括数据集的创建日期。数据集每 24 小时更新一次元数据,最多可保留 90 天的数据。 在保留期限之外捕获的数据会被自动删除。例如,假设您有一个数据集是于 2023 年 10 月 1 日创建的,保留期限设置为 30 天。10 月 30 日,数据集将反映过去 30 天的数据,即 10 月 1 日至 10 月 30 日的数据。10 月 31 日,数据集将反映 10 月 2 日至 10 月 31 日的数据。您可以随时修改保留期限。
位置:用于存储数据集及其数据的位置。例如
us-central1
。位置必须受 BigQuery 支持。建议您选择 BigQuery 表的位置(如果有)。服务代理类型:配置级服务代理或项目级服务代理。
创建数据集配置会为您预配服务代理。为了读取数据集,必须向服务代理授予从 Cloud Storage 存储分区读取数据所需的权限。
项目级服务代理可以访问和写入由项目中的所有数据集配置生成的数据集。例如,如果一个项目中有多个数据集配置,那么您只需向项目级服务代理授予所需权限一次,该服务代理便能够读取和写入项目内所有数据集配置的数据集。如需详细了解读取和写入数据集所需的权限,请参阅权限。删除数据集配置时,不会删除项目范围的服务代理。
配置范围的服务代理只能访问和写入由特定数据集配置生成的数据集。这意味着,如果您有多个数据集配置,则需要向每个配置范围的服务代理授予必需的权限。删除数据集配置时,系统会删除配置范围的服务代理。
创建数据集配置后,将数据集与 BigQuery 关联。将数据集关联到 BigQuery 后,系统会在 BigQuery 中创建一个关联的数据集,以便进行查询。您可以随时关联或解除关联数据集。
如需详细了解在创建或更新数据集配置时设置的属性,请参阅 JSON API 文档中的 DatasetConfigs 资源。
支持的位置
以下 BigQuery 位置支持创建关联的数据集:
EU
US
asia-southeast1
europe-west1
us-central1
us-east1
us-east4
元数据的数据集架构
数据集中包含以下元数据字段。如需详细了解 BigQuery 列模式,请参阅模式。列模式决定了 BigQuery 存储和查询数据的方式。
snapshotTime
字段以 RFC 3339 格式存储桶元数据快照的刷新时间。
存储桶元数据
除非另有说明,否则您可以参阅适用于 JSON API 的存储桶资源表示法,详细了解以下存储桶元数据字段。
元数据字段 | 模式 | 类型 |
---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
name |
NULLABLE |
STRING |
location |
NULLABLE |
STRING |
project |
NULLABLE |
INTEGER |
storageClass |
NULLABLE |
STRING |
versioning |
NULLABLE |
BOOLEAN |
lifecycle |
NULLABLE |
BOOLEAN |
metageneration |
NULLABLE |
INTEGER |
timeCreated |
NULLABLE |
TIMESTAMP |
public |
NULLABLE |
RECORD |
public.bucketPolicyOnly |
NULLABLE |
BOOLEAN |
public.publicAccessPrevention |
NULLABLE |
STRING |
autoclass |
NULLABLE |
RECORD |
autoclass.enabled |
NULLABLE |
BOOLEAN |
autoclass.toggleTime |
NULLABLE |
TIMESTAMP |
softDeletePolicy |
NULLABLE |
OBJECT |
softDeletePolicy.effectiveTime |
NULLABLE |
DATETIME |
softDeletePolicy.retentionDurationSeconds |
NULLABLE |
LONG |
tags* |
NULLABLE |
RECORD |
tags.lastUpdatedTime |
NULLABLE |
TIMESTAMP |
tags.tagMap |
REPEATED |
RECORD |
tags.tagMap.key |
NULLABLE |
STRING |
tags.tagMap.value |
NULLABLE |
STRING |
labels |
REPEATED |
RECORD |
labels.key |
NULLABLE |
STRING |
labels.value |
NULLABLE |
STRING |
* 相应存储桶的标记。 如需了解详情,请参阅 Cloud Resource Manager API。
对象元数据
除非另有说明,否则您可以参阅适用于 JSON API 的对象资源表示法,详细了解以下对象元数据字段。
元数据字段 | 模式 | 类型 |
---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
bucket |
NULLABLE |
STRING |
location |
NULLABLE |
STRING |
componentCount |
NULLABLE |
INTEGER |
contentDisposition |
NULLABLE |
STRING |
contentEncoding |
NULLABLE |
STRING |
contentLanguage |
NULLABLE |
STRING |
contentType |
NULLABLE |
STRING |
crc32c |
NULLABLE |
INTEGER |
customTime |
NULLABLE |
TIMESTAMP |
etag |
NULLABLE |
STRING |
eventBasedHold |
NULLABLE |
BOOLEAN |
generation |
NULLABLE |
INTEGER |
md5Hash |
NULLABLE |
STRING |
mediaLink |
NULLABLE |
STRING |
metageneration |
NULLABLE |
INTEGER |
name |
NULLABLE |
STRING |
selfLink |
NULLABLE |
STRING |
size |
NULLABLE |
INTEGER |
storageClass |
NULLABLE |
STRING |
temporaryHold |
NULLABLE |
BOOLEAN |
timeCreated |
NULLABLE |
TIMESTAMP |
timeDeleted |
NULLABLE |
TIMESTAMP |
updated |
NULLABLE |
TIMESTAMP |
timeStorageClassUpdated |
NULLABLE |
TIMESTAMP |
retentionExpirationTime |
NULLABLE |
TIMESTAMP |
softDeleteTime |
NULLABLE |
DATETIME |
hardDeleteTime |
NULLABLE |
DATETIME |
metadata |
REPEATED |
RECORD |
metadata.key |
NULLABLE |
STRING |
metadata.value |
NULLABLE |
STRING |
项目元数据
项目元数据在关联的数据集中以名为 project_attributes_view
的视图的形式公开:
元数据字段 | 模式 | 类型 |
---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
name |
NULLABLE |
STRING |
id |
NULLABLE |
STRING |
number |
NULLABLE |
NUMBER |
事件和错误的相应数据集架构
在关联的数据集中,您还可以在 events_view
和 error_attributes_view
视图中查看快照处理事件和错误。如需了解如何排查快照处理错误,请参阅排查数据集错误。
活动日志
您可以在关联的数据集的 events_view
视图中查看事件日志:
列名 | 模式 | 类型 | 说明 |
---|---|---|---|
manifest.snapshotTime |
NULLABLE |
TIMESTAMP |
事件快照的刷新时间,采用 RFC 3339 格式。 |
manifest.viewName |
NULLABLE |
STRING |
已刷新的视图的名称。 |
manifest.location |
NULLABLE |
STRING |
刷新数据的来源位置。 |
eventTime |
NULLABLE |
STRING |
相应事件发生的时间。 |
eventCode |
NULLABLE |
STRING |
与相应条目关联的事件代码。事件代码 1 是指 manifest.viewName 视图正在使用快照 manifest.snapshotTime 中来源位置 manifest.location 的所有条目进行刷新。 |
错误代码
您可以在关联数据集的 error_attributes_view
视图中查看错误代码:
列名 | 模式 | 类型 | 说明 |
---|---|---|---|
errorCode |
NULLABLE |
INTEGER |
与相应条目关联的错误代码。如需查看有效值列表以及如何解决这些问题,请参阅排查数据集错误。 |
errorSource |
NULLABLE |
STRING |
错误的来源。有效值:CONFIGURATION_PREPROCESSING 。 |
errorTime |
NULLABLE |
TIMESTAMP |
发生错误的时间。 |
sourceGcsLocation |
NULLABLE |
STRING |
相应错误的来源 Cloud Storage 位置。对于项目,此字段为 null,因为项目没有位置信息。 |
bucketErrorRecord.bucketName |
NULLABLE |
STRING |
发生错误的存储桶的名称。您可以使用此信息来调试分桶错误。 |
bucketErrorRecord.serviceAccount |
NULLABLE |
STRING |
需要具备从相应存储桶注入对象权限的服务账号。您可以使用此信息来调试分桶错误。 |
projectErrorRecord.projectNumber |
NULLABLE |
INTEGER |
发生错误的项目编号。您可以使用此信息来调试项目错误。 |
projectErrorRecord.organizationName |
NULLABLE |
STRING |
项目必须属于的组织的编号,以便进行处理。值 0 表示相应数据集不在组织中。您可以使用此信息来调试项目错误。 |
排查数据集错误
如需了解如何排查记录到关联数据集中的 error_attributes_view
视图中的快照处理错误,请参阅下表:
错误代码 | 错误情况 | 错误消息 | 问题排查 |
---|---|---|---|
1 | 源项目不属于相应组织 | 源项目 projectErrorRecord.projectNumber 不属于组织 projectErrorRecord.organizationName 。 |
将源项目 projectErrorRecord.projectNumber 添加到组织 projectErrorRecord.organizationName 。如需了解如何在组织之间迁移项目,请参阅在组织之间迁移项目。 |
2 | 存储分区授权错误 | 没有权限为存储桶 bucketErrorRecord.bucketName 提取对象。 |
向服务账号授予 bucketErrorRecord.serviceAccount Identity and Access Management (IAM) 权限,以允许为存储桶 bucketErrorRecord.bucketName 提取对象。如需了解详情,请参阅向服务代理授予所需权限。 |
3 | 目标项目不属于相应组织 | 目标项目 projectErrorRecord.projectNumber 不属于组织 projectErrorRecord.organizationName 。 |
将目标项目 projectErrorRecord.projectNumber 添加到组织 projectErrorRecord.organizationName 。如需了解如何在组织之间迁移项目,请参阅在组织之间迁移项目。 |
4 | 源项目未配置存储空间分析情报。 | 源项目 projectErrorRecord.projectNumber 未配置存储空间分析情报。 |
为源项目 projectErrorRecord.projectNumber 配置存储空间分析情报。如需了解详情,请参阅配置和管理存储智能。 |
5 | 存储分区未配置存储空间分析情报。 | 存储分区 bucketErrorRecord.bucketName 未配置存储空间分析情报。 |
为存储桶 bucketErrorRecord.bucketName 配置 Storage Intelligence。如需了解详情,请参阅配置和管理存储智能。 |
注意事项
请考虑以下数据集配置:
重命名已启用分层命名空间的存储桶中的文件夹时,该存储桶中的对象名称会更新。当关联的数据集提取这些对象快照时,这些快照会被视为关联数据集中的新条目。
数据集仅在以下 BigQuery 位置中受支持。