Este post é um texto bem pequeno sobre como eu trabalho com Google Cloud BigQuery no dia a dia, vai servir para quem trabalha com ele também e que acha que não conhece as features legais que ele tem.
Preview
Para mim uma das ferramentas mais legais do BigQuery é a função “preview”. Ao utilizar o console (web) do BigQuery você pode economizar dinheiro ao não rodar uma query contra os dados e ao invés disso ir na aba “preview” e checar os dados que estão lá sem precisar gastar. Dessa forma você ganha agilidade por não precisar rodar a query e ainda vê se tem algo absurdamente errado com os dados, uma coluna vazia, por exemplo.
SELECT
Entender que por baixa do BigQuery eles utilizam um formato colunar de storage [1], por isso outro dica que eu dou é evitar SELECT *
quando for rodar uma query no BigQuery porque o custo do BigQuery é em boa parte pela quantidade de dados lidas [2], ou seja, se você ler menos colunas, você vai ler menos dados (dado que o formato de arquivo utilizado pelo BigQuery permite isto).
Partições
Para quem gosta de otimizar código e deixar tudo rodando rapidão acho que uma forma massa de alcançar isso é através de partições. Com as partições se torna bem simples de remover, atualizar e inserir dados em uma grande tabela sem preocupações com o custo e a performance.
Lembra quando falei do format de storage do BigQuery no paragrafo anterior? Então, por conta deles também é bem complicado inserir e remover conjunto de linhas específicas no BigQuery, ou pelo menos, não é tão otimizado quanto fazer isto para uma coluna. Uma solução para isto é a partição, com ela, você pode agrupar os arquivos no armazenamento, o que permite que ao atualizar uma partição somente aqueles arquivos necessários serão manipulados. E se você alguma vez pensou em performance sabe que I/O é um gargalo enorme em qualquer sistema né? (comparado com memória primária).
Acho que por enquanto é isso, pessoal, este artigo vai ser um documento vivo então provavelmente vou editá-lo ao longo da vida para que outras pessoas possam aproveitar coisas que eu for aprendendo também.
Deixe um comentário