BI Engine をモニタリングする
BigQuery BI Engine は、Google Cloud サービスと連携して BI Engine の使用状況のモニタリングとトラブルシューティングを支援します。BigQuery BI Engine による高速化を備えた Looker Studio は、BigQuery モニタリングで完全にサポートされています。これには、INFORMATION_SCHEMA、実行グラフ、Cloud Monitoring の指標などが含まれます。
Cloud Monitoring
BigQuery BI Engine は Cloud Monitoring と統合されているため、集約された BI Engine の使用状況を集約してモニタリングし、アラートを構成できます。Monitoring を使用して BI Engine の指標のグラフを作成する方法については、Monitoring ドキュメントのグラフの作成をご覧ください。
BigQuery BI Engine では、次の指標が提供されます。
リソース | 指標 | 詳細 |
---|---|---|
BigQuery プロジェクト | 予約合計バイト数 | 1 つの Google Cloud プロジェクトに割り当てられた合計容量 |
BigQuery プロジェクト | 予約使用バイト数 | 1 つの Google Cloud プロジェクトで使用される合計容量 |
BigQuery プロジェクト | BI Engine の上位テーブルのキャッシュに保存されたバイト数 | テーブルごとのキャッシュ使用量。この指標には、リージョン レポートごとの上位 N 個のテーブルの使用状況が表示されます。 |
Cloud Monitoring を使用すると、BI Engine によってキャッシュに保存された Looker Studio データソースのトラフィックを表示できます。利用可能な Google Cloud のすべての指標のリストについては、Google Cloud の指標をご覧ください。
Looker Studio の BigQuery ネイティブ インテグレーションでは、モデルごとの指標は提供されません。代わりに、BigQuery API Monitoring を使用して、INFORMATION_SCHEMA テーブルのデータソース ID とレポート ID が公開されます。
BI Engine のクエリ統計情報
このセクションでは、BI Engine の使用状況のモニタリング、診断、トラブルシューティングに役立つクエリ統計情報を見つける方法について説明します。
BI Engine アクセラレーション モード
BI Engine による高速化を有効にすると、次の 4 つのモードのいずれかでクエリを実行できます。
BI_ENGINE_DISABLED |
BI Engine はアクセラレーションを無効にしました。biEngineReasons は、より詳細な理由を指定します。クエリは BigQuery 実行エンジンを使用して実行されました。 |
PARTIAL_INPUT |
クエリ入力の一部は BI Engine を使用して高速化されました。クエリの最適化と高速化で説明されているように、一般にクエリプランは複数の入力ステージに分割されます。BI Engine は、ダッシュボードで通常使用される一般的なタイプのサブクエリ パターンをサポートしています。クエリが複数の入力ステージで構成されている場合、サポートされるユースケースであるのはごく一部で、BI Engine はアクセラレーションなしで通常の BigQuery エンジンを使用してサポートされていないステージを実行します。この場合、BI Engine は PARTIAL アクセラレーション コードを返し、biEngineReasons を使用して他の入力ステージを高速化させない理由を代入します。 |
FULL_INPUT |
クエリのすべての入力ステージが BI Engine を使用して高速化されました。 |
FULL_QUERY |
クエリ全体が BI Engine を使用して高速化されました。 |
BigQuery API ジョブの統計情報を表示する
BI Engine に関する詳細な統計情報は、BigQuery API を使用して確認できます。
BI Engine で高速化されたクエリに関連付けられている統計情報を取得するには、次の bq コマンドライン ツール コマンドを実行します。
bq show --format=prettyjson -j job_id
プロジェクトで BI Engine アクセラレーションが有効になっている場合、出力には新しいフィールド biEngineStatistics
が生成されます。ジョブレポートの例を以下に示します。
"statistics": {
"creationTime": "1602175128902",
"endTime": "1602175130700",
"query": {
"biEngineStatistics": {
"biEngineMode": "DISABLED",
"biEngineReasons": [
{
"code": "UNSUPPORTED_SQL_TEXT",
"message": "Detected unsupported join type"
}
]
},
BiEngineStatistics
フィールドの詳細については、ジョブ参照をご覧ください。
BigQuery の INFORMATION_SCHEMA の統計情報
BI Engine による高速化の統計情報は、bi_engine_statistics
列の INFORMATION_SCHEMA.JOBS_BY_*
ビューの一部として BigQuery INFORMATION_SCHEMA
ビューに含まれます。たとえば、このクエリは、過去 24 時間の現在のプロジェクトのすべてのジョブに関する bi_engine_statistics
を返します。
SELECT
creation_time,
job_id,
bi_engine_statistics
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
AND CURRENT_TIMESTAMP()
AND job_type = "QUERY"
INFORMATION_SCHEMA
ビューの project-id
、region
、views
にリージョンを指定するには、次の形式を使用します。
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW
Looker Studio の情報スキーマの詳細を表示する
BigQuery で使用されている Looker Studio レポートとデータソースを追跡するには、INFORMATION_SCHEMA.JOBS
ビューを表示します。BigQuery のネイティブ インテグレーションを有効にすると、すべての Looker Studio クエリで report_id
ラベルと datasource_id
ラベルを持つエントリが作成されます。これらの ID は、レポートまたはデータソースのページを開くときに、Looker Studio の URL の末尾に表示されます。たとえば、URL が https://lookerstudio.google.com/navigation/reporting/my-report-id-123
のレポートの場合、レポート ID は "my-report-id-123"
です。
次の例は、レポートとデータソースを表示する方法を示しています。
Looker Studio の各 BigQuery ジョブのレポートとデータソースの URL を確認する
-- Standard labels used by Looker Studio. DECLARE requestor_key STRING DEFAULT 'requestor'; DECLARE requestor_value STRING DEFAULT 'looker_studio'; CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING) AS ( (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key) ); CREATE TEMP FUNCTION GetDatasourceUrl(labels ANY TYPE) AS ( CONCAT("https://lookerstudio.google.com/datasources/", GetLabel(labels, 'looker_studio_datasource_id')) ); CREATE TEMP FUNCTION GetReportUrl(labels ANY TYPE) AS ( CONCAT("https://lookerstudio.google.com/reporting/", GetLabel(labels, 'looker_studio_report_id')) ); SELECT job_id, GetDatasourceUrl(labels) AS datasource_url, GetReportUrl(labels) AS report_url, FROM `region-us`.INFORMATION_SCHEMA.JOBS jobs WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND GetLabel(labels, requestor_key) = requestor_value LIMIT 100;
レポートとデータソースを使用して生成されたジョブを表示する
-- Specify report and data source id, which can be found in the end of Looker Studio URLs. DECLARE user_report_id STRING DEFAULT '*report id here*'; DECLARE user_datasource_id STRING DEFAULT '*datasource id here*'; -- Standard labels Looker Studio uses in native integration. DECLARE requestor_key STRING DEFAULT 'requestor'; DECLARE requestor_value STRING DEFAULT 'looker_studio'; DECLARE datasource_key STRING DEFAULT 'looker_studio_datasource_id'; DECLARE report_key STRING DEFAULT 'looker_studio_report_id'; CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING) AS ( (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key) ); SELECT creation_time, job_id, FROM `region-us`.INFORMATION_SCHEMA.JOBS jobs WHERE creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND GetLabel(labels, requestor_key) = requestor_value AND GetLabel(labels, datasource_key) = user_datasource_id AND GetLabel(labels, report_key) = user_report_id ORDER BY 1 LIMIT 100;
Cloud Logging
BI Engine に関するログ情報は、Google Cloud コンソールの [Cloud Logging] ページで確認できます。BI Engine のログ情報を表示する方法は、データをクエリするツールによって異なります。
- Looker Studio のネイティブ インテグレーションが有効になっていない Looker Studio クエリの場合: [Cloud Logging] ページで、
protoPayload.serviceName="bigquerybiengine.googleapis.com"
のペイロードを使用してログ情報を表示できます。 - 他のすべてのトラフィックの場合: [Cloud Logging] ページで、
protoPayload.serviceName="bigquery.googleapis.com"
のペイロードを使用してログ情報を表示できます。
次のステップ
- Cloud Monitoring の詳細について確認する。
- グラフのモニタリングの詳細を確認する。
- Monitoring のアラートの詳細を確認する。
- Cloud Logging の詳細を確認する。