Monitor BI Engine
BigQuery BI Engine accelerates BigQuery for BI scenarios using memory cache and faster execution. Acceleration details can be monitored using INFORMATION_SCHEMA and Cloud Monitoring metrics.
Cloud Monitoring
You can monitor and configure alerts for BigQuery BI Engine with Cloud Monitoring. To learn how to create dashboard for BI Engine metrics, see Creating charts.
The following metrics are provided for BigQuery BI Engine:
Resource | Metric | Details |
---|---|---|
BigQuery Project | Reservation Total Bytes | Total capacity allocated to one Google Cloud project |
BigQuery Project | Reservation Used Bytes | Total capacity used in one Google Cloud project |
BigQuery Project | BI Engine Top Tables Cached Bytes | Cache usage per table. This metric displays the top N tables per region report usage. |
Query statistics for BI Engine
This section explains how to find query statistics to help monitor, diagnose, and troubleshoot BI Engine use.
BI Engine acceleration modes
With BI Engine acceleration enabled, your query can run in any one of these four modes:
BI_ENGINE_DISABLED |
BI Engine disabled the acceleration.
biEngineReasons specifies a more detailed reason. The query was
run using the BigQuery execution engine. |
PARTIAL_INPUT |
Part of the query input was accelerated using BI Engine. As
described in
Query optimization and acceleration, a query plan is generally broken down
into multiple input stages. BI Engine supports the common types
of subquery patterns that are typically used in dashboarding. If the query
consists of multiple input stages, only a few of which fall under the
supported use cases, then BI Engine runs the unsupported stages
using the normal BigQuery engine without acceleration. In this
situation, BI Engine returns a PARTIAL
acceleration code, and uses biEngineReasons to populate the reason
for not accelerating other input stages. |
FULL_INPUT |
All input stages of the query were accelerated using BI Engine. Cached data is reused across queries, and the computation that follows immediately after reading the data is accelerated. |
FULL_QUERY |
The entire query was accelerated using BI Engine. |
View BigQuery API job statistics
Detailed statistics on BI Engine are available through the BigQuery API.
To fetch the statistics associated with BI Engine accelerated queries, run the following bq command-line tool command:
bq show --format=prettyjson -j job_id
If the project is enabled for BI Engine acceleration, then the
output produces a new field, biEngineStatistics
. Here is a sample job
report:
"statistics": {
"creationTime": "1602175128902",
"endTime": "1602175130700",
"query": {
"biEngineStatistics": {
"biEngineMode": "DISABLED",
"biEngineReasons": [
{
"code": "UNSUPPORTED_SQL_TEXT",
"message": "Detected unsupported join type"
}
]
},
For more information about the BiEngineStatistics
field, see the
Job reference.
BigQuery information schema statistics
BI Engine acceleration statistics are included in the
BigQuery INFORMATION_SCHEMA
views as part of the INFORMATION_SCHEMA.JOBS_BY_*
views in the
bi_engine_statistics
column.
For example, this query returns the bi_engine_statistics
for all of the
current projects' jobs for the last 24 hours:
SELECT
creation_time,
job_id,
bi_engine_statistics
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time >
TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
AND job_type = "QUERY"
Use the following format to specify
regionality for the
project-id
, region
, and views
in the INFORMATION_SCHEMA
view:
`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW
View Looker Studio information schema details
You can track which Looker Studio reports and data sources are
used by BigQuery by viewing the INFORMATION_SCHEMA.JOBS
view. Every
Looker Studio query in BigQuery creates an entry
with report_id
and datasource_id
labels. Those IDs appear at the end of
Looker Studio URL when opening a report or data source page.
For example, a report with URL
https://lookerstudio.google.com/navigation/reporting/my-report-id-123
has a
report ID of "my-report-id-123"
.
The following examples show how to view reports and data sources:
Find report and data source URL for each Looker Studio BigQuery job
-- 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;
View jobs produced by using a report and data source
-- Specify report and data source id, which can be found at the end of Looker Studio URLs. DECLARE user_report_id STRING DEFAULT '*report id here*'; DECLARE user_datasource_id STRING DEFAULT '*datasource id here*'; -- Looker Studio labels for BigQuery. 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 acceleration is part of BigQuery job
processing. To inspect BigQuery jobs for a specific project,
see the Cloud Logging page with a payload of
protoPayload.serviceName="bigquery.googleapis.com"
.
What's next
- Learn more about Cloud Monitoring.
- Learn more about Monitoring charts.
- Learn more about Monitoring alerts.
- Learn more about Cloud Logging.