Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Otimizações do BigQuery (Lista de Queries)

By Sayle MatthewsJan 30, 20235 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Guia introdutório sobre otimizações de custo e performance no BigQuery

Visão geral

Abaixo está a lista de todas as queries do repositório no GitHub desta série de artigos, com uma breve descrição de cada uma. Para cada caso, há uma query que usa as views do INFORMATION_SCHEMA e outras duas que usam os sinks de audit log do BigQuery. Entre essas duas, uma é a versão geral, identificada pelo sufixo "_general" no nome do arquivo, que percorre todos os projetos do sink, e a outra busca por projeto, sem sufixos extras no nome.

Vou atualizar esta lista à medida que novas queries forem adicionadas. Dito isso, qualquer pedido de query pode ser feito nos comentários, e elas serão incluídas conforme o tempo permitir.

Como ler esta lista

Como o Medium não tem suporte nativo a tabelas — que seriam a forma mais lógica de apresentar esses dados —, organizei tudo em uma lista com marcadores, um meio-termo confortável entre legibilidade e elegância.

A primeira linha traz o nome do arquivo em negrito e itálico; logo abaixo vem a descrição da query e, por fim, os links em marcadores.

A lista de queries

  • billing_recommendation_per_query.sql

Retorna cada query do período com uma recomendação sobre se ela rodaria de forma mais eficiente em um plano de cobrança flat-rate ou on-demand. A recomendação é baseada na quantidade de slots e nos bytes escaneados.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • concurrent_queries_by_minute.sql

Monta uma série temporal no intervalo, minuto a minuto, e retorna o número de queries concorrentes executadas em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • concurrent_queries_by_second.sql

Monta uma série temporal no intervalo, segundo a segundo, e retorna o número de queries concorrentes executadas em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • general_job_information.sql

Retorna um subconjunto de informações gerais de cada job executado no período.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_job_information.sql

Retorna informações gerais de cada load job executado no período.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_slots_per_minute.sql

Monta uma série temporal no intervalo, minuto a minuto, e retorna o número de slots consumidos pelos load jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • load_slots_per_second.sql

Monta uma série temporal no intervalo, segundo a segundo, e retorna o número de slots consumidos pelos load jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • longest_running_queries.sql

Retorna todas as queries executadas no intervalo e seus dados de cobrança, ordenadas da mais demorada para a mais rápida.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • looker_job_information.sql

Retorna informações gerais de cada job executado no período que estava associado a uma service account do Looker.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_counts.sql

Retorna todas as queries executadas no período junto com o total de execuções, ordenadas da mais executada para a menos executada.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_job_information.sql

Retorna informações gerais de cada query job executado no período.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_slots_per_minute.sql

Monta uma série temporal no intervalo, minuto a minuto, e retorna o número de slots consumidos pelos query jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • query_slots_per_second.sql

Monta uma série temporal no intervalo, segundo a segundo, e retorna o número de slots consumidos pelos query jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_day.sql

Monta uma série temporal no intervalo, dia a dia, e retorna o número de slots consumidos por todos os jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_hour.sql

Monta uma série temporal no intervalo, hora a hora, e retorna o número de slots consumidos por todos os jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_minute.sql

Monta uma série temporal no intervalo, minuto a minuto, e retorna o número de slots consumidos por todos os jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_minute_and_user.sql

Monta uma série temporal no intervalo, minuto a minuto, e retorna o número de slots consumidos por todos os jobs executados em cada janela, agrupados pelo usuário que os disparou.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • slots_by_second.sql

Monta uma série temporal no intervalo, segundo a segundo, e retorna o número de slots consumidos por todos os jobs executados em cada janela.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • table_query_counts.sql

Retorna o número de jobs que acessaram cada tabela durante o período especificado. Vale lembrar que, se uma tabela existir mas não for acessada por nenhum job, ela não vai aparecer no resultado.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_labels.sql

Retorna os custos por label aplicada aos jobs no período especificado, ordenados das labels mais caras para as mais baratas.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_queries.sql

Retorna os query jobs executados no período especificado, ordenados pelo custo cobrado, do mais caro para o mais barato.

Observação: o resultado pode conter duplicatas se um job for executado várias vezes com os mesmos parâmetros.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_billed_queries_deduplicated.sql

Retorna os query jobs executados no período especificado, ordenados pelo custo cobrado, do mais caro para o mais barato.

Observação: este job vai deduplicar as execuções e retornar apenas uma linha por job. Roda bem mais devagar que a query anterior.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_complex_queries.sql

Retorna os query jobs ordenados do mais complexo para o menos complexo. A complexidade é medida pela quantidade de slots usados para concluir o processamento.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_cost_users.sql

Retorna os usuários que iniciaram jobs e quanto gastaram, ordenados do maior para o menor custo. Observação: a lista também inclui service accounts.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General

  • top_costly_queries.sql

Retorna os query jobs executados no período especificado com o custo total, considerando múltiplas execuções no cálculo. Os resultados são ordenados do mais caro para o mais barato.

- INFORMATION_SCHEMA

- Audit Log

- Audit Log General