Você conhece o DBT?
Conheça o orquestrador de dados que vai encantar seus analistas de dados!
Você conhece o DBT? Já ouviu falar ou já trabalha com a ferramenta? Vou tentar aqui com um resumo rápido explicar e exemplificar de como é maravilhoso usar esse maestro da grande orquestra que é a engenharia de dados.
Surgimento do DBT
Antigamente, para se ter um Data Warehouse, era necessário um trabalho prévio de extração, transformação e carregamentos desses dados transformados de forma estruturada e pronta para utilização por alguém ou em alguma ferramenta de análise. Com o surgimento e disseminação dos bancos de dados NoSQL e das tecnologias de nuvem, providenciando elasticidade, disponibilidade e grande capacidade de processamento, esse esforço de trabalho prévio acabou se tornando mais caro, no ponto de vista de operações e infraestrutura. Assim então, esse paradigma foi otimizado para que os dados sejam extraídos, carregados e depois transformados em seus próprios Data Warehouses.
Essa mudança veio para que a complexidade de estruturação, desempenho e disponibilidade dos dados utilizando o ETL (Extract, Transform & Load) fossem resolvidos — alterando a ordem de operação dos dados para ELT (Extract, Load & Transform).
Com esse novo paradigma, podemos carregar os dados em repositórios de dados centralizados, tornando todos os dados disponíveis para diferentes consumidores de dados e aplicações.
Surge então a necessidade de ter uma ferramenta para que esse processo de transformação não fosse algo muito moroso e/ou complexo. Uma das ferramentas para suprir essa necessidade que apareceu foi o DBT, uma ferramenta que aproveita e foca somente na parte de transformação dos dados que iremos explanar melhor nos parágrafos a seguir.
O que é o DBT?
DBT é uma ferramenta para transformar dados (Data Build Tool) através de querys em SQL que permitem engenheiros e analistas de dados manipular seu Data Warehouse com mais eficiência. Essa é uma definição sobre uma ferramenta que apesar de parecer simples é de extrema necessidade para agilizar e simplificar qualquer transformação necessária em seus dados armazenados. Em um grande resumo o DBT compila, roda as querys salvando em uma nova tabela ou view dentro do seu database.
O DBT utiliza o conceito de modelos que são utilizados para a transformação dos dados. O código dbt é escrito no editor de texto de sua preferência e depois executado em uma linha de comando. O dbt compila todo o código no SQL bruto e executa esse código no data warehouse configurado conforme veremos no exemplo que darei ao fim do texto.
Por que utilizar o DBT?
Com o DBT todas esses empecilhos podem ser sanados. Você deve estar se perguntando como isso é possível, não é? Então, ao invés de realizar todo o processo de transformações com códigos complexos e extensos em python, o DBT utiliza SQL para rodar o código no seu database trazendo agilidade na escrita de códigos e reutilização das funções desenvolvidas.
O DBT suporta integralmente Data Warehouses como Postgres, AWS Redshift, Google BigQuery, Snowflakes e parcialmente Presto e Spark. Por último mas não menos importante, o DBT é um projeto open source onde a comunidade vem contribuindo bastante para melhorar cada dia mais a ferramenta.
Exemplo
Para demonstrar um exemplo de utilização do DBT, iremos utilizar o BigQuery da Google como Data Warehouse e um dataset público do StackOverflow disponível no BigQuery.
Primeiramente precisaremos instalar o DBT seguindo a documentação no próprio site do DBT. Após instalado devemos criar o projeto com o comando no terminal:
$ dbt init [nome-projeto]
Para que o dbt funcione com o BigQuery, precisamos dar permissão. A maneira de fazer isso é configurando o perfil com informações de login. Basicamente, você precisa criar um perfil na pasta dbt e vincular esse perfil a esse projeto DBT específico que você acabou de criar. Para direcionar onde o dbt atuará, deve-se configurar o arquivo profiles.yml que se encontra na pasta .dbt e direcionar o seu projeto para utilização desta configuração através do arquivo dbt_project.yml. Assim os arquivos ficarão da seguinte forma após configurados:
# For more information on how to configure this file, please see:
# https://docs.getdbt.com/docs/profiledbt-bigquery:
outputs:
dev:
type: bigquery
threads: 1
method: service-account
project: [projeto-gerado-bigquery]
dataset: [dataset-criado-bigquery]
keyfile: /Users/[usuario-pc]/[caminho-pastas]/
[arquivo-chave-bigquery-gerado].json
timeout_seconds: 300
target: dev
É necessário que algumas informações acima sejam definidas especificamente para cada projeto como project, dataset e keyfile. Vale a lembrança que o nome dado no arquivo profile.yml deve ser passado no campo profile no arquivo dbt_project.yml.
# This setting configures which “profile” dbt uses for this project. Profiles contain database connection information, and should be configured in the ~/.dbt/profiles.yml fileprofile: ‘dbt-bigquery’
Dentro da pasta criada do projeto encontra-se também a pasta models e é nessa pasta onde deve-se colocar os modelos de SQL para as transformações a serem realizadas. O modelo exemplo criado separamos as 10 primeiras linhas e algumas colunas do dataset público do Stack Overflow e colocamos em ordem decrescente considerando o número de visualizações das perguntas.
{{ config(materialized=’table’) }}
SELECT title, accepted_answer_id, view_count, score, favorite_count
FROM `bigquery-public-data.stackoverflow.posts_questions`
ORDER BY view_count DESC
LIMIT 10
Após as configurações feitas e os modelos criados basta ir até a pasta do projeto e executar o comando para rodar o dbt através de um terminal:
$ cd [pasta-do-projeto]
$ dbt run
Finalizado o processo e a mensagem de sucesso mostrada, podemos acessar o BigQuery e solicitar uma view de toda a tabela gerada no Query Editor com o código abaixo.
SELECT *
FROM [projeto-criado-bigquery].modelo-dbt
Interessante observar com os resultados obtidos que o assunto mais visto é relacionado a GIT e que não há uma correlação direta entre o número de visitas e a pergunta ser favoritada.
O céu agora é o limite e como Capitão Planeta já dizia:
"O poder agora é de vocês!!"
Se interessou pelo DBT e com toda simplicidade que ele pode te oferecer? Não deixe de entrar em contato pelo contato@datasprints.com! A empresa é parceira do DBT e tem profissionais extremamente qualificados para trabalhar com a ferramenta! Ah, e se quiser receber ativos de nossa metodologia, se inscreva no www.sprintdedados.com.br. A Sprint de Dados foi criada para ser uma metodologia aberta à comunidade, de forma a fortalecer o mercado de dados brasileiro. Curta o texto e compartilhe a palavra por um mundo de dados mais democrático e, principalmente, com resultados para as organizações. Até a próxima!