This document describes the tables and their schemas included in Storage Insights datasets, which you can use to analyze operational patterns, monitor resource usage, and understand activity across your storage environment.
Dataset schema of metadata
The following sections describe the metadata fields included in datasets. For more information about BigQuery column modes, see Modes. The column modes determine how BigQuery stores and queries the data.
Bucket metadata
The bucket metadata schema includes the bucket_attributes_view and
bucket_attributes_latest_snapshot_view tables. The bucket metadata tables have the following
fields:
| Metadata field | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
The snapshotTime field stores the time of the bucket metadata
snapshot refresh in RFC 3339 format. |
name |
NULLABLE |
STRING |
The name of the bucket. |
location |
NULLABLE |
STRING |
The location of the bucket. Object data for objects in the bucket resides in physical storage within this location. |
project |
NULLABLE |
INTEGER |
The project number of the project the bucket belongs to. |
storageClass |
NULLABLE |
STRING |
The bucket's default storage class. |
public |
NULLABLE |
RECORD |
Deprecated. This field indicates whether a bucket is publicly accessible. Use iamConfiguration instead. |
public.bucketPolicyOnly |
NULLABLE |
BOOLEAN |
Deprecated. This field, part of the public record, indicates whether uniform bucket-level access is enabled, which prevents access through object-level ACLs. |
public.publicAccessPrevention |
NULLABLE |
STRING |
Deprecated. This field, part of the public record, indicates whether public access to the bucket is prevented. |
autoclass |
NULLABLE |
RECORD |
The bucket's Autoclass configuration, which, when enabled, controls the storage class of objects based on how and when the objects are accessed. |
autoclass.enabled |
NULLABLE |
BOOLEAN |
Whether or not Autoclass is enabled. |
autoclass.toggleTime |
NULLABLE |
TIMESTAMP |
The time at which Autoclass was last enabled or disabled for this bucket, in RFC 3339 format. |
versioning |
NULLABLE |
BOOLEAN |
Whether or not the bucket has versioning enabled. For more information, see Object Versioning. |
lifecycle |
NULLABLE |
BOOLEAN |
Whether or not the bucket has a lifecycle configuration. See lifecycle management for more information. |
metageneration |
NULLABLE |
INTEGER |
The metadata generation of this bucket. |
timeCreated |
NULLABLE |
TIMESTAMP |
The creation time of the bucket in RFC 3339 format. |
tags |
NULLABLE |
RECORD |
Deprecated. This field contains user-defined key-value pairs associated with the bucket. Use resourceTags instead. |
tags.lastUpdatedTime |
NULLABLE |
TIMESTAMP |
Deprecated. This field indicates the last time the tags were updated. |
tags.tagMap |
REPEATED |
RECORD |
Deprecated. This field, part of the tags record, contains the map of tag keys and values. |
tags.tagMap.key |
NULLABLE |
STRING |
Deprecated. This field, part of the tags.tagMap record, represents the key of a tag. |
tags.tagMap.value |
NULLABLE |
STRING |
Deprecated. This field, part of the tags.tagMap record, represents the value of a tag. |
labels |
REPEATED |
RECORD |
User-provided bucket labels, in key-value pairs. |
labels.key |
NULLABLE |
STRING |
An individual label entry. |
labels.value |
NULLABLE |
STRING |
The label's value. |
softDeletePolicy |
NULLABLE |
RECORD |
The bucket's soft delete policy, which defines the period of time during which objects in the bucket are retained in a soft-deleted state after being deleted. Objects in a soft-deleted state cannot be permanently deleted, and are restorable until their hardDeleteTime. |
softDeletePolicy.effectiveTime |
NULLABLE |
DATETIME |
The datetime at which the soft delete policy becomes effective, in RFC 3339 format.
|
softDeletePolicy.retentionDurationSeconds |
NULLABLE |
LONG |
The period of time during which a soft-deleted object is retained and cannot be permanently deleted, in seconds. The value must be greater than or equal to 604800 (7 days) and less than 7776000 (90 days). The value can also be set to 0, which disables the soft delete policy. |
iamConfiguration |
NULLABLE |
RECORD |
The IAM configuration for a bucket. |
iamConfiguration.uniformBucketLevelAccess |
NULLABLE |
RECORD |
The bucket's uniform bucket-level access configuration. |
iamConfiguration.uniformBucketLevelAccess.enabled |
NULLABLE |
BOOLEAN |
Whether or not the bucket uses uniform bucket-level access. |
iamConfiguration.publicAccessPrevention |
NULLABLE |
STRING |
The bucket's public access prevention status, which is either "inherited" or "enforced". |
resourceTags |
REPEATED |
RECORD |
The bucket's tags. For more information, see Cloud Resource Manager API. |
resourceTags.key |
NULLABLE |
STRING |
The resourceTags key. |
resourceTags.value |
NULLABLE |
STRING |
The resourceTags value. |
Object metadata
The object metadata schema includes the object_attributes_view and
object_attributes_latest_snapshot_view tables. The object metadata tables have
the following fields:
| Metadata field | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
The snapshotTime field stores the time of the object metadata snapshot refresh in RFC 3339 format. |
bucket |
NULLABLE |
STRING |
The name of the bucket containing this object. |
location |
NULLABLE |
STRING |
The location of the bucket. Object data for objects in the bucket resides in physical storage within this location. |
componentCount |
NULLABLE |
INTEGER |
Returned for composite objects only. Number of non-composite objects in the composite object. componentCount includes non-composite objects that were part of any composite objects used to compose the current object. |
contentDisposition |
NULLABLE |
STRING |
Content-Disposition of the object data. |
contentEncoding |
NULLABLE |
STRING |
Content-Encoding of the object data. |
contentLanguage |
NULLABLE |
STRING |
Content-Language of the object data. |
contentType |
NULLABLE |
STRING |
Content-Type of the object data. |
crc32c |
NULLABLE |
INTEGER |
CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64 in big-endian byte order. |
customTime |
NULLABLE |
TIMESTAMP |
A user-specified timestamp for the object in RFC 3339 format. |
etag |
NULLABLE |
STRING |
HTTP 1.1 Entity tag for the object. |
eventBasedHold |
NULLABLE |
BOOLEAN |
Whether or not the object is subject to an event-based hold. |
generation |
NULLABLE |
INTEGER |
The content generation of this object. |
md5Hash |
NULLABLE |
STRING |
MD5 hash of the data, encoded using base64. This field is not present for composite objects. |
mediaLink |
NULLABLE |
STRING |
A URL for downloading the object's data. |
metadata |
REPEATED |
RECORD |
User-provided metadata, in key-value pairs. |
metadata.key |
NULLABLE |
STRING |
An individual metadata entry. |
metadata.value |
NULLABLE |
STRING |
The metadata value. |
metageneration |
NULLABLE |
INTEGER |
The version of the metadata for this object at this generation. |
name |
NULLABLE |
STRING |
The name of the object. |
selfLink |
NULLABLE |
STRING |
A URL for this object. |
size |
NULLABLE |
INTEGER |
Content-Length of the data in bytes. |
storageClass |
NULLABLE |
STRING |
Storage class of the object. |
temporaryHold |
NULLABLE |
BOOLEAN |
Whether or not the object is subject to a temporary hold. |
timeCreated |
NULLABLE |
TIMESTAMP |
The creation time of the object in RFC 3339 format. |
timeDeleted |
NULLABLE |
TIMESTAMP |
The deletion time of the object in RFC 3339 format. |
updated |
NULLABLE |
TIMESTAMP |
The modification time of the object metadata in RFC 3339 format. |
timeStorageClassUpdated |
NULLABLE |
TIMESTAMP |
The time at which the object's storage class was last changed. |
retentionExpirationTime |
NULLABLE |
TIMESTAMP |
The earliest time that the object can be deleted, which depends on any retention configuration set for the object and any retention policy set for the bucket that contains the object. The value for retentionExpirationTime is given in RFC 3339 format. |
softDeleteTime |
NULLABLE |
DATETIME |
The time at which the object was soft deleted. Only available for objects in buckets with a soft delete policy. |
hardDeleteTime |
NULLABLE |
DATETIME |
The time at which a soft-deleted object is permanently deleted and can no longer be restored. The value is the sum of the softDeleteTime value and the softDeletePolicy.retentionDurationSeconds value of the bucket. Only available for objects in buckets with a soft delete policy. |
project |
NULLABLE |
INTEGER |
The project number of the project the bucket belongs to. |
Latest bucket and object metadata snapshot
The linked dataset exposes the latest snapshot of the bucket and object metadata through the following dedicated views:
The
bucket_attributes_latest_snapshot_viewtable provides the latest metadata for your Cloud Storage buckets. Its structure matches the Bucket metadata schema.The
object_attributes_latest_snapshot_viewtable provides the latest metadata for your Cloud Storage objects. Its structure matches the Object metadata schema.
Project metadata
The linked dataset exposes project metadata as a view named project_attributes_view:
| Metadata field | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
The snapshotTime field stores the time of the project metadata
snapshot refresh in RFC 3339 format. |
name |
NULLABLE |
STRING |
The name of the project. |
id |
NULLABLE |
STRING |
The unique identifier for the project. |
number |
NULLABLE |
INTEGER |
A numeric value associated with the project. |
Dataset schema for activity data tables
Storage Insights datasets provide activity data, including operational metrics, error logs, and aggregated views with customizable scopes to support diverse analysis needs. The following sections describe the activity data schemas and the data available in them.
Object activity data
The object_events_view table in your Storage Insights dataset provides
queryable records of create, update, and delete object operations, metadata, and
details about the errors encountered during these operations. You can use the
data to track and troubleshoot changes to your storage assets by querying the
object_events_view view. The data in the object_events_view view is scoped
to your Storage Intelligence subscription and lists all the actively
enabled objects within it.
The object_events_view table includes the following fields:
| Field | Mode | Type | Description |
|---|---|---|---|
requestCompletionTimestamp |
NULLABLE |
TIMESTAMP |
The timestamp when the request was completed, in RFC 3339 format. |
project |
NULLABLE |
INTEGER |
The project number that owns the bucket resource. |
bucketName |
NULLABLE |
STRING |
The name of the bucket specified in the request. |
objectName |
NULLABLE |
STRING |
The name of the object specified in the request. This field can be null. |
requestOperation |
NULLABLE |
STRING |
The Cloud Storage operation performed. This field is limited to write, update, and delete operations and can be null. |
requestBytes |
NULLABLE |
INTEGER |
The number of bytes sent in the request. |
responseBytes |
NULLABLE |
INTEGER |
The number of bytes sent in the response. |
requestProcessingTimeMicros |
NULLABLE |
INTEGER |
The time in microseconds the server took to process the request. This time is measured from when the first byte is received until the response is sent. For resumable uploads, the response to the final upload request determines the endpoint. |
requestId |
NULLABLE |
STRING |
The identifier for the request. |
requestHost |
NULLABLE |
STRING |
The host specified in the original request. |
requestHttpMethod |
NULLABLE |
STRING |
The HTTP method used for this request. |
responseStatus |
NULLABLE |
INTEGER |
The HTTP status code sent in the server's response. |
requestReferrer |
NULLABLE |
STRING |
The HTTP referrer for the request. |
size |
NULLABLE |
INTEGER |
The size of the object in bytes. |
generation |
NULLABLE |
INTEGER |
The content generation of the object, used for object versioning. |
timeCreated |
NULLABLE |
TIMESTAMP |
The object's creation time, in RFC 3339 format. |
storageClass |
NULLABLE |
STRING |
The storage class of the object. |
errorReason |
NULLABLE |
STRING |
The reason for the error (limited to 429 errors). |
location |
NULLABLE |
STRING |
The location of the object. |
Project activity view
The project_activity_view table offers aggregated operational insights across
your projects. The table summarizes total activity by counting operation types,
bytes transferred, and response codes and errors. You can use the project
activity insights for monitoring, tracking, and internal cost attribution. The
data in the view is determined by your Storage Intelligence
subscription scope. The view displays aggregated data only for the buckets and
objects that are actively enabled under your subscription. For example, if you
enable Storage Intelligence only for ten specific buckets, the view
displays data exclusively for those ten buckets. Conversely, if you enable
Storage Intelligence at a higher level (organization, folder, or
project), all buckets and objects within that scope are automatically included,
and the view displays the aggregated data for them.
The project_activity_view table includes the following fields:
| Field | Mode | Type | Description |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
The snapshot's start time, in RFC 3339 format. |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
The snapshot's end time, in RFC 3339 format. |
project |
NULLABLE |
INTEGER |
The project number. |
totalRequests |
NULLABLE |
INTEGER |
The total number of requests made across the project. |
totalReads |
NULLABLE |
INTEGER |
The total number of read operations. |
totalWrites |
NULLABLE |
INTEGER |
The total number of write operations. |
totalUpdates |
NULLABLE |
INTEGER |
The total number of update operations. |
totalDeletes |
NULLABLE |
INTEGER |
The total number of delete operations. |
totalLists |
NULLABLE |
INTEGER |
The total number of list operations. |
totalRequestBytes |
NULLABLE |
INTEGER |
The total number of request bytes transferred. |
totalResponseBytes |
NULLABLE |
INTEGER |
The total number of response bytes transferred. |
count4xx |
NULLABLE |
INTEGER |
The total number of 4xx errors. |
count5xx |
NULLABLE |
INTEGER |
The total number of 5xx errors. |
count2xx |
NULLABLE |
INTEGER |
The total number of 2xx success responses. |
count400 |
NULLABLE |
INTEGER |
The total number of 400 errors for bad requests. |
count401 |
NULLABLE |
INTEGER |
The total number of 401 errors for unauthorized requests. |
count403 |
NULLABLE |
INTEGER |
The total number of 403 errors for forbidden requests. |
count429 |
NULLABLE |
INTEGER |
The total number of 429 errors for usage limit exceeded requests. |
Bucket activity view
The bucket_activity_view table offers aggregated operational insights across
your buckets. The table summarizes total activity by counting operation types,
bytes transferred, response codes, errors, and includes details about top
prefixes. You can use the bucket activity insights for bucket-level monitoring,
troubleshooting, metering, and analyzing your most and least active buckets. The
data in bucket_activity_view table is scoped to your
Storage Intelligence subscription and includes records for all actively
enabled buckets.
The bucket_activity_view table includes the following fields:
| Field | Mode | Type | Description |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
The snapshot's start time, in RFC 3339 format. |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
The snapshot's end time, in RFC 3339 format. |
name |
NULLABLE |
STRING |
The name of the bucket. |
generation |
NULLABLE |
INTEGER |
The bucket's generation number. |
project |
NULLABLE |
INTEGER |
The project number. |
location |
NULLABLE |
STRING |
The location of the bucket. |
totalRequests |
NULLABLE |
INTEGER |
The total number of requests made on the bucket. |
totalReads |
NULLABLE |
INTEGER |
The total number of read operations. |
totalWrites |
NULLABLE |
INTEGER |
The total number of write operations. |
totalUpdates |
NULLABLE |
INTEGER |
The total number of update operations. |
totalDeletes |
NULLABLE |
INTEGER |
The total number of delete operations. |
totalLists |
NULLABLE |
INTEGER |
The total number of list operations. |
totalRequestBytes |
NULLABLE |
INTEGER |
The total number of request bytes transferred. |
totalResponseBytes |
NULLABLE |
INTEGER |
The total number of response bytes transferred. |
count4xx |
NULLABLE |
INTEGER |
The total number of 4xx errors. |
count5xx |
NULLABLE |
INTEGER |
The total number of 5xx errors. |
count2xx |
NULLABLE |
INTEGER |
The total number of 2xx success responses. |
count400 |
NULLABLE |
INTEGER |
The total number of 400 errors for bad requests. |
count401 |
NULLABLE |
INTEGER |
The total number of 401 errors for unauthorized requests. |
count403 |
NULLABLE |
INTEGER |
The total number of 403 errors for forbidden requests. |
count429 |
NULLABLE |
INTEGER |
The total number of 429 errors for usage limit exceeded requests. |
topPrefixes429Errors |
REPEATED |
RECORD |
The top 5 bucket prefixes with the most 429 errors, returned as a RECORD containing the prefix as a STRING and the error count as an INTEGER. |
topPrefixesRequestBytes |
REPEATED |
RECORD |
The top 5 bucket prefixes with the highest number of requested bytes, returned as a RECORD containing the prefix as a STRING and the count as an INTEGER. |
topPrefixesResponseBytes |
REPEATED |
RECORD |
The top 5 bucket prefixes with the highest number of response bytes, returned as a RECORD containing the prefix as a STRING and the count as an INTEGER. |
topPrefixesHighestOperations |
REPEATED |
RECORD |
The top 5 bucket prefixes with the highest number of operations, returned as a RECORD containing the prefix as a STRING and the count as an INTEGER. |
Bucket region activity view
The bucket_region_activity_view table summarizes the total bytes sent and
received for a bucket, aggregated by destination region. Use the bucket activity
regional data to identify the most active regions, helping you determine the
optimal bucket location, analyze regional egress, and consider bucket relocation as needed to
optimize performance, cost, or resilience. The
data in bucket_region_activity_view table is scoped to your
Storage Intelligence subscription and includes records for all actively
enabled buckets.
| Field | Mode | Type | Description |
|---|---|---|---|
snapshotStartTime |
NULLABLE |
TIMESTAMP |
The snapshot's start time, in RFC 3339 format. |
snapshotEndTime |
NULLABLE |
TIMESTAMP |
The snapshot's end time, in RFC 3339 format. |
project |
NULLABLE |
INTEGER |
The project number for the bucket. |
name |
NULLABLE |
STRING |
The name of the bucket. |
generation |
NULLABLE |
INTEGER |
The bucket's generation number. |
requestLocation |
NULLABLE |
STRING |
The Google Cloud location where the request originated. |
bucketLocation |
NULLABLE |
STRING |
The location of the bucket. |
requestBytes |
NULLABLE |
INTEGER |
The total number of bytes transferred for requests between the specified bucket and location. |
responseBytes |
NULLABLE |
INTEGER |
The total number of bytes transferred for responses between the specified bucket and location. |
Dataset schema for events and errors
In the linked dataset, you can also view the snapshot processing events and
errors in the events_view and error_attributes_view views. To
troubleshoot the snapshot processing errors, see Troubleshoot dataset
errors.
Events log
You can view event logs in the events_view view in the linked dataset:
| Metadata field | Mode | Type | Description |
|---|---|---|---|
manifest.snapshotTime |
NULLABLE |
TIMESTAMP |
The time, in RFC 3339 format, when the snapshot of the events is refreshed. |
manifest.viewName |
NULLABLE |
STRING |
The name of the view that refreshes. |
manifest.location |
NULLABLE |
STRING |
The source location of the data that refreshes. |
globalManifest.snapshotTime |
NULLABLE |
TIMESTAMP |
The ingestion completion time, in RFC 3339 format, for the bucket and object attributes tables across all source locations. |
eventTime |
NULLABLE |
TIMESTAMP |
The time the event occurred. |
eventCode | NULLABLE |
STRING | The event code associated with the
corresponding entry. The eventCode values are as follows:
|
Error codes
You can view error codes in the error_attributes_view table in the linked
dataset:
| Metadata field | Mode | Type | Description |
|---|---|---|---|
errorCode |
NULLABLE |
INTEGER |
The error code associated with this entry. For a list of valid values and how to resolve these errors, see Troubleshoot dataset errors. |
errorSource |
NULLABLE |
STRING |
The source of the error. Valid value: CONFIGURATION_PREPROCESSING. |
errorTime |
NULLABLE |
TIMESTAMP |
The time the error occurs. |
sourceGcsLocation |
NULLABLE |
STRING |
The source Cloud Storage location of the error. For projects, this field is null because projects are not associated with a location. |
bucketErrorRecord.bucketName |
NULLABLE |
STRING |
The name of the bucket involved in the error. You can use this information to debug a bucket error. |
bucketErrorRecord.serviceAccount |
NULLABLE |
STRING |
The service account that needs permission to ingest objects from the bucket. You can use this information to debug a bucket error. |
projectErrorRecord.projectNumber |
NULLABLE |
INTEGER |
The number of the project involved in the error. You can use this information to debug a project error. |
projectErrorRecord.organizationName |
NULLABLE |
STRING |
The name of the organization the project must belong to for processing. A value of 0 indicates that the project is not in the organization. You can use this information to debug a project error. |
Troubleshoot dataset errors
To troubleshoot the snapshot processing errors that are logged in the error_attributes_view view in the linked dataset, see the following table:
| Error code | Error case | Error message | Troubleshooting |
|---|---|---|---|
| 1 | Source project doesn't belong to the organization | Source project projectErrorRecord.projectNumber doesn't belong to the organization projectErrorRecord.organizationName. |
Add source project projectErrorRecord.projectNumber to organization projectErrorRecord.organizationName. For instructions to migrate a project between organizations, see Migrate projects between organizations. |
| 2 | Bucket authorization error | Permission denied for ingesting objects for bucket bucketErrorRecord.bucketName. |
Give service account bucketErrorRecord.serviceAccount Identity and Access Management (IAM) permissions to allow ingestion of objects for bucket bucketErrorRecord.bucketName. For more information, see Grant required permissions to the service agent. |
| 3 | Destination project doesn't belong to the organization | Destination project projectErrorRecord.projectNumber not in organization projectErrorRecord.organizationName. |
Add destination project projectErrorRecord.projectNumber to organization projectErrorRecord.organizationName. For instructions to migrate a project between organizations, see Migrate projects between organizations. |
| 4 | Source project doesn't have Storage Intelligence configured. | Source project projectErrorRecord.projectNumber doesn't have Storage Intelligence configured. |
Configure Storage Intelligence for the source project projectErrorRecord.projectNumber. For more information, see Configure and manage Storage Intelligence. |
| 5 | Bucket doesn't have Storage Intelligence configured. | Bucket bucketErrorRecord.bucketName doesn't have Storage Intelligence configured. |
Configure Storage Intelligence for the bucket bucketErrorRecord.bucketName. For more information, see Configure and manage Storage Intelligence. |
| 6 | Bucket access authentication error | ACTIVITY_BUCKET_ACCESS_AUTHORIZATION_ERROR for bucket bucketErrorRecord.bucketName. |
Grant service account bucketErrorRecord.serviceAccount Identity and Access Management (IAM) permissions to allow ingestion of activity for bucket bucketErrorRecord.bucketName. For more information, see Grant required permissions to the service agent. |
What's next
- Configure Storage Insights datasets.
- Manage Storage Insights datasets.
- Run SQL queries on the datasets in BigQuery.
- Learn about BigQuery analytics.