Storage Insights データセット

Storage Insights のデータセット機能を使用すると、データを大規模に把握、整理、管理できます。組織、またはメタデータを更新するバケットとオブジェクトを含む 1 つ以上のプロジェクトまたはフォルダを選択できます。これらのプロジェクト内のバケットとオブジェクトのクエリ可能なメタデータ インデックスは、BigQuery とリンクしたデータセットとして使用できます。

BigQuery にエクスポートされた Cloud Storage リソースの分析情報を取得する場合は、Storage Insights データセットを使用します。これらの分析情報は、データ探索、費用の最適化、セキュリティの適用、ガバナンスの実装に役立ちます。Storage Insights データセットは、Storage Intelligence サブスクリプションでのみ利用できる機能です。

概要

Storage Insights データセットは、組織内で指定された 1 つまたは複数のソース プロジェクトに属するすべてのバケットとオブジェクトのメタデータのローリング スナップショットです。データセットから提供される情報により、Cloud Storage データをより深く理解し、定期的に監査できます。

データセットを作成するには、まずプロジェクトにデータセット構成を作成します。組織、またはメタデータを表示するバケットとオブジェクトを含む 1 つ以上のプロジェクトまたはフォルダを選択できます。データセット構成により、データセットが毎日生成されます。データセット構成とデータセットはどちらも、Cloud Storage に保存されるリソースです。

データセットを表示するには、まずデータセットを BigQuery にリンクする必要があります。

データセットの構成プロパティ

データセット構成を作成するときに、データセットのこれらのプロパティを設定します。データセットを構成してから、最初のデータが BigQuery のリンクされたデータセットとして入力されるまでに、最大 48 時間かかることがあります。新しく追加されたオブジェクトまたはバケットは、次回の毎日のスナップショットに含まれます。

  • 名前: データセットを参照するために使用される名前。名前はデータセット構成の識別子として使用され、構成の作成後に変更することはできません。名前は 128 文字以下で、英字、数字、アンダースコアを使用します。名前の先頭は文字にする必要があります。

  • 説明(省略可): データセットの説明。説明はいつでも編集できます。

  • データセット スコープ: メタデータを取得するバケットとオブジェクトを含む組織、プロジェクト、またはフォルダを指定する必須フィールド。プロジェクトまたはフォルダは、個別に指定することも、CSV ファイルとして指定することもできます。CSV ファイルでは、各プロジェクトまたはフォルダ番号を別の行に記述します。1 つのデータセット構成で最大 10,000 個のプロジェクトまたはフォルダを指定できます。データセットは、指定されたデータセット スコープ用に構成されます。データセット構成ごとに指定できるデータセット スコープは 1 つのみです。データセットのスコープは、データセット構成の編集時に更新できます。

  • バケット フィルタ(省略可): バケット名またはリージョンで、特定のバケットをデータセットに含めたり、除外するために使用されるフィルタ。

  • 保持期間: データセットがデータをキャプチャして保持する日数(データセットの作成日を含む)。データセットは 24 時間ごとにメタデータで更新され、最大 90 日間データを保持できます。保持期間外にキャプチャされたデータは自動的に削除されます。たとえば、2023 年 10 月 1 日に作成されたデータセットがあり、保持期間が 30 日に設定されているとします。10 月 30 日には、10 月 1 日から 10 月 30 日までの過去 30 日間のデータがデータセットに反映されます。10 月 31 日には、データセットに 10 月 2 日から 10 月 31 日までのデータが反映されます。保持期間はいつでも変更できます。

  • ロケーション: データセットとそのデータを保存するロケーション。例: us-central1ロケーションは BigQuery でサポートされている必要があります。BigQuery テーブルがある場合は、その場所を選択することをおすすめします。

  • サービス エージェントの種類: 構成スコープのサービス エージェントまたはプロジェクト スコープのサービス エージェント。

    データセット構成を作成すると、サービス エージェントがプロビジョニングされます。データセットの読み取りおよび書き込みを行うには、サービス エージェントに必要な権限が付与されている必要があります。

    プロジェクト スコープのサービス エージェントは、プロジェクト内のすべてのデータセット構成から生成されたデータセットにアクセスして書き込むことができます。たとえば、プロジェクト内に複数のデータセット構成がある場合、プロジェクト スコープのサービス エージェントに必要な権限を 1 回付与するだけで、プロジェクト内のすべてのデータセット構成のデータセットを読み取り、書き込むことができます。データセット構成が削除されても、プロジェクト スコープのサービス エージェントは削除されません。

    構成スコープのサービス エージェントは、特定のデータセット構成によって生成されたデータセットにのみアクセスして書き込むことができます。つまり、複数のデータセット構成がある場合は、構成スコープのサービス エージェントごとに必要な権限を付与する必要があります。データセット構成が削除されると、構成スコープのサービス エージェントが削除されます。

