Neste artigo eu decidi explorar as possibilidades de utilização do Airflow como ferramenta de data quality. Não que isso seja uma novidade, pois já é aplicado em muitas empresas e, inclusive, esta forma de utilização da ferramenta está em sua própria definição, ao qual encontramos na documentação da ferramenta. Contudo, decidi discutir aqui no artigo os possíveis cenários e as estratégias de aplicação onde esta ferramenta pode fazer mais sentido.
Primeiramente, devemos estabelecer que este artigo é um case de data quality, certamente haverá um outro artigo para explorar os conceitos gerais de data quality. No entanto, não podemos começar sem antes falar sobre o valor e o impacto do data quality para a área de dados. É necessário implementar rotinas que validem a acurácia, consistência, completude, entre outras características dos dados. Existem diversas ferramentas que possuem funções dedicadas à implementação de rotinas de data quality, como SODA, Great Expectations e DQLabs. Além disso, existem também diversas outras ferramentas para implementação de dataflows que contêm soluções de data quality já integradas, como o DBT, Databricks e Kafka. No entanto, data quality é relativo à processos e não à ferramentas – por mais que algumas empresas queiram te convencer do contrário. Digo… há também aqueles arquitetos que adoram buzzwords e repetem entusiasmadamente o discurso dessas empresas que vendem serviços de data quality.

Podemos implementar processos de data quality utilizando constraints em um banco de dados ou criando algoritmos customizados. Para este segundo caso, a utilização do Airflow pode ser uma ótima alternativa para orquestrar a solução.
O Airflow é uma ferramenta para gestão de workflows. Então, podemos utilizar esta plataforma para orquestrar a execução de todas as rotinas de verificação da qualidade dos dados. Neste ponto, chegamos na primeira vantagem em utilizar o Airflow: Podemos reunir todas as rotinas em uma única plataforma que irá nos fornecer uma interface gráfica onde poderemos consultar a execução, o status e os logs de cada verificação. Isto também facilitará a manutenção do código, sendo fácil adicionar, remover ou atualizar as rotinas de verificação dos dados.

Outro ponto que podemos considerar é a segurança para a conexão com diversos bancos de dados. É claro, poderíamos utilizar um ORM como o SQLAlchemy para realizar a conexão com diversos bancos de dados, mas o Airflow possui uma interface gráfica muito simples e intuitiva onde podemos cadastrar diversas conexões com diferentes bancos de dados e depois realizar a chamada destas conexões diretamente em nosso código que será executado nas DAGs do Airflow. Este recurso pode ser utilizado também para se conectar com as plataformas que receberão as notificações caso uma rotina de data quality encontre alguma inconsistência nos dados. Podemos, por exemplo, configurar uma conexão com o Slack e assim todos os alerts gerados poderão ser enviados para um grupo específico onde estarão os responsáveis por aquela aplicação. Desta forma, vemos que com tantas conexões necessárias, seja para executar verificações em diferentes bases de dados ou para enviar as notificações de alerta, possuir uma interface centralizada e segura onde todas elas podem ser gerenciadas pode ser algo muito proveitoso.

Um processo comum para a realização de verificações de data quality é a simples execução de queries em uma tabela para verificar quantas linhas foram inseridos recentemente, se os valores inseridos estão dentro de um range esperado, se há correspondência entre os valores inseridos em duas tabelas distintas ou qualquer outra validação dos dados. Porém, ao invés de utilizar uma query SQL em si, pode ser utilizada uma função do Airflow já dedicada para criação de um assert. A função SQLTableCheckOperator pode ser utilizada para realizar uma verificação de uma condição em uma tabela retornando True caso a condição tenha sido atendida ou False caso o contrário seja constatado. A função SQLThresholdCheckOperator pode ser muito útil caso se queira verificar se a soma (ou outra forma de agregação) dos valores de um grupo de registros está dentro de um range esperado. Por fim, existem ainda outras funções que podem ser utilizadas para facilitar o processo de data quality.
Falando agora sobre uma experiência profissional que tive, uma vez eu sugerir a utilização do Airflow tendo um slide inteiro da apresentação dedicado para deixar claro que se tratava de um case específico, mencionando que o Airflow não era uma ferramenta de observabilidade em si e mesmo assim diversas pessoas comentaram ao fim da reunião “mas o Airflow não é uma ferramenta de observabilidade!”. Por isso, vou correr o risco de ser repetitivo (já sendo) e reforçar que este é apenas um case e, em especial, direcionado para processos de data quality em projetos pequenos. É uma possibilidade entre inúmeras para implementarmos processos de verificação da qualidade de dados em nossos dataflows.
Fontes
MOSES, Barr; GAVISH, Lior; VORWERCK, Molly. Fundamentos da qualidade de dados: guia prático para criar pipelines de dados confiáveis. Tradução de Cibelle Ravaglia. São Paulo: Alta Books, 2024. ISBN 978-8550821139.


Deixe um comentário