Otimização de DWH com Dataform

Redução de 98.5% em custos e otimização de 8x na velocidade de atualização de um Data Warehouse legado.

Contexto

Este projeto aborda a reestruturação completa de um Data Warehouse em BigQuery, migrando um pipeline legado e custoso de dbt para uma solução nativa e eficiente com Google Dataform.

Problema

A arquitetura anterior, baseada em dbt e Airflow, era insustentável, com custos de processamento elevados e desnecessários.

Muitas tabelas não eram mais utilizadas, mas ainda consumiam recursos.

O tempo de atualização de 40 minutos para o DWH completo impactava a agilidade do negócio.

Solução e Contribuição

  • Liderei o projeto de redesenho do Data Warehouse do zero.
  • Implementei a Arquitetura Medallion (Bronze, Silver, Gold) para garantir a governança e qualidade dos dados.
  • Utilizei JavaScript dentro do Dataform para modularizar e reutilizar regras de negócio complexas.
  • Garanti uma migração segura e validada, sem perda de dados.
Diagrama de arquitetura do projeto Otimização de DWH com Dataform
Diagrama de alto nível da arquitetura da solução do Otimização de DWH com Dataform
Diagrama de arquitetura do projeto Otimização de DWH com Dataform

Diagrama de alto nível da arquitetura da solução do Otimização de DWH com Dataform

Resultados e Impactos

  • Redução de 8x no tempo de atualização do DWH (de 40 para 5 minutos).
  • Custos de processamento drasticamente reduzidos devido à eliminação de tabelas obsoletas e processos otimizados.
  • Melhora significativa na governança e manutenibilidade da base de dados.

Tecnologias utilizadas

Detalhes técnicos

Modelagem Nativa no BigQuery

Ao adotar o Dataform, eliminamos a dependência do Airflow para orquestrar o dbt, aproveitando a integração nativa e gratuita do BigQuery. Isso simplificou a stack e acelerou drasticamente o tempo de atualização de 40 para menos de 5 minutos.

Modularização com JavaScript

Regras de negócio que se repetiam em vários modelos foram encapsuladas em funções JavaScript, importadas diretamente nos arquivos SQLX. Isso aumentou a manutenibilidade e reduziu a duplicação de código.