BigQuery — Economizando com Time Travel

Rafael Teixeira
FinOps Brazil
Published in
2 min readMar 27, 2023

--

A watch on top of dollar bills
Créditos: © Alancrosthwaite | Stock Free Images

Muitas ferramentas/serviços com algum componente de armazenamento de dados analíticos, como Snowflake, Apache Iceberg, e o próprio BigQuery, possuem a possibilidade de consultar uma tabela em um estado anterior.

No BigQuery, por exemplo, é possível realizar uma consulta no seu estado de 24 horas atrás com a seguinte query:

SELECT
column1, column2
FROM
`project_id.dataset_id.table_id` FOR SYSTEM TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)

No artigo Storage Billing Model — Otimização de custos no BigQuery a nível de Organização, mostramos como é possível reduzir os custos de armazenamento no BigQuery com uma simples alteração do modelo de precificação de um dataset. Mencionamos também que um dos motivos que podem limitar as reduções de custo são os bytes de Time Travel, em datasets com Storage Billing Model PHYSICAL .

Por padrão, a janela de time travel de um dataset é de 7 dias. Mas hoje, é possível reduzir para até 2 dias, e é um processo extremamente simples, e muito similar ao que foi apresentado no artigo mencionado anteriormente:

from googleapiclient import discovery

dataset_service = discovery.build("bigquery", "v2").datasets()
dataset_service.patch(projectId="project_id", datasetId="dataset_id",
body={'maxTimeTravelHours':"48"}).execute()

Você só irá obter resultados financeiros diretos para datasets que estejam no modelo de precificação PHYSICAL , mas recomendamos que a redução da janela de time travel seja executada para todos os datasets em que não exista um requisito claro de manter em 7 dias, por dois motivos:

  1. Experiência consistente para os consumidores e produtores de dados da sua organização. É mais simples assumir que todos os datasets terão apenas 2 dias de time travel. Se futuramente um dataset for migrado de LOGICAL para PHYSICAL, não será necessário nenhum tipo de comunicação.
  2. Um dataset que estava no modelo de precificação LOGICAL pode agora, com apenas 2 dias de time travel, ter ganhos significativos ao ser alterado para o modelo de precificação PHYSICAL.

Não é possível fazer uma estimativa muito boa do potencial de economia com a redução da janela de time travel. Mas, se seus requisitos permitirem que abra mão dos 7 dias de time travel por um período de tempo, vocẽ pode fazer a redução por uma semana, observar o impacto nos custos, e depois decidir se permanece com a janela reduzida ou se retorna para os 7 dias.

Quer publicar seu conteúdo no blog FinOps Brazil? Convidamos você para dividir sua experiência! Clique aqui e saiba como ajudar na missão de difundir a prática de FinOps. : )

--

--