Usar o ambiente de execução avançado do BigQuery

Neste documento, descrevemos como ativar e desativar o tempo de execução avançado do BigQuery e como avaliar os efeitos dele no desempenho das consultas.

Papéis e permissões

Para receber as permissões necessárias para especificar uma configuração, peça ao administrador para conceder a você o papel do IAM de Administrador do BigQuery (roles/bigquery.admin) no projeto ou na organização. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Recursos

Ao ativar o ambiente de execução avançado em um projeto do BigQuery, você ativa recursos no processador de consultas que reduzem a latência da consulta e o consumo de slots sem custo adicional.

Vectorização aprimorada

A execução vetorizada é um modelo de processamento de consultas que opera em colunas de dados em blocos alinhados ao tamanho do cache da CPU e usa instruções de instrução única, vários dados (SIMD). A vetorização avançada estende a execução de consultas vetorizadas no BigQuery aos seguintes aspectos do processamento de consultas:

  • Ao usar codificações de dados especializadas no formato de armazenamento do Capacitor, as operações de avaliação de filtro podem ser executadas nos dados codificados.
  • As codificações especializadas são propagadas pelo plano de consulta, o que permite que mais dados sejam processados enquanto ainda estão codificados.
  • Ao implementar o dobramento de expressões para avaliar funções determinísticas e expressões constantes, o BigQuery pode simplificar predicados complexos em valores constantes.

Otimizações de consultas curtas

Normalmente, o BigQuery executa consultas em um ambiente distribuído usando uma camada intermediária de embaralhamento. As otimizações de consultas curtas identificam dinamicamente consultas que podem ser executadas como um único estágio, reduzindo a latência e o consumo de slots. As codificações especializadas podem ser usadas com mais eficiência quando uma consulta é executada em uma única etapa. Essas otimizações são mais eficazes quando usadas com o modo opcional de criação de jobs, que minimiza a latência de inicialização, manutenção e recuperação de resultados.

A qualificação para a otimização de consultas curtas é dinâmica e influenciada pelos seguintes fatores:

  • O tamanho previsto da verificação de dados.
  • A quantidade de movimentação de dados necessária.
  • A seletividade dos filtros de consulta.
  • O tipo e o layout físico dos dados no armazenamento.
  • A estrutura geral da consulta.
  • As estatísticas históricas de execuções de consultas anteriores.

Ativar o ambiente de execução avançado

Para ativar o tempo de execução avançado no seu projeto ou organização, use a instrução ALTER PROJECT ou ALTER ORGANIZATION para mudar a configuração padrão. Na instrução, defina o argumento query_runtime como 'advanced'. Exemplo:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = 'advanced'
);

Substitua:

  • PROJECT_NAME: o nome do projeto.
  • LOCATION: o local do projeto.

Pode levar vários minutos para que a mudança entre em vigor.

Depois de ativar o ambiente de execução avançado, as consultas qualificadas no projeto ou na organização usarão esse ambiente, independentemente de qual usuário criou o job de consulta.

Desativar o ambiente de execução avançado

Para desativar o tempo de execução avançado do projeto ou da organização, use a instrução ALTER PROJECT ou ALTER ORGANIZATION para mudar a configuração padrão. Na instrução, defina o argumento query_runtime como NULL. Exemplo:

ALTER PROJECT PROJECT_NAME
SET OPTIONS (
  `region-LOCATION.query_runtime` = NULL
);

Substitua:

  • PROJECT_NAME: o nome do projeto.
  • LOCATION: o local do projeto.

Pode levar vários minutos para que a mudança entre em vigor.

Avaliar a performance da consulta

Use o explorador de jobs administrativos e as visualizações INFORMATION_SCHEMA para avaliar o efeito do tempo de execução avançado no tempo de execução da consulta e no uso de slots.

Siga estas etapas para avaliar o desempenho da consulta com e sem o runtime avançado ativado:

  1. No console Trusted Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. Abra uma nova guia no editor de consultas.

  3. Desative o uso de resultados de consulta armazenados em cache na guia de consulta.

  4. Digite ou copie suas consultas de teste na guia "Consulta".

  5. Execute as consultas de teste algumas vezes para estabelecer um desempenho de referência. Após cada execução, determine as métricas de performance da consulta da seguinte maneira:

    1. Confira os detalhes da execução da consulta no explorador de jobs administrativos.
    2. Recupere os dados de performance do job da visualização INFORMATION_SCHEMA.JOBS_BY_USER executando a consulta a seguir em uma nova guia de consulta:

      SELECT
          job_id,
          end_time - start_time AS duration,
          total_slot_ms,
          query
      FROM
        `region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
      WHERE
          creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
          AND job_type='QUERY'
          AND total_slot_ms IS NOT NULL
      ORDER BY
          creation_time DESC,
          query ASC
      LIMIT 1000;
      
  6. Ative o ambiente de execução avançado.

  7. Repita a etapa 5.

  8. Compare a latência da consulta e as métricas de uso de slots das consultas de teste antes e depois de ativar o tempo de execução avançado.