本文档介绍了 Storage Insights 数据集中包含的表及其架构,您可以使用这些表来分析运营模式、监控资源使用情况,并了解整个存储环境中的活动。
元数据的数据集架构
以下各部分介绍了数据集中包含的元数据字段。如需详细了解 BigQuery 列模式,请参阅模式。列模式决定了 BigQuery 存储和查询数据的方式。
存储桶元数据
存储桶元数据架构包含 bucket_attributes_view 和 bucket_attributes_latest_snapshot_view 表。存储桶元数据表具有以下字段:
| 元数据字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
snapshotTime 字段以 RFC 3339 格式保存存储桶元数据快照的刷新时间。 |
name |
NULLABLE |
STRING |
存储分区的名称。 |
location |
NULLABLE |
STRING |
相应存储桶的位置。相应存储桶中对象的对象数据位于此位置内的物理存储空间中。 |
project |
NULLABLE |
INTEGER |
相应存储桶所属项目的编号。 |
storageClass |
NULLABLE |
STRING |
相应存储桶的默认存储类别。 |
public |
NULLABLE |
RECORD |
已弃用。此字段用于指明存储桶是否可公开访问。请改用 iamConfiguration。 |
public.bucketPolicyOnly |
NULLABLE |
BOOLEAN |
已弃用。此字段是 public 记录的一部分,用于指示是否启用了统一存储桶级访问权限,该权限可防止通过对象级 ACL 授予访问权限。 |
public.publicAccessPrevention |
NULLABLE |
STRING |
已弃用。此字段是 public 记录的一部分,用于指明是否禁止公开访问相应存储桶。 |
autoclass |
NULLABLE |
RECORD |
存储桶的 Autoclass 配置,启用后,该配置会根据对象的访问方式和时间控制对象的存储类别。 |
autoclass.enabled |
NULLABLE |
BOOLEAN |
Autoclass 是否已启用。 |
autoclass.toggleTime |
NULLABLE |
TIMESTAMP |
上次为此存储桶启用或停用 Autoclass 的时间,采用 RFC 3339 格式。 |
versioning |
NULLABLE |
BOOLEAN |
相应存储桶是否已启用版本控制。如需了解详情,请参阅对象版本控制。 |
lifecycle |
NULLABLE |
BOOLEAN |
相应存储桶是否具有生命周期配置。如需了解详情,请参阅生命周期管理。 |
metageneration |
NULLABLE |
INTEGER |
相应存储桶的元数据生成。 |
timeCreated |
NULLABLE |
TIMESTAMP |
存储桶的创建时间,采用 RFC 3339 格式。 |
tags |
NULLABLE |
RECORD |
已弃用。此字段包含与相应存储桶关联的用户定义的键值对。请改用 resourceTags。 |
tags.lastUpdatedTime |
NULLABLE |
TIMESTAMP |
已弃用。此字段表示上次更新 tags 的时间。 |
tags.tagMap |
REPEATED |
RECORD |
已弃用。此字段是 tags 记录的一部分,包含标记键和值的映射。 |
tags.tagMap.key |
NULLABLE |
STRING |
已弃用。此字段是 tags.tagMap 记录的一部分,表示标记的键。 |
tags.tagMap.value |
NULLABLE |
STRING |
已弃用。此字段是 tags.tagMap 记录的一部分,表示标记的值。 |
labels |
REPEATED |
RECORD |
用户提供的存储桶标签,以键值对形式表示。 |
labels.key |
NULLABLE |
STRING |
单个标签条目。 |
labels.value |
NULLABLE |
STRING |
标签的值。 |
softDeletePolicy |
NULLABLE |
RECORD |
存储桶的软删除政策,用于定义存储桶中的对象在被删除后以软删除状态保留的时间段。处于软删除状态的对象无法永久删除,并且在 hardDeleteTime 之前可以恢复。 |
softDeletePolicy.effectiveTime |
NULLABLE |
DATETIME |
软删除政策生效的日期时间,采用 RFC 3339 格式。 每当 |
softDeletePolicy.retentionDurationSeconds |
NULLABLE |
LONG |
软删除的对象被保留且无法永久删除的时间段(以秒为单位)。该值必须大于或等于 604800(7 天)且小于 7776000(90 天)。该值也可以设置为 0,这会停用软删除政策。 |
iamConfiguration |
NULLABLE |
RECORD |
存储桶的 IAM 配置。 |
iamConfiguration.uniformBucketLevelAccess |
NULLABLE |
RECORD |
相应存储桶的统一存储桶级访问权限配置。 |
iamConfiguration.uniformBucketLevelAccess.enabled |
NULLABLE |
BOOLEAN |
相应存储桶是否使用统一的存储桶级访问权限。 |
iamConfiguration.publicAccessPrevention |
NULLABLE |
STRING |
相应存储桶的禁止公开访问状态,为 "inherited" 或 "enforced"。 |
resourceTags |
REPEATED |
RECORD |
相应存储桶的标记。如需了解详情,请参阅 Cloud Resource Manager API。 |
resourceTags.key |
NULLABLE |
STRING |
resourceTags 键。 |
resourceTags.value |
NULLABLE |
STRING |
resourceTags 值。 |
对象元数据
对象元数据架构包括 object_attributes_view 和 object_attributes_latest_snapshot_view 表。对象元数据表具有以下字段:
| 元数据字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
snapshotTime 字段以 RFC 3339 格式保存对象元数据快照的刷新时间。 |
bucket |
NULLABLE |
STRING |
包含相应对象的存储桶的名称。 |
location |
NULLABLE |
STRING |
相应存储桶的位置。相应存储桶中对象的对象数据位于此位置内的物理存储空间中。 |
componentCount |
NULLABLE |
INTEGER |
仅针对复合对象返回。复合对象中非复合对象的数量。componentCount 包含用于组合当前对象的任何复合对象中包含的非复合对象。 |
contentDisposition |
NULLABLE |
STRING |
对象数据的 Content-Disposition。 |
contentEncoding |
NULLABLE |
STRING |
对象数据的 Content-Encoding。 |
contentLanguage |
NULLABLE |
STRING |
对象数据的 Content-Language。 |
contentType |
NULLABLE |
STRING |
对象数据的 Content-Type。 |
crc32c |
NULLABLE |
INTEGER |
CRC32c 校验和(如 RFC 4960 附录 B 中所述);使用 base64 以 big-endian 字节顺序编码。 |
customTime |
NULLABLE |
TIMESTAMP |
用户指定的对象时间戳,采用 RFC 3339 格式。 |
etag |
NULLABLE |
STRING |
对象的 HTTP 1.1 实体标记。 |
eventBasedHold |
NULLABLE |
BOOLEAN |
对象是否受基于事件的保全保护。 |
generation |
NULLABLE |
INTEGER |
此对象的内容世代。 |
md5Hash |
NULLABLE |
STRING |
数据的 MD5 哈希,使用 base64 编码。对于复合对象,此字段不存在。 |
mediaLink |
NULLABLE |
STRING |
用于下载对象数据的网址。 |
metadata |
REPEATED |
RECORD |
用户提供的元数据,以键值对形式表示。 |
metadata.key |
NULLABLE |
STRING |
单个元数据条目。 |
metadata.value |
NULLABLE |
STRING |
元数据值。 |
metageneration |
NULLABLE |
INTEGER |
此世代的此对象的元数据版本。 |
name |
NULLABLE |
STRING |
对象的名称。 |
selfLink |
NULLABLE |
STRING |
相应对象的网址。 |
size |
NULLABLE |
INTEGER |
数据的 Content-Length(以字节为单位)。 |
storageClass |
NULLABLE |
STRING |
对象的存储类别。 |
temporaryHold |
NULLABLE |
BOOLEAN |
相应对象是否受临时冻结约束。 |
timeCreated |
NULLABLE |
TIMESTAMP |
对象的创建时间,采用 RFC 3339 格式。 |
timeDeleted |
NULLABLE |
TIMESTAMP |
对象的删除时间,采用 RFC 3339 格式。 |
updated |
NULLABLE |
TIMESTAMP |
对象元数据的修改时间,采用 RFC 3339 格式。 |
timeStorageClassUpdated |
NULLABLE |
TIMESTAMP |
对象的存储类别上次更改的时间。 |
retentionExpirationTime |
NULLABLE |
TIMESTAMP |
可以删除对象的最早时间,取决于为对象设置的任何保留配置以及为包含该对象的存储桶设置的任何保留政策。retentionExpirationTime 的值以 RFC 3339 格式提供。 |
softDeleteTime |
NULLABLE |
DATETIME |
对象被软删除的时间。仅适用于具有软删除政策的存储桶中的对象。 |
hardDeleteTime |
NULLABLE |
DATETIME |
软删除的对象被永久删除且无法再恢复的时间。该值是 softDeleteTime 值与相应存储桶的 softDeletePolicy.retentionDurationSeconds 值之和。仅适用于具有软删除政策的存储桶中的对象。 |
project |
NULLABLE |
INTEGER |
相应存储桶所属项目的编号。 |
最新的存储桶和对象元数据快照
关联的数据集通过以下专用视图公开了存储桶和对象元数据的最新快照:
bucket_attributes_latest_snapshot_view表可提供 Cloud Storage 存储桶的最新元数据。其结构与存储桶元数据架构相匹配。object_attributes_latest_snapshot_view表可提供 Cloud Storage 对象的最新元数据。其结构与对象元数据架构相匹配。
项目元数据
关联的数据集会将项目元数据公开为一个名为 project_attributes_view 的视图:
| 元数据字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
snapshotTime 字段以 RFC 3339 格式保存项目元数据快照的刷新时间。 |
name |
NULLABLE |
STRING |
项目的名称。 |
id |
NULLABLE |
STRING |
项目的唯一标识符。 |
number |
NULLABLE |
INTEGER |
与项目关联的数值。 |
活动数据表的数据集架构
Storage Insights 数据集提供活动数据,包括运营指标、错误日志和具有可自定义范围的汇总视图,以满足各种分析需求。以下部分介绍了活动数据架构以及其中提供的数据。
对象活动数据
Storage Insights数据集中的 object_events_view 表提供了可查询的记录,其中包含对象创建、更新和删除操作、元数据,以及在这些操作期间遇到的错误的相关详细信息。您可以通过查询 object_events_view 视图,使用这些数据来跟踪和排查存储资产的更改。object_events_view 视图中的数据范围限定为您的 Storage Intelligence 订阅,并列出了其中的所有已启用对象。
object_events_view 表包含以下字段:
| 字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
requestCompletionTimestamp |
NULLABLE |
TIMESTAMP |
请求完成时的时间戳,采用 RFC 3339 格式。 |
project |
NULLABLE |
INTEGER |
拥有相应存储桶资源的项目编号。 |
bucketName |
NULLABLE |
STRING |
请求中指定的存储桶的名称。 |
objectName |
NULLABLE |
STRING |
请求中指定对象的名称。此字段可为 null。 |
requestOperation |
NULLABLE |
STRING |
执行的 Cloud Storage 操作。此字段仅限于写入、更新和删除操作,可以为 null。 |
requestBytes |
NULLABLE |
INTEGER |
请求中发送的字节数。 |
responseBytes |
NULLABLE |
INTEGER |
响应中发送的字节数。 |
requestProcessingTimeMicros |
NULLABLE |
INTEGER |
服务器处理请求所用的时间(以微秒为单位)。 此时间从收到第一个字节开始计算,直到发送响应为止。对于可续传上传,最终上传请求的响应会确定端点。 |
requestId |
NULLABLE |
STRING |
相应请求的标识符。 |
requestHost |
NULLABLE |
STRING |
原始请求中指定的主机。 |
requestHttpMethod |
NULLABLE |
STRING |
相应请求所使用的 HTTP 方法。 |
responseStatus |
NULLABLE |
INTEGER |
服务器响应中发送的 HTTP 状态代码。 |
requestReferrer |
NULLABLE |
STRING |
请求的 HTTP 引荐来源网址。 |
size |
NULLABLE |
INTEGER |
此对象的大小(以字节为单位)。 |
generation |
NULLABLE |
INTEGER |
对象的内容世代,用于对象版本控制。 |
timeCreated |
NULLABLE |
TIMESTAMP |
对象的创建时间,采用 RFC 3339 格式。 |
storageClass |
NULLABLE |
STRING |
对象的存储类别。 |
errorReason |
NULLABLE |
STRING |
错误原因(仅限 429 错误)。 |
location |
NULLABLE |
STRING |
对象的位置。 |
项目活动视图
project_activity_view 表可提供项目中的汇总运营分析洞见。该表通过统计操作类型、传输的字节数以及响应代码和错误来汇总总活动。您可以使用项目活动数据分析进行监控、跟踪和内部费用归因。视图中的数据取决于您的 Storage Intelligence 订阅范围。该视图仅显示订阅中已有效启用的存储桶和对象的汇总数据。例如,如果您仅为 10 个特定存储桶启用 Storage Intelligence,则该视图将仅显示这 10 个存储桶的数据。反之,如果您在较高级别(组织、文件夹或项目)启用 Storage Intelligence,则该范围内的所有存储桶和对象都会自动纳入其中,并且视图会显示这些存储桶和对象的汇总数据。
project_activity_view 表包含以下字段:
| 字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
快照的开始时间,采用 RFC 3339 格式。 |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
快照的结束时间,采用 RFC 3339 格式。 |
project |
NULLABLE |
INTEGER |
项目编号。 |
totalRequests |
NULLABLE |
INTEGER |
整个项目中的请求总数。 |
totalReads |
NULLABLE |
INTEGER |
读取操作的总次数。 |
totalWrites |
NULLABLE |
INTEGER |
写入操作的总次数。 |
totalUpdates |
NULLABLE |
INTEGER |
更新操作的总次数。 |
totalDeletes |
NULLABLE |
INTEGER |
删除操作的总数。 |
totalLists |
NULLABLE |
INTEGER |
列表操作的总次数。 |
totalRequestBytes |
NULLABLE |
INTEGER |
传输的请求字节总数。 |
totalResponseBytes |
NULLABLE |
INTEGER |
已传输的响应字节总数。 |
count4xx |
NULLABLE |
INTEGER |
4xx 错误的总数。 |
count5xx |
NULLABLE |
INTEGER |
5xx 错误总数。 |
count2xx |
NULLABLE |
INTEGER |
2xx 成功响应的总数。 |
count400 |
NULLABLE |
INTEGER |
错误请求的 400 错误总数。 |
count401 |
NULLABLE |
INTEGER |
未经授权的请求的 401 错误总数。 |
count403 |
NULLABLE |
INTEGER |
禁止的请求的 403 错误总数。 |
count429 |
NULLABLE |
INTEGER |
用量限额超出请求的 429 错误总数。 |
存储桶活动视图
bucket_activity_view 表可提供有关您所有存储桶的汇总运营数据分析。该表通过统计操作类型、传输的字节数、响应代码、错误来汇总总活动,并包含有关热门前缀的详细信息。您可以使用存储桶活动数据分析来监控存储桶级活动、排查问题、衡量用量,以及分析最活跃和最不活跃的存储桶。bucket_activity_view 表中的数据范围限定为您的 Storage Intelligence 订阅,并且包含所有已启用状态的存储桶的记录。
bucket_activity_view 表包含以下字段:
| 字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
快照的开始时间,采用 RFC 3339 格式。 |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
快照的结束时间,采用 RFC 3339 格式。 |
name |
NULLABLE |
STRING |
存储分区的名称。 |
generation |
NULLABLE |
INTEGER |
相应存储桶的世代编号。 |
project |
NULLABLE |
INTEGER |
项目编号。 |
location |
NULLABLE |
STRING |
相应存储桶的位置。 |
totalRequests |
NULLABLE |
INTEGER |
对相应存储桶发出的请求总数。 |
totalReads |
NULLABLE |
INTEGER |
读取操作的总次数。 |
totalWrites |
NULLABLE |
INTEGER |
写入操作的总次数。 |
totalUpdates |
NULLABLE |
INTEGER |
更新操作的总次数。 |
totalDeletes |
NULLABLE |
INTEGER |
删除操作的总数。 |
totalLists |
NULLABLE |
INTEGER |
列表操作的总次数。 |
totalRequestBytes |
NULLABLE |
INTEGER |
传输的请求字节总数。 |
totalResponseBytes |
NULLABLE |
INTEGER |
已传输的响应字节总数。 |
count4xx |
NULLABLE |
INTEGER |
4xx 错误的总数。 |
count5xx |
NULLABLE |
INTEGER |
5xx 错误总数。 |
count2xx |
NULLABLE |
INTEGER |
2xx 成功响应的总数。 |
count400 |
NULLABLE |
INTEGER |
错误请求的 400 错误总数。 |
count401 |
NULLABLE |
INTEGER |
未经授权的请求的 401 错误总数。 |
count403 |
NULLABLE |
INTEGER |
禁止的请求的 403 错误总数。 |
count429 |
NULLABLE |
INTEGER |
因超出用量限额而导致的 429 错误的总数。 |
topPrefixes429Errors |
REPEATED |
RECORD |
出现 429 错误次数最多的前 5 个存储桶前缀,以 RECORD 形式返回,其中包含前缀(以 STRING 形式)和错误计数(以 INTEGER 形式)。 |
topPrefixesRequestBytes |
REPEATED |
RECORD |
请求字节数最多的前 5 个存储桶前缀,以 RECORD 形式返回,其中包含前缀(以 STRING 形式)和数量(以 INTEGER 形式)。 |
topPrefixesResponseBytes |
REPEATED |
RECORD |
响应字节数最多的前 5 个存储桶前缀,以 RECORD 形式返回,其中包含前缀(以 STRING 形式)和数量(以 INTEGER 形式)。 |
topPrefixesHighestOperations |
REPEATED |
RECORD |
操作次数最多的前 5 个存储桶前缀,以 RECORD 形式返回,其中包含前缀(以 STRING 形式)和数量(以 INTEGER 形式)。 |
存储桶区域活动视图
bucket_region_activity_view 表按目标区域汇总了存储桶的总发送字节数和总接收字节数。使用存储桶活动区域数据可确定最活跃的区域,从而帮助您确定最佳存储桶位置、分析区域流出情况,并根据需要考虑存储桶重定位,以优化性能、费用或弹性。bucket_region_activity_view 表中的数据范围限定为您的 Storage Intelligence 订阅,并包含所有已启用状态的存储桶的记录。
| 字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
快照的开始时间,采用 RFC 3339 格式。 |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
快照的结束时间,采用 RFC 3339 格式。 |
project |
NULLABLE |
INTEGER |
相应存储桶的项目编号。 |
name |
NULLABLE |
STRING |
存储分区的名称。 |
generation |
NULLABLE |
INTEGER |
相应存储桶的世代编号。 |
requestLocation |
NULLABLE |
STRING |
发起请求的 Google Cloud 位置。 |
bucketLocation |
NULLABLE |
STRING |
相应存储桶的位置。 |
requestBytes |
NULLABLE |
INTEGER |
指定存储桶和位置之间请求的传输总字节数。 |
responseBytes |
NULLABLE |
INTEGER |
指定存储桶和位置之间响应的传输总字节数。 |
事件和错误的相应数据集架构
在关联的数据集中,您还可以在 events_view 和 error_attributes_view 视图中查看快照处理事件和错误。如需排查快照处理错误,请参阅排查数据集错误。
事件日志
您可以在关联数据集的 events_view 视图中查看事件日志:
| 元数据字段 | 模式 | 类型 | 说明 |
|---|---|---|---|
manifest.snapshotTime |
NULLABLE |
TIMESTAMP |
以 RFC 3339 格式表示的事件快照刷新时间。 |
manifest.viewName |
NULLABLE |
STRING |
刷新视图的名称。 |
manifest.location |
NULLABLE |
STRING |
刷新数据的来源位置。 |
globalManifest.snapshotTime |
NULLABLE |
TIMESTAMP |
所有来源位置的存储桶和对象属性表的提取完成时间,采用 RFC 3339 格式。 |
eventTime |
NULLABLE |
TIMESTAMP |
事件发生的时间。 |
eventCode | NULLABLE |
STRING | 与相应条目关联的事件代码。eventCode 值如下所示:
|
错误代码
您可以在关联数据集的 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 | 源项目未配置Storage Intelligence。 | 源项目 projectErrorRecord.projectNumber 未配置Storage Intelligence。 |
为源项目 projectErrorRecord.projectNumber 配置Storage Intelligence。如需了解详情,请参阅配置和管理Storage Intelligence。 |
| 5 | 存储桶未配置Storage Intelligence。 | 存储桶 bucketErrorRecord.bucketName 未配置Storage Intelligence。 |
为存储桶 bucketErrorRecord.bucketName 配置 Storage Intelligence。如需了解详情,请参阅配置和管理Storage Intelligence。 |
| 6 | 存储桶访问身份验证错误 | 针对存储桶 bucketErrorRecord.bucketName 的 ACTIVITY_BUCKET_ACCESS_AUTHORIZATION_ERROR。 |
向服务账号授予 bucketErrorRecord.serviceAccount Identity and Access Management (IAM) 权限,以允许为存储桶 bucketErrorRecord.bucketName 注入活动。如需了解详情,请参阅向服务代理授予所需权限。 |