Precisamos falar de Contratos de Dados

Neylson Crepalde
A3data
Published in
5 min readMar 17, 2023
Photo by fabio on Unsplash

O termo Data Contracts é a última buzzword do mundo de dados e tem sido explorado intensamente em publicações ao redor do mundo. Embora o assunto ainda não tenha chegado com tanta força ao Brasil, a dor que ele se propõe a resolver já é bem presente no mercado. Mas do que de fato estamos falando e que qual é essa dor?

Em busca de ser Data Driven

Nos últimos anos, as organizações do mercado brasileiro fizeram um grande esforço no sentido de se tornarem cada vez mais Data Driven. No início buscava-se levantar dados disponíveis na empresa e mobilizá-los para trazer inteligência para a tomada de decisão do dia a dia.

Vencido este desafio, o mercado percebeu que, embora conseguissem utilizar esses dados, eles estavam desestruturados, desorganizados e separados em diferentes sistemas. Nessa etapa, a prioridade passou a ser construir um ambiente que possibilitasse trabalhar com volumes de dados muito grandes. Era importante ainda que essa arquitetura permitisse uma escalabilidade eficiente e rápida de recursos quando necessário e que trouxesse eficiência operacional aos processos da empresa tornando os pipelines mais automáticos e com melhor performance. Era crítico, nessa etapa, fazer com que dados de fontes diversas e com formatos distintos conseguissem "conversar entre si" entregando ao usuário uma visão consolidada do fenômeno base das decisões.

No momento da escrita deste artigo, percebo que o mercado já conseguiu uma certa maturidade em arquiteturas de dados. Os Data Lakes e estruturas de Data Mesh das empresas já estão rodando em produção com pipelines de dados que conseguem entregar o dado de maneira consolidada ao usuário de negócio. CONTUDO, existe aqui uma consequência importante:

À medida em que as organizações caminham para ser mais data driven, elas estão, de fato, ancorando a operação do seu negócio nos dados. Isso traz uma criticidade enorme para a nossa arquitetura de modo que se houver qualquer tipo de falha ou indisponibilidade nos dados, podemos parar a operação (!!!).

Infelizmente, indisponibilidade de dados é uma situação bastante comum no dia a dia dos times de dados. É muito comum que esses times recebam uma ligação aflita do usuário de negócio dizendo que os dados não estão disponíveis, não foram atualizados, estão em branco ou algo do tipo. Isso é potencializado quando a organização é grande e complexa e possui um cenário onde há vários times produtores e consumidores de dados. Nesses casos, os pontos de falha do processo são multiplicados. De acordo com Barr Moses, CEO da Monte Carlo, entre os principais desafios de dados estão:

  • "Pipelines de dados quebram constantemente e criam problemas de qualidade e usabilidade".
  • "Existe um abismo de comunicação entre implementadores de serviços, engenheiros de dados e consumidores de dados" (Confira o artigo original neste link).

A alta disponibilidade de dados, portanto, se apresenta como um problema de primeira ordem a ser resolvido. Há outras questões importantíssimas relacionadas ao nosso ambiente como segurança, controle de acesso, qualidade… mas a alta disponibilidade toma uma relevância enorme nesse contexto. O que fazer?

O que são os Contratos de Dados

Os contratos de dados surgiram como uma proposta de solução para o problema mencionado. Esse termo ganhou proeminência no mercado com Chad Sanderson em Agosto de 2022 em seu texto The Rise of Data Contracts. Nesse artigo, ele postula o problema e propõe o conceito de contratos de dados como "um acordo em formato de API entre engenheiros de softwares que são responsáveis por serviços e consumidores de dados que entendem como o negócio funciona para gerar dados bem modelados, de alta qualidade, confiáveis, em tempo real".

Maggie Hays comenta que um contrato de dados precisa definir:

  • "Quais dados é necessário mover entre os produtores e os consumidores"
  • "O formato do dado, seu schema e semântica"
  • "Expectativas sobre a disponibilidade e qualidade dos dados"
  • "Detalhes sobre violações do contrato e maneiras de enforcement"
  • "Como (e por quanto tempo) o consumidor fará uso dos dados" (Confira o artigo original neste link)

O ponto que mais me chama a atenção é que a ideia de contratos de dados não reside apenas no claro estabelecimento de critérios de entrega e consumo do dados mas também se preocupa em garantir, de maneira automatizada, que esse contrato não seja ferido quebrando pipelines inteiras e gerando um prejuízo para a operação do negócio.

Meus dois cents no assunto

Fonte: https://blog.datahubproject.io/harnessing-the-power-of-data-lineage-with-datahub-ad086358dec4

Para além do que já tem sido exaustivamente argumentado gostaria de acrescentar mais uma feature necessária a uma boa implementação de contratos de dados: a visualização de todo o percurso do dado com seus pontos de falha.

É fácil argumentar que a feature da qual estou falando nada mais é do que o data lineage, feature disponibilizada por algumas soluções de catálogo de dados no mercado. Contudo, o lineage (embora seja importantíssimo para uma boa estratégia de governança de dados) é apenas uma parte. A visão que acredito ser útil para os contratos de dados traria, além disso, os pontos de falha do processo e se esses pontos estão OK ou se foi detectada falha; uma visão consolidada de todos os contratos que permeiam a organização, uma visão holística do processo.

Além de funcionar como um monitoramento de todo o fluxo de dados na empresa, essa visualização seria extremamente importante na estratégia de aculturamento e data literacy tornando todo o processo explícito para os stakeholders.

Perspectivas para o futuro

Nesse momento há algumas ideias publicadas para a implementação de contratos de dados. Algumas utilizando o schema registry do Kafka e CDC como enforcement numa arquitetura orientada a eventos, outras propondo utilizar o dbt numa proposta em batch… mas ainda não há uma definição clara ou um método consolidado para implementar o conceito.

A expectativa em relação a essa feature, entretanto, é enorme. A promessa de acelerar a produção e mobilização estratégica de dados junto com uma melhora significativa de qualidade e disponibilidade trouxeram esse conceito aos holofotes do mercado. A previsão é que nos próximos meses as primeiras soluções como produto nesse tema já comecem a surgir.

--

--

Neylson Crepalde
A3data
Editor for

Senior Generative AI Strategist @ AWS | PhD | Professor