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 PROJECTPROJECT_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 PROJECTPROJECT_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:
No console Trusted Cloud , acesse a página BigQuery.
Abra uma nova guia no editor de consultas.
Desative o uso de resultados de consulta armazenados em cache na guia de consulta.
Digite ou copie suas consultas de teste na guia "Consulta".
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:
- Confira os detalhes da execução da consulta no explorador de jobs administrativos.
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;
Repita a etapa 5.
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.