Storage Insights のデータセット機能を使用すると、大規模なデータを把握、整理、管理できます。メタデータを更新するバケットとオブジェクトを含む組織、プロジェクト、またはフォルダを 1 つ以上選択できます。これらのプロジェクトに含まれるバケットとオブジェクトのクエリ可能なメタデータ インデックスが、BigQuery リンク済みデータセットとして使用可能になります。
BigQuery にエクスポートされた Cloud Storage リソースの分析情報を取得するには、Storage Insights データセットを使用します。これらの分析情報は、データ探索、費用の最適化、セキュリティの適用、ガバナンスの実装に役立ちます。Storage Insights データセットは、Storage Intelligence サブスクリプションを通じてのみ利用できる限定機能です。
概要
Storage Insights データセットは、組織内の 1 つ以上の指定されたソース プロジェクト内のすべてのバケットとオブジェクトのメタデータのローリング スナップショットです。データセットから提供される情報により、Cloud Storage データをより深く理解し、定期的に監査できます。
データセットを作成するには、まずプロジェクトにデータセット構成を作成します。メタデータを表示するバケットとオブジェクトを含む組織、プロジェクト、またはフォルダを 1 つ以上選択できます。データセット構成では、データセットが毎日生成されます。データセット構成とデータセットはどちらも、Cloud Storage 内に保存されるリソースです。
データセットを表示するには、まずデータセットを BigQuery にリンクする必要があります。
データセットの構成プロパティ
データセット構成を作成するときに、データセットの次のプロパティを設定します。
名前: データセットを参照するために使用される名前。名前はデータセット構成の識別子として使用され、構成の作成後に変更することはできません。名前には英字、数字、アンダースコアを使用して最大 128 文字を使用できます。名前の先頭は文字にする必要があります。
説明(省略可): データセットの説明。説明はいつでも編集できます。
データセット スコープ: メタデータを取得するバケットとオブジェクトを含む組織、プロジェクト、フォルダ。プロジェクトまたはフォルダは、個別に指定することも、CSV ファイルとして指定することもできます。CSV ファイルの場合は、各プロジェクトまたはフォルダ番号を別の行に指定します。1 つのデータセット構成で最大 10,000 個のプロジェクトまたはフォルダを指定できます。
バケットフィルタ(省略可): バケット名またはリージョンで特定のバケットをデータセットに含めたり除外したりするために使用されるフィルタ。
保持期間: データセットがデータをキャプチャして保持する日数(データセットの作成日を含む)。データセットはメタデータとともに 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 に、バケット bucketErrorRecord.bucketName のオブジェクトの取り込みを許可する Identity and Access Management(IAM)権限を付与します。詳細については、サービス エージェントに必要な権限を付与するをご覧ください。 |
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 ロケーションでのみサポートされています。