Indicium Logo
Blog Indicium

dbt: uma ferramenta para ETL e ELT

O dbt é uma ferramenta de transformação de dados (data build tool) utilizada nos processos de ETL e ELT por profissionais de analytics na operação de informações através da linguagem de consulta SQL.

Sem o dbt, os dados de uma empresa chegam “crus” até ela, em diversos formatos, sejam estruturados ou não estruturados. Sem falar que as fontes desses dados também são variadas, assim como os métodos de ingestão.

É por isso que, antes de serem armazenados em um data warehouse (DW) ou em um data lake (DL), esses dados precisam ser transformados para serem de fato úteis e confiáveis. É aí que entra o dbt. 😉

E com este artigo, você vai saber um pouco mais sobre essa ferramenta. Vamos contar como foi a jornada da equipe de dados da empresa Loft até a implementação do dbt na sua abordagem moderna de analytics.

Boa leitura!

O que é dbt?

O dbt (data build tool) é uma ferramenta de transformação de dados utilizada nos processos de ETL e ELT, em que profissionais de analytics operam informações através da linguagem de consulta SQL.

É uma das principais ferramentas usadas durante a etapa de transformação dos dados para auxiliar na construção de um DW e, por isso, é tão importante nos processos de tratamento de informações.

Vantagens do dbt

As duas principais vantagens do dbt são:

  1. o fato de ser open source, facilitando sua implementação e uso geral;
  2. e sua comunidade, que é bastante ativa, presente e sempre disposta a auxiliar na solução de problemas.

E agora, vamos à prática.

Queremos mostrar como você pode reinventar seus processos com modernas tecnologias de dados, assim como a Loft fez usando o dbt.

Por que a Loft escolheu o dbt?

A Loft é uma das maiores empresas do mercado imobiliário, especialmente por trazer ideias inovadoras de e-commerce para o setor de imóveis. Esse movimento de levar a compra e venda de imóveis para o comércio online foi um dos grandes desafios superados pela empresa com o dbt.

Para fazer isso acontecer, a Loft contou com as seguintes equipes de dados:

  • business analytics — responsável por definir conceitos de dados e disponibilizar para o restante da empresa as informações em forma de tabelas e dashboards, que são painéis intuitivos e interativos;
  • data engineering — equipe focada na criação da infraestrutura de dados e suas funcionalidades para que os times de operações interagirem a partir disso em cada etapa do fluxo do projeto construído, ou seja, com o pipeline de dados;
  • data science — time separado dos demais, alocado em grupos específicos para a resolução de problemas do tipo: como precificar imóveis, como alocar corretores para visitas de imóveis etc.

No começo, porém, as tecnologias utilizadas não estavam dando as respostas para as demandas da empresa, que crescia cada vez mais rápido. Até então, a Loft utilizava Python, orquestrava dados com CronJob e gerenciava bancos de dados com MySQL, usando inúmeras planilhas e pouquíssimo o Github. 😅

Essas ferramentas não estavam dando conta de suas funções, o que implicava falhas que atrapalhavam os processos de ETL e ELT, além de outros incômodos, como:

  • lógica de negócio escondida em códigos Python mal executados;
  • falta de colaboração pelo pouco uso de Github;
  • falhas nos scripts prejudicando o BI (business intelligence), reduzindo a confiança e exigindo intervenções manuais;
  • e falta de evolução nos processos.

Mas um dos maiores problemas mesmo era o uso de Pandas (Python), que não oferecia um código testável, gerando confusão para os demais colaboradores compreenderem os projetos.

Como a Loft resolveu isso?

Com as boas práticas de engenharia de software do dbt.

Além dos problemas relatados, outras questões foram importantes na decisão de a empresa de migrar para o dbt. Veja:

  • paradoxo em governança — algumas fontes de dados possuíam muitos donos e outras não possuíam nenhum;
  • notebooks — os equipamentos não ofereciam controle de versionamento ou processos de aprovação e revisão;
  • mudanças nos dados — quebravam as dependências desconhecidas.

Mas nem tudo era ruim! Havia aspectos positivos também que a empresa queria manter, como a alocação de todos os dados em um único local e as tabelas deltas, o que foi possível com o dbt.

Processo de implementação do dbt na Loft

Assim que os principais problemas foram identificados, a equipe da Loft começou sua jornada em busca da ferramenta ideal.

Foi então que, através do livro The Analytics Setup Guidebook, da Holistcs, na seção sobre as bases da criação de uma abordagem moderna de analytics (MAS), o time encontrou o dbt, a ferramenta de ETL e ELT que faltava.

Depois disso, a equipe buscou entender o funcionamento da ferramenta através do tutorial hands-on feito para novas pessoas usuárias, o dbt Getting Started.

Então, chegou a hora dos testes: encontrando um problema ideal que incomodasse muita gente sem muitas exceções, o time da Loft deu início a um processo de tentativa e erro.

