Este artigo aborda a anatomia de um projeto DBT e o papel fundamental que ele desempenha em DataOps.

A Dbt Labs é vista como líder de mercado na categoria de transformação de dados, que é uma parte da data stack moderna.

O ‘Agile Manifest’ desencadeou uma série de transformações nos processos de desenvolvimento, dando origem a novos paradigmas, metodologias e práticas. O DataOps, derivado do DevOps, é um desses frutos, cuja primeira citação foi em 2017, no artigo “3 Reasons why DataOps is Essential for Big Data Success”.

Segundo um artigo publicado pela IBM, DataOps (Data Operations) é a orquestração de pessoas, processos e tecnologias com o intuito de proporcionar dados de maneira rápida e confiável, para que sejam entregues aos responsáveis pela governança de dados ou para a aplicação direta nos negócios, tanto em operações ou em aplicativos como na inteligência artificial.

O DataOps permite aumentar a velocidade e a escala das operações através de todo o ciclo de vida dos dados. Outra definição, mais simples, é que DataOps é a busca por formas mais rápidas e eficientes para acelerar o lançamento de soluções analíticas. Tarefas que demoravam 2 semanas ou mais, com a adoção de DataOps podem ser feitas em 1 ou 2 dias.

Geralmente, os engenheiros de dados perdem 75% do seu tempo processando tarefas manuais. Confira, no diagrama abaixo, uma representação dos principais problemas que o DataOps pode resolver visando acelerar uma entrega.

DataOps-DBT-triggo.ai

Nesse contexto, vamos apresentar agora o DBT (Data Build Tool), ferramenta que potencializa e simplifica os pipelines construídos com o Snowflake. Juntas, essas duas ferramentas são capazes de viabilizar uma esteira eficaz e completa de DataOps.

Arquitetura Moderna usando DBT

stack-dbt-snowflake-triggo.ai

Um ecossistema moderno de Cloud Data (Data Warehouse, Data Lake, Data Mart, Open Data Store) suporta diversas linguagens de programação (Python, Java, .Net, Node, C e SQL Alchemy) e serve para propósitos diversos, tais como Machine Learning, Data Science, Business Intelligence e Data Integration. Muitas empresas, ao redor do mundo, adotaram e estão sendo surpreendidas com o valor que a nova data stack entrega ao negócio e como a separação da camada de armazenamento da camada computacional proporciona uma escalabilidade quase infinita com custo viável.

O DBT (Data Build Tool) inova completamente a forma de orquestrar ELT (Extract Load and Transform). Sendo responsável pela transformação, o DBT traz para a engenharia de dados a possibilidade de tratar dados utilizando SQL. Para o DBT as queries são modelos que representam tabelas e views. Esses modelos podem ser versionados e seus esquemas e dados podem ser testados (muito similar aos testes unitários).

Os modelos podem ser vinculados para formar um DAG (Directed Acyclic Graphic), semelhante ao modelo computacional usado pelo Spark e Tensorflow. O DAG representa não só a ordem de execução das queries, mas também a linhagem dos dados gerados através dos modelos.

Anatomia de um projeto DBT

O DBT foi construído com Python e pode ser instalado usando o pip.  Uma vez que o dbt é instalado, um novo projeto pode ser criado com o comando: dbt init nome-do-projeto.
Todos os arquivos em um projeto dbt são dos tipos .md, .yml ou .sql sendo que:

  • .md – são arquivos de documentação para os modelos. São na verdade uma variação do markdown;
  • .yml – são arquivos de configuração do projeto. O principal é o dbt_project.yml;
  • .sql – usados para construção dos modelos e testes.

Artefatos do projeto

Os artefatos em um projeto DBT são divididos em: 

– Models

São o coração do DBT, pois, no workload de ELT, são responsáveis pela Transformação(T). São sempre selects que o DBT materializa como views ou tables (permanentes ou efêmeras). Eles formam uma sequência de execução, referenciando outros modelos.

– Tests

São arquivos .sql usados para fazer teste de qualidade nos dados.  É possível testar constraints de Unique Key, Not Null e range de valores.

– Macros

São funcionalidades construídas com templates utilizando Jinja. São usados para construir funcionalidades mais avançadas que o sql puro permite, com loops, declaração de variáveis, funções, etc.

– Analysis

São modelos diferentes que não rodam no deploy do projeto. São pseudos modelos que precisam ser compilados e não executados. Não são materializados em views nem em tabelas, mas são ligados em soluções analíticas como pipelines de Data Science.

– Docs

São artefatos opcionais, mas extremamente úteis, que permitem criar uma documentação dos modelos. Para isso é usada uma linguagem muito similar ao conhecido markdown.

– Logs

O DBT possui uma poderosa funcionalidade de logs. Quando o comando ‘dbt run’ é executado, o DBT cria logs dos modelos, dos testes e das macros, na pasta logs.

– Packages

São bibliotecas produzidas para modularizar o código. São de fato projetos DBT, que você pode utilizar para solucionar um determinado problema.

Agora que você já conhece um pouco mais sobre o DBT, vale ressaltar que a ferramenta caiu como uma luva nesse novo paradigma, potencializando todas as práticas do manifesto ágil. Ao trocar a ordem da operação dos dados de ETL (Extract Transform and Load) para ELT(Extract Load e Transform), a engenharia de dados resolveu problemas de complexidade, desempenho e disponibilidade que existiam nos antigos Data Warehouses.

Não perca os próximos capítulos dessa jornada

Os dados são o combustível da inovação, portanto uma esteira fluída de DataOps estimula a agilidade de equipes e processos. Agora que você já entendeu a anatomia do DBT e o papel fundamental que ele desempenha em DataOps, não perca os próximos artigos, pois traremos hands-on de projeto DBT, integração contínua do DBT com git, ambientes de desenvolvimento (DBT local dockerizado) x ambiente de produção (DBT Cloud), linhagem de dados, testes e outros aspectos que o DBT proporciona.

A triggo.ai é pioneira e especialista em MDS – Modern Data Stack & DataOps, desenvolvemos produtos e soluções que permitem nossos clientes atingir o melhor ROI para Data Analytics & AI. Fale com um de nossos especialistas!