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 時間かかることがあります。新しく追加されたオブジェクトまたはバケットは、次の毎日のスナップショットに含まれます。

  • Name: データセットを参照するために使用される名前。名前はデータセット構成の識別子として使用され、構成の作成後に変更することはできません。名前は 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 テーブルがある場合は、その場所を選択することをおすすめします。

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

    データセットの構成を作成すると、サービス エージェントがプロビジョニングされます。データセットを読み取るには、サービス エージェントに Cloud Storage バケットからデータを読み取るために必要な権限が付与されている必要があります。

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

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

データセット構成を作成したら、データセットを 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 の Buckets リソース表現をご覧ください。

メタデータ フィールド モード タイプ
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
metageneration NULLABLE INTEGER
name 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.snapshotTime 内のソースロケーション manifest.location のすべてのエントリで manifest.viewName ビューが更新されることを示します。

エラーコード

エラーコードは、リンクされたデータセットの 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 ロケーションでのみサポートされています。

次のステップ