Neste artigo, abordaremos os principais fatores na redução de custos no BigQuery, desde a criação de consultas de maneira adequada e a construção de arquitetura de dados para dar suporte a um objetivo - reduzir custos.
Consultas em BQ custam dinheiro
O preço no BQ é em um pay as you go: $ 5 por 1 TB verificado ao executar sua consulta
Regra prática - na maioria dos casos, se sua consulta custar mais de $ 1, você aparentemente está fazendo algo errado.
Esteja no controle de seus custos - Esta ferramenta pode ajudá-lo dramaticamente com isso:
- BigQuery Mate - (extensão gratuita do Chrome)
O que fazer e o que não fazer
1. Tente evitar o uso de “Select *”,
Desta forma, você evita pagar por varreduras de dados de colunas que você não necessariamente precisa no resultado da consulta.
2. O uso da cláusula “Limit” em uma consulta não afetará a quantidade de dados verificados.
3. Use a opção “Table Preview” para ver algumas linhas da tabela (em vez de usar o limite) - Isso é Gratuito
4. Há também um nível de proteção mais extremo nas configurações de consulta - seção Opções avançadas: “Máximo de bytes faturados”.
Usar isso limitará os bytes cobrados para esta consulta. Se esta consulta tiver bytes faturados além desse limite, a consulta falhará (sem incorrer em cobrança).
5. use o tempo de expiração da tabela padrão para remover os dados quando não forem mais necessários. - Isso vai economizar custos de armazenamento.
6. Use inserções de streaming apenas se seus dados devem estar imediatamente disponíveis para consulta. Em outras palavras - não use inserções de streaming, a menos que seja necessário! Custa dinheiro.
7. Cotas - você pode definir um limite rígido de varredura de dados em um nível diário ou até mesmo em um nível de projeto - mas não em um nível de usuário. Essa é uma boa prática definir um orçamento diário que o manterá na zona de segurança em termos de custo.
Fatores-chave de desempenho (e custo)
1. Divida suas tabelas - as significativamente grandes!
Isso melhorará o desempenho e o custo da consulta.
2. Existem várias maneiras de particionar tabelas - a mais comum e, na maioria das vezes, também a mais econômica e com melhor desempenho é o método de tabelas particionadas por tempo.
3. Desnormalize quando possível. - Bigquery por sua natureza é projetado para uma tabela enorme. A implementação de relações de tabela normalizadas resultará em muitos joins e sobrecarga em termos de desempenho e custo.
4. Use “Order By” apenas na consulta externa ou dentro de window clauses (funções analíticas). Envie operações complexas para o final da consulta.
5. Evite self-joins. Em vez disso, use uma window function.
6. A mesma coisa se aplica a Cross-Joins.
Diretrizes de arquitetura de dados para redução de custos
1. Conforme mencionado no início do artigo - O princípio chave que nos orienta ao projetar uma arquitetura econômica é reduzir a quantidade de dados digitalizados pelo usuário final.
2. Na maioria dos casos, o usuário final pode ser o analista ou um usuário de negócios usando uma plataforma de BI.
3. Queremos reduzir a quantidade de dados digitalizados em termos de custo e não podemos esquecer o desempenho.
Você não quer que seu CEO espere por uma dashboard mais do que alguns segundos até que novos dados sejam apresentados.
4. A maneira de reduzir os dados é por um método de camadas simples que começa com os dados brutos - camada de ingestão e termina com uma parte muito pequena deles projetada e agrupada especificamente para a ferramenta de BI de sua escolha - a camada de apresentação
5. Entre essas camadas, você deve fazer toda a limpeza / transformação / união / agregação para oferecer suporte à camada superior a ser otimizada para consultas rápidas e baratas para suas visualizações de BI.
6. É altamente recomendável dissociar sua computação e armazenamento.
Uma solução comum para garantir isso é usar o Airflow para orquestrar todos os seus pipelines de dados.
7. As operações de dados em cada nível podem ser executadas por uma ferramenta de sua escolha. Para simplificar o processo, uma boa prática é começar implementando-o apenas com visões internas.
8. É assim que parece, eventualmente:
