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

-
データソースとして BigQuery Intelligence を選択します。
-
Create a new report を作成するか、現在のレポートを 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