Nessa etapa, a comunidade dbt foi essencial, pois foi em espaços como o Discourse, um fórum de código aberto, e no próprio Slack, que a equipe técnica da Loft encontrou inúmeras soluções e resoluções de dúvidas a respeito da ferramenta dbt.

A implementação em si foi executada pelo time de business analytics usando um conhecimento limitado de Python e práticas de engenharia de software. Foi necessário oferecer treinamentos de dbt e de Git (esse último para a prática de colaboração nos projetos).

Todo o processo de migração de tecnologias na empresa foi focado na consistência, transferindo apenas um modelo por semana, e não todos ao mesmo tempo.

Feita a implementação do dbt, a Loft se viu com a necessidade de fazer novas contratações e processos de onboarding, especialmente nas partes técnica e de liderança, para adequar os processos ao uso e melhor proveito da ferramenta.

Entre os resultados que surgiram após a implementação, veja a seguir o que a empresa destaca.

Execução

Em um período de apenas 3 meses, cerca de 260 modelos foram migrados e refatorados. A partir de 70% da migração feita, o dbt virou a ferramenta oficial dos processos de ETL e ELT da Loft.

Performance

Com o dbt, a execução total de todas as tabelas em nível analítico foi feita em somente 50 minutos, apresentando performance mais rápida e mais poderosa em comparação a diversas execuções paralelas em clusters efêmeros.

Mentalidade

Com melhor desempenho nos processos de transformação de dados, a Loft passou a adotar uma mentalidade diferente para seu fluxo de trabalho. Através dos testes, as expectativas dos dados ficaram mais claras, bem como os conceitos de negócio.

Aprendizado

Usando o dbt, a empresa viu a importância de mudar a abordagem de desenvolvimento de dados, especialmente por conta dos testes que, antes, não faziam parte da cultura da Loft.

O dbt no dia a dia da Loft

Com o dbt já fazendo parte da rotina, a Loft encontrou três principais utilidades para a ferramenta dentro da empresa:

  1. controle de versionamento;
  2. teste e documentação;
  3. e desenvolvimento com SQL modular.

Abaixo, você vai conhecer os principais benefícios dessas três funções.

1. Controle de versionamento

Permite versionar os códigos e definições das tabelas em SQL, o que é uma grande vantagem para a Loft, pois, antes do dbt, não havia comunicação para avisar sobre as mudanças de definição de tabela porque a empresa não contava com histórico. Com o controle de versão, agora é possível também testar as alterações ao longo do pipeline de dados (fluxo) inteiro.

2. Teste e documentação

Garante que apenas os dados que estejam de acordo com os requisitos e com os relacionamentos definidos subam para produção. Essas condições mais complexas que podem ser definidas em termos de transformação de dados fazem com que as informações sejam ainda mais confiáveis.

3. Desenvolvimento com SQL modular

A principal diferença para quem usa SQL no dbt é que não precisa usar o comando SELECT mais “o nome da tabela”. Ao invés disso, usa-se REF, criando um gráfico de dependência dos modelos e das tabelas. Quando é necessário mudar uma tabela, é possível já saber o que ela consome e do que ela depende.

Como o dbt se encaixa dentro da modern data stack (MAS)

A modern analytics stack (MAS) é uma combinação de pessoas, processos e ferramentas, ou seja, é uma abordagem que não se compra, mas se constrói.

Dentro do MAS, a equipe de dados trabalha com ETL/ELT com foco no estágio de transformação utilizando o dbt.

Em um pipeline de dados como o da Loft, o dbt aparece como ferramenta vital.

As ferramentas usadas na modern analytics stack exigem certos padrões, como a possibilidade de versionamento e de governança, que são oferecidos pelo dbt e que, por isso, fazem com que o software se encaixe tão bem nessa abordagem.

Aprenda a trabalhar com o dbt na Indicium Academy

O primeiro programa de educação em dados a oferecer a Formação em Engenharia de Analytics no Brasil, a Indicium Academy, ensina em 7 semanas de curso, com aulas ao vivo, gravadas e material totalmente em português, o que se faz na função de analytics engineer, e isso inclui trabalhar com o dbt.

Dentro da formação, você aprende a executar as principais responsabilidades dessa nova função, incluindo a operação de ferramentas, como o dbt, e a sua principal linguagem de consulta, a SQL.

Conecte-se com a Indicium

Também compartilhamos nosso conhecimento em materiais gratuitos disponíveis em nosso site no menu Conteúdos, no canal no YouTube e em nosso blog.

Inscreva-se para receber nossas news e ficar por dentro das novas turmas da Indicium Academy e de tudo sobre o mundo da ciência de dados para empresas, incluindo o dbt! 😉

  • Raphael P. Caldeira
    Por Raphael P. Caldeira Content Developer at Indicium Tech

Assine nossa newsletter