監査データを使用して BigQuery のアクティビティを分析する
概要
Google Cloud は、関連する管理アクティビティやアクセスを記録するために、BigQuery audit logs を生成します。これらの監査ログにより、テーブルの作成・削除、スロットの購入、ロードジョブの実行など、BigQuery の利用に関連する運用面の状況を把握できます。
DoiT の BigQuery Intelligence 機能は、BigQuery Intelligence ダッシュボードに表示されるウィジェット向けに BigQuery 監査ログのシンクを設定し、BigQuery 利用状況の分析を容易にします。さらに、BigQuery Intelligence によって収集 された監査ログを活用し、データソースとして BigQuery Intelligence を使用して Cloud Analytics のレポート内で独自の分析を実行することもできます。
必要な権限
- Cloud Analytics User
BigQuery Intelligence データを使用してレポートを作成する
BigQuery Intelligence の監査ログシンクからのデータを使用してレポートを作成するには、次の手順に従ってください。
-
事前に BigQuery Intelligence を設定しておいてください。
-
レポートを開きます。左側サイドバー上部の Change を選択してください。

-
データソースとして BigQuery Intelligence を選択してください。
-
新しいレポートを作成 するか、現在のレポートを Update するかを選択できます。レポートを更新すると、現在のすべての設定が失われる点に注意してください。
メトリクスとディメンション
Cloud Analytics のレポートでは、請求データと BigQuery の監査ログで異なるメトリクスセットとディメンションセットを使用します。
メトリクス
BigQuery 監査ログの基本メトリクスおよび拡張メトリクスは、BigQuery AuditData 内の jobStatistics オブジェクトのフィールドを利用します。
基本メトリクス
-
Cost:処理済みバイト数(
totalBilledBytes)を TiB に変換し、オンデマンドスキャン料金 を乗じたもの。 -
Usage:処理済みバイト数(
totalBilledBytes)を TiB に変換し、ジョブの CPU 使用率で補正したもの。
拡張メトリクス
-
Slots Used:消費された合計 slot-ms をクエリの実行時間で割った値:
totalSlotMs÷(endTime−startTime)。 -
Total Slots Ms:クエリジョブで消費された合計 slot-ms。
totalSlotMsに対応します。 -
Total Load Output Bytes:インポートジョブでロードされた合計バイト数。
totalLoadOutputBytesに対応します。 -
Total Tables Processed:クエリ内で参照された一意のテーブル数の合計。
totalTablesProcessedに対応します。 -
Total Billed Bytes:ジョブの CPU 使用率で補正された処理済みバイト数。
totalBilledBytesに対応します。 -
Total Processed Bytes:ジョブで処理された合計バイト数。
totalProcessedBytesに対応します。
ディメンション
レポートのデータソースが BigQuery Intelligence の場合に利用できる標準ディメンションは次のとおりです。
-
Event name:イベント名。BigQuery AuditData 内の
jobCompletedEvent.eventNameに対応します。 -
Job Status:ジョブの状態:PENDING、RUNNING、または DONE。BigQuery AuditData 内の
jobStatus.stateに対応します。 -
Project・Account name:完了したジョブの、人間が読める Google Cloud のプロジェクト名。BigQuery AuditData 内の
jobName.projectIdに対応します。 -
Query Priority:クエリに付与された優先度:QUERY_INTERACTIVE または QUERY_BATCH。BigQuery AuditData 内の
jobConfiguration.query.queryPriorityに対応します。 -
Region:完了したジョブのロケーション。BigQuery AuditData 内の
jobName.locationに対応します。 -
Reservation:リザベーション名、またはオンデマンドリソース使用時の
unreserved。BigQuery AuditData 内のJobStatistics.reservationに対応します。 -
Resource:参照されたリソースの URI。たとえば、insert ジョブで作成されたテーブルは、そのテーブルのリソース URI を報告します。BigQueryAuditMetadata メッセージ内の
protoPayload.resourceNameに対応します。 -
Statement Type:ステートメントの種類。例:SELECT、INSERT、CREATE_TABLE、CREATE_MODEL。BigQuery AuditData 内の
jobConfiguration.query.statementTypeに対応します。 -
Caller IP:呼び出し元の IP アドレス。監査ログ内の
requestMetadata.callerIpに対応します。 -
User:リクエストを行った認証済みユーザー(またはサードパーティ主体の代わりとなるサービスアカウント)のメールアドレス。監査ログ内の
authenticationInfo.principalEmailに対応します。
例
ユーザー別に利用状況を分解する

ジョブ ID ごとに時間単位の重いクエリを特定する

関連情報
-
Google Cloud ドキュメント:BigQuery 監査ログの概要
-
Google Cloud ドキュメント:監査ログ内の呼び出し元 ID