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 |
mediaLink |
NULLABLE |
STRING |
metageneration |
NULLABLE |
INTEGER |
name |
NULLABLE |
STRING |
selfLink |
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 ロケーションでのみサポートされています。
次のステップ
- Storage Insights データセットを使用する。
- Storage Intelligence について学習する。
- BigQuery のデータセットに対して SQL クエリを実行する。
- BigQuery 分析について学習する。