BigQuery リアルタイム アノマリー検知
DoiT の BigQuery 向けニアリアルタイムのアノマリー検知は、全リージョンおよびゾーンにわたり、プロジェクト単位でオンデマンドとリザベーションのワークロードを監視します。検知システムは 30 分ごとに query タイプのジョブ(statement_type が SCRIPT の 複数ステートメントのクエリ ジョブ を除く)の生データを取得し、オンデマンド料金を適用してコストを見積もります。これをアノマリー検知のベースラインとして使用します。
必要な権限
BigQuery のリアルタイムアノマリーを有効にするには、次の権限が必要です。
-
お使いの DoiT アカウントに Manage Settings 権限が必要です。
-
対象プロジェクトで Role Administrator(
roles/iam.RoleAdmin)IAM ロールが付与されている必要があります。
BigQuery のリアルタイムアノマリーを有効にする
新しいプロジェクトを接続する際、または既存のプロジェクトを編集する際に BigQuery のリアルタイムアノマリーを有効にできます(Google Cloud リソースを接続 を参照)。複数のプロジェクトでこの機能を有効にする場合は、各プロジェクトで同じ手順を繰り返してください。
スロットのリザベーションを監視するには、すべてのリザベーション管理プロジェクトで BigQuery のリアルタイムアノマリーを有効にする必要があります。詳しくは、BigQuery リザベーションの管理プロジェクトを特定する を参照してください。
プロジェクト接続時に有効化
-
DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから データ取り込みとインテグレーション を選択し、Google Cloud を選択します。
-
Connect ドロップダウンから Project を選択します。
-
Real-time Anomalies – BigQuery のチェックボックスを選択します。展開すると、この機能に必要な権限を確認できます(詳細は セキュリティとデータアクセス ポリシー:機能の権限 を参照)。

-
Generate gcloud commands を選択します。
-
サイドパネルに表示される手順に従ってサービスアカウントを構成します。詳しくは、Google Cloud プロジェクトを接続 を参照してください。
-
接続が正常にセットアップされると、Real-time Anomalies – BigQuery 機能のステータスは
Healthyと表示されます。
既存の接続で有効化
接続済みプロジェクトにリアルタイムアノマリーを追加するには、次の手順を実行してください。
-
Google Cloud access & features ページで対象のサービスアカウントを見つけます。
-
プロジェクト接続の横にあるケバブメニュー(⋮)を選択し、Edit を選択します。
-
Real-time Anomalies – BigQuery のチェックボックスを選択して機能を追加します。
-
Generate gcloud commands を選択します。
-
サイドパネルに表示される手順に従ってカスタムロールを更新します。
-
Done を選択して機能を有効にします。
リアルタイム アノマリー検知のコスト
リアルタイム アノマリー検知機能は、以下のとおり使用状況データを収集します。
-
オンデマンドのワークロード:検知エンジンは、接続済みプロジェクトで BigQuery jobs API を使用してクエリの生データを収集します。BigQuery jobs API に追加費用は発生しません。
-
リザベーションのワークロード:検知エンジンは次の 2 つの情報を組み合わせます。
-
BigQuery Reservation API:リザベーションの構成情報(ベースラインのスロット数とエディション)を取得します。BigQuery Reservation API に追加費用は発生しません。
-
INFORMATION_SCHEMA:リザベーション使用状況に関する情報を取得するためにメタデータビューをクエリします。これは追加費用が発生する場合があります。影響を最小限に抑えるため、これらのクエリはオートスケーリングイベントが検出された場合にのみ実行されます。
-
BigQuery のリアルタイムアノマリーを無効にする
BigQuery のリア ルタイムアノマリー機能を無効にするには、DoiT のカスタムロールに付与した権限を取り消すために次のコマンドを実行してください(<ROLE_NAME> と <PROJECT_ID> は正しい値に置き換えてください)。
gcloud iam roles update <ROLE_NAME> --project=<PROJECT_ID> --remove-permissions=bigquery.jobs.create,bigquery.jobs.get,bigquery.jobs.list,bigquery.jobs.listAll,bigquery.reservations.get,bigquery.reservations.list,monitoring.timeSeries.list,monitoring.metricDescriptors.get
BigQuery リザベーションの管理プロジェクトを特定す る
BigQuery のコミットメントとリザベーションは管理プロジェクトに関連付けられ、コミットしたスロットの請求はその管理プロジェクトに対して行われます(詳細は 管理プロジェクトの指定 を参照)。
複数の BigQuery 管理プロジェクトを使用している場合、次の設定で DoiT コンソールのレポートを実行するのが最も簡単な特定方法です。
-
Filter results:Service が
BigQuery Reservation API(特定のサービスで絞り込むと Provider フィルターが自動的に追加されます。詳しくは プロバイダを選択 を参照) -
Group by:Project/Account ID、SKU
以下のサンプルレポートは、過去 3 か月間に BigQuery リザベーションの請求が行われた Google Cloud プロジェクトを示しています。これらが BigQuery Reservations の管理プロジェクトであり、Real-time Anomalies – BigQuery 機能を有効にする必要があります。
