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 ロケーションがサポートされています。
EUUSasia-southeast1europe-west1us-central1us-east1us-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 | 
      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 でエンコードされます。複合オブジェクトの場合、このフィールドは存在しません。 | 
mediaLink | 
      NULLABLE | 
      STRING | 
      オブジェクトのデータをダウンロードするための URL。 | 
metadata | 
      REPEATED | 
      RECORD | 
      ユーザーが指定したメタデータ(Key-Value ペア)。 | 
metadata.key | 
      NULLABLE | 
      STRING | 
      個々のメタデータのエントリ。 | 
metadata.value | 
      NULLABLE | 
      STRING | 
      メタデータ値。 | 
metageneration | 
      NULLABLE | 
      INTEGER | 
      この世代のオブジェクトのメタデータのバージョン。 | 
name | 
      NULLABLE | 
      STRING | 
      オブジェクトの名前。 | 
selfLink | 
      NULLABLE | 
      STRING | 
      このオブジェクトの URL。 | 
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 | 
      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 ロケーションでのみサポートされています。
次のステップ
- Storage Insights データセットを使用する。
 - Storage Intelligence の詳細を確認する。
 - BigQuery のデータセットに SQL クエリを実行する。
 - BigQuery 分析について確認する。