BigQuery real-time anomaly detection
DoiT の BigQuery 向けほぼリアルタイムのアノマリー検出は、すべてのリージョンとゾーンにわたって、プロジェクト単位でオンデマンドおよびリザベーションのワークロードを監視します。検出システムは 30 分ごとに query タイプのジョブ(statement_type が SCRIPT であるマルチステートメントクエリジョブを除く)の生データを取得し、オンデマンド料金を適用してコストを見積もります。この見積もりコストがアノマリー検出のベースラインとして使用されます。
Required permissions
BigQuery のリアルタイムアノマリー検出を有効にするには、次の条件を満たしている必要があります。
-
お使いの DoiT アカウントに Manage Settings 権限が付与されていること
-
対象プロジェクトに対して Role Administrator (
roles/iam.RoleAdmin) IAM ロールが付与されていること
Enable real-time anomalies for BigQuery
BigQuery のリアルタイムアノマリー検出は、新しいプロジェクトを接続する際、または既存プロジェクトを編集する際に有効化できます(Connect Google Cloud resources を参照)。複数のプロジェクトでこの機能を有効化する場合は、プロジェクトごとに同じ手順を繰り返してください。
スロットのリザベーションを監視するには、すべてのリザベーション管理プロジェクトで BigQuery のリアルタイムアノマリーを有効にする必要があります。Identify administration projects for BigQuery reservations を参照してください。
Enable when connecting a project
-
DoiT コンソール にサインインし、上部ナビゲーションのメガメニューから Data ingestion and integrations > Google Cloud を選択します。
-
Connect リストから Project を選択します。
-
Real-time Anomalies – BigQuery チェックボックスを選択します。必要な権限を確認するには、この機能を展開してください(詳細は Security and data access policy: Feature permissions を参照)。

-
Generate gcloud commands を選択します。
-
サイドパネルに表示される手順に従って、サービスアカウントを設定してください。詳細は Connect a Google Cloud project を参照してください。
-
接続が正常にセットアップされると、Real-time Anomalies – BigQuery 機能のステータスが
Healthyと表示されます。
Enable on an existing connection
接続済みプロジェクトにリアルタイムアノマリーを追加するには、次の手順を実行してください。
-
Google Cloud access & features ページで、対象のサービスアカウントを探します。
-
プロジェクト接続の横にあるケバブメニュー (⋮) を選択し、Edit を選択します。
-
Real-time Anomalies – BigQuery チェックボックスを選択して機能を追加します。
-
Generate gcloud commands を選択します。
-
サイドパネルに表示される手順に従って、カスタムロールを更新してください。
-
Done を選択して機能を有効にします。
Real-time anomaly detection costs
リアルタイムアノマリー検出機能は、以下のように利用データを収集します。
-
オンデマンドワークロード: 検出エンジンは BigQuery jobs API を使用して、接続済みプロジェクト内のクエリの生データを収集します。BigQuery jobs API の利用で追加コストは発生しません。
-
リザベーションワークロード: 検出エンジンは次の 2 つの情報を組み合わせて使用します。
-
BigQuery Reservation API: リザベーションの構成情報(ベースラインスロット数とエディション)を取得します。BigQuery Reservation API の利用で追加コストは発生しません。
-
INFORMATION_SCHEMA: リザベーションの利用状況に関する情報を取得するためにメタデータビューをクエリします。これにより追加コストが発生する可能性があります。影響を最小限に抑えるため、これらのクエリはオートスケーリングイベントが検出された場合にのみ実行されます。
-
Disable real-time anomalies for 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
Identify administration projects for BigQuery reservations
BigQuery のコミットメントとリザベーションは管理プロジェクトに関連付けられており、コミット済みスロットの課金はその管理プロジェクトに対して行われます(詳細は Specifying an administration project を参照)。
複数の BigQuery 管理プロジェクトを使用している場合、それらを特定する最も簡単な方法は、DoiT コンソールで次の設定を使ってレポートを実行することです。
-
Filter results: Service が
BigQuery Reservation API(特定のサービスでフィルタリングすると Provider フィルターが自動的に追加されます。詳細は Select provider を参照) -
Group by: Project/Account ID, SKU
以下のサンプルレポートは、過去 3 か月間に BigQuery リザベーションの課金対象となった Google Cloud プロジェクトを示しています。これらが BigQuery Reservations の管理プロジェクトであり、Real-time Anomalies – BigQuery 機能を有効にする必要があります。
