Monitorar o BI Engine

O BigQuery BI Engine acelera os cenários do BigQuery para BI usando cache de memória e execução mais rápida. Os detalhes da aceleração podem ser monitorados usando INFORMATION_SCHEMA e métricas do Cloud Monitoring.

Cloud Monitoring

É possível monitorar e configurar alertas para o BigQuery BI Engine com o Cloud Monitoring. Para saber como criar painéis para métricas do BI Engine, consulte Como criar gráficos.

As seguintes métricas são fornecidas para o BigQuery BI Engine:

Recurso Métrica Detalhes
Projeto do BigQuery Total de bytes da reserva Capacidade total alocada para um projeto do Google Cloud
Projeto do BigQuery Bytes de reserva usados Capacidade total usada em um projeto do Google Cloud
Projeto do BigQuery Bytes em cache das principais tabelas do BI Engine Uso do cache por tabela. Essa métrica exibe as N principais tabelas por uso de relatórios de região.

Estatísticas de consulta para o BI Engine

Nesta seção, explicamos como encontrar estatísticas de consulta para ajudar a monitorar, diagnosticar e resolver problemas de uso do BI Engine.

Modos de aceleração do BI Engine

Com a aceleração do BI Engine ativada, sua consulta pode ser executada em qualquer um destes três modos:

BI_ENGINE_DISABLED
O BI Engine desativou a aceleração. biEngineReasons especifica um motivo mais detalhado. A consulta foi executada usando o mecanismo de execução do BigQuery.
PARTIAL_INPUT
Parte da consulta foi acelerada usando o BI Engine. Conforme descrito em Otimização e aceleração de consultas, um plano de consulta geralmente é dividido em vários estágios de entrada. O BI Engine é compatível com os tipos comuns de padrões de subconsulta que normalmente são usados no painel. Se a consulta consistir em vários estágios de entrada, e apenas alguns deles se enquadrarem nos casos de uso compatíveis, o BI Engine executa os estágios não compatíveis usando o mecanismo normal do BigQuery sem aceleração. Nessa situação, o BI Engine retorna um código de aceleração PARTIAL e usa biEngineReasons para preencher o motivo para não acelerar outros estágios de entrada.
 FULL_INPUT
 
Todos os estágios de entrada da consulta foram acelerados usando o BI Engine. Os dados armazenados em cache são reutilizados em consultas, e a computação que ocorre imediatamente após a leitura dos dados é acelerada.
 FULL_QUERY
 
Toda a consulta foi acelerada usando o BI Engine.

Conferir estatísticas de jobs da API BigQuery

Estatísticas detalhadas sobre o BI Engine estão disponíveis na API BigQuery.

Para buscar as estatísticas associadas às consultas aceleradas do BI Engine, execute o seguinte comando da ferramenta de linha de comando:

bq show --format=prettyjson -j job_id

Se o projeto estiver ativado para aceleração do BI Engine, a saída produzirá um novo campo, biEngineStatistics. Confira um exemplo de relatório de job:

 "statistics": {
    "creationTime": "1602175128902",
    "endTime": "1602175130700",
    "query": {
      "biEngineStatistics": {
        "biEngineMode": "DISABLED",
        "biEngineReasons": [
          {
            "code": "UNSUPPORTED_SQL_TEXT",
            "message": "Detected unsupported join type"
          }
        ]
      },

Para mais informações sobre o campo BiEngineStatistics, consulte a referência do job.

Estatísticas do esquema de informações do BigQuery

As estatísticas de aceleração do BI Engine estão incluídas nas visualizações do BigQuery INFORMATION_SCHEMA como parte das visualizações INFORMATION_SCHEMA.JOBS_BY_* na coluna bi_engine_statistics. Por exemplo, esta consulta retorna a bi_engine_statistics de todos os jobs dos projetos atuais nas últimas 24 horas:

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 o seguinte formato para especificar a regionalidade de project-id, region e views na visualização INFORMATION_SCHEMA:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW

Visualizar detalhes do esquema de informações do Looker Studio

Para acompanhar quais relatórios e fontes de dados do Looker Studio são usados pelo BigQuery, confira a visualização INFORMATION_SCHEMA.JOBS. Cada consulta do Looker Studio no BigQuery cria uma entrada com os rótulos report_id e datasource_id. Esses IDs aparecem no final do URL do Looker Studio ao abrir um relatório ou a página de uma fonte de dados. Por exemplo, um relatório com o URL https://lookerstudio.google.com/navigation/reporting/my-report-id-123 tem o ID "my-report-id-123".

Os exemplos a seguir mostram como ver relatórios e fontes de dados:

Encontrar o URL do relatório e da fonte de dados de cada job do BigQuery no Looker Studio

-- 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;

Ver jobs produzidos usando um relatório e uma fonte de dados

-- 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

A aceleração do BI Engine faz parte do processamento de jobs do BigQuery. Para inspecionar jobs do BigQuery em um projeto específico, consulte a página do Cloud Logging com um payload de protoPayload.serviceName="bigquery.googleapis.com".

A seguir