データセット構成を作成したら、データセットを BigQuery にリンクします。データセットを BigQuery にリンクすると、クエリ用のリンクされたデータセットが BigQuery に作成されます。データセットのリンクまたはリンク解除はいつでも行うことができます。

データセット構成の作成または更新時に設定するプロパティの詳細については、JSON API ドキュメントの DatasetConfigs リソースをご覧ください。

サポートされているロケーション

リンクされたデータセットの作成では、次の BigQuery ロケーションがサポートされています。

  • EU
  • US
  • asia-southeast1
  • europe-west1
  • us-central1
  • us-east1
  • us-east4

メタデータのデータセット スキーマ

以降のセクションでは、データセットに含まれるメタデータ フィールドについて説明します。BigQuery の列モードの詳細については、モードをご覧ください。列モードは、BigQuery がデータを保存してクエリを実行する方法を決定します。

バケットのメタデータ

次の表では、バケットのメタデータ フィールドについて説明します。

メタデータ フィールド モード タイプ 説明
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 非推奨。このフィールドには、バケットに関連付けられたユーザー定義の Key-Value ペアが含まれます。代わりにリソースタグを使用してください。
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 ユーザーが指定したバケットラベル(Key-Value ペア)。
labels.key NULLABLE STRING 個々のラベルエントリ。
labels.value NULLABLE STRING ラベルの値。
softDeletePolicy NULLABLE OBJECT バケットの削除(復元可能)ポリシー。削除後にバケット内のオブジェクトが削除済み(復元可能)状態で保持される期間を定義します。削除済み(復元可能)状態のオブジェクトは完全に削除できず、hardDeleteTime までは復元可能です。
softDeletePolicy.effectiveTime NULLABLE DATETIME

削除(復元可能)ポリシーが有効になる日時(RFC 3339 形式)。

softDeletePolicy.retentionDurationSeconds が増加するたびに softDeletePolicy.effectiveTime が更新されます。

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.value NULLABLE STRING リソースのタグ値。
totalSize NULLABLE INTEGER バケットのサイズ(バイト単位)。
objectCount NULLABLE INTEGER バケット内のオブジェクトの総数。

オブジェクトのメタデータ

次の表では、オブジェクトのメタデータ フィールドについて説明します。

メタデータ フィールド モード タイプ 説明
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 でエンコードされます。
customTime NULLABLE TIMESTAMP オブジェクトのユーザー指定のタイムスタンプ(RFC 3339 形式)。
etag NULLABLE STRING オブジェクトの HTTP 1.1 Entity タグ
eventBasedHold NULLABLE BOOLEAN オブジェクトがイベントベースの保持の対象であるかどうか。
generation NULLABLE INTEGER このオブジェクトのコンテンツの世代。
md5Hash NULLABLE STRING データの MD5 ハッシュ。base64 でエンコードされます。複合オブジェクトの場合、このフィールドは存在しません。
metadata REPEATED RECORD ユーザーが指定したメタデータ(Key-Value ペア)。
metadata.key NULLABLE STRING 個々のメタデータのエントリ。
metadata.value NULLABLE STRING メタデータ値。
metageneration NULLABLE INTEGER この世代のオブジェクトのメタデータのバージョン。
name 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 バケットが属するプロジェクトのプロジェクト番号。

バケットとオブジェクトの最新のメタデータ スナップショット

リンクされたデータセットは、バケットとオブジェクトのメタデータの最新のスナップショットを次の専用ビューで公開します。

プロジェクトのメタデータ

プロジェクトのメタデータは、リンクされたデータセットの project_attributes_view という名前のビューとして公開されます。

メタデータ フィールド モード タイプ 説明
snapshotTime NULLABLE TIMESTAMP snapshotTime フィールドには、プロジェクトのメタデータ スナップショットの更新時刻が RFC 3339 形式で保存されます。
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 更新されたデータのソース ロケーション。
globalManifest.snapshotTime NULLABLE TIMESTAMP イベントのスナップショットが更新される時刻(RFC 3339 形式)。
eventTime NULLABLE STRING イベントが発生した時刻。
eventCode NULLABLE STRING 対応するエントリに関連付けられたイベントコード。イベントコード 1 は、スナップショット manifest.snapshotTime 内のソース ロケーション manifest.location のすべてのエントリで manifest.viewName ビューが更新されることを示します。イベントコード 2 は、すべてのソース ロケーションのバケット エントリとオブジェクト エントリでデータセットが更新されることを示します。この更新はスナップショット globalManifest.snapshotTime 内で行われます。

エラーコード

エラーコードは、リンクされたデータセットの 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 の構成と管理をご覧ください。

考慮事項

データセット構成については、次の点を考慮してください。

  • 階層型名前空間が有効になっているバケット内のフォルダの名前を変更すると、そのバケット内のオブジェクト名が更新されます。リンクされたデータセットによって取り込まれると、これらのオブジェクト スナップショットはリンクされたデータセットの新しいエントリと見なされます。

  • データセットは、これらの BigQuery ロケーションでのみサポートされています。

次のステップ