O que é um contrato de dados?

Contratos de dados, definidos

Contratos de dados são acordos formais entre produtores e consumidores de dados que definem a qualidade, estrutura, semântica e disponibilidade dos dados. A criação e a aplicação desses acordos podem ajudar as empresas a fortalecer a tomada de decisões baseada em dados.

 

Como os contratos comerciais tradicionais, os contratos de dados incluem termos e condições que regem o que está sendo entregue de uma parte para outra. Em um contrato de dados, isso pode incluir componentes como regras de qualidade de dados, definições de esquema, contratosde nível de serviço, informações do produtor de dados e informações do servidor.

No entanto, onde os contratos de dados realmente diferem é que eles são escritos em código; portanto, os contratos podem ser executados por meio de automação, e não por processos manuais.

O impacto dos contratos de dados na engenharia de dados foi comparado ao impacto das interfaces de programação de aplicativos (APIs) no desenvolvimento de software . APIs definem regras que permitem que aplicações de software se comuniquem entre si, enquanto contratos de dados definem regras que permitem aos consumidores de dados integrar e usar com sucesso dados de várias fontes.

E, assim como as APIs são creditadas por melhorar a produtividade e acelerar a inovação no desenvolvimento de software, a implementação bem-sucedida de contratos de dados pode gerar uma série de benefícios para as empresas e os usuários de dados.

O mais crítico deles é a prevenção de falhas de pipeline de dados: sem contratos de dados, mudanças upstream na produção de dados podem resultar em consequências desastrosas para usuários downstream. Os contratos de dados podem garantir que essas alterações significativas sejam identificadas e tratadas antes que afetem os consumidores de dados.

Outros benefícios dos contratos de dados incluem melhorias na qualidade de dados, gestão de dados e escalabilidade. Os contratos de dados também fornecem suporte fundamental para produtos de dados e arquiteturas de data mesh que permitem aos usuários corporativos encontrar e liberar valor dos dados em toda a organização.

Existem diversas ferramentas e plataformas que ajudam as empresas a definir e impor contratos de dados, incluindo ferramentas de qualidade de dados e plataformas de governança de dados.

Por que os contratos de dados são importantes?

Pipelines de dados frágeis e quebrados são a desgraça de muitos engenheiros de dados. Um estudo descobriu que mais da metade dos engenheiros se depara com falhas de pipeline em seus sistemas de dados pelo menos uma vez por mês, se não mais.1

Muitas vezes, como um Data Architect notou, os pipelines são “mantidos com fita adesiva e desespero”. Quando falham, podem prejudicar a tomada de decisões e as iniciativas de inteligência artificial (IA) de forma desastrosa.

Os contratos de dados podem ajudar a evitar tais consequências visando uma fonte frequente de falhas de pipeline: o desalinhamento entre produtores e consumidores de dados. O desalinhamento ocorre quando novos dados fornecidos pelos produtores de dados não atendem às expectativas dos consumidores, que podem confiar em tipos de dados, esquemas e outras restrições específicos para atender aos seus casos de uso.

É compreensível que os consumidores downstream possam “ter dúvidas sobre a estabilidade dos dados que encontram”, de acordo com Jean-Georges Perrin, campeão vitalício da IBM. “Para criar confiança, o produtor de dados ou o proprietário dos dados precisa mostrar e garantir uma promessa”, escreveu Perrin.

Essa promessa, seja sobre qualidade de dados, validação, acesso ou estrutura, pode ser garantida por meio da implementação de contratos de dados. Quando produtores e consumidores de dados se alinham e codificam os requisitos de dados, isso pode evitar problemas de qualidade de dados antes que eles afetem os fluxos de trabalho posteriores.

Os contratos de dados estão surgindo como especialmente relevantes para os fluxos de trabalho de IA, porque garantir os dados certos para o treinamento de modelos e a análise de dados é crucial para previsões precisas.

"Vocês obtêm dados melhores em seus sistemas, para que não haja lixo para entrar, lixo para fora", disse Perrin.

Produtores e consumidores de dados: principais diferenças e funções

Como o desalinhamento entre produtores e consumidores de dados impulsiona em grande parte a necessidade de contratos de dados, é útil examinar esses dois grupos e suas funções dentro dos ecossistemas de dados.

  • Osprodutores de dados geralmente são engenheiros de software que coletam e armazenam dados enquanto criam aplicações. Muitas vezes, esses dados incluem eventos transacionais, como pedidos de clientes, que podem variar tremendamente em termos de esquema, tamanho, conteúdo e assim por diante.2

  • Os consumidores de dados incluem consumidores de dados técnicos (engenheiros de dados, cientistas de dados e outros membros de equipes de dados que usam linguagens de programação para transformar e analisar dados e construir pipelines de dados) e consumidores de dados não técnicos, ou seja, os usuários corporativos que usam dados transformados para informar decisões.

Os consumidores de dados dependem dos produtores para disponibilizar seus dados para uso posterior. Mas essa dependência, por si só, não estabelece uma relação sólida entre consumidores e produtores. Isso ocorre porque os produtores tendem a armazenar dados nos formatos mais adequados para suas aplicações - as necessidades de gerenciamento de dados dos consumidores downstream não são inerentemente parte de seu foco.

Consequentemente, quando os engenheiros de software atualizam aplicações e códigos, eles podem não considerar como essas atualizações afetam os dados que são, em última análise, entregues aos consumidores de dados.

Quando essas mudanças são inesperadas, mesmo mudanças tão pequenas quanto a eliminação de uma única coluna de uma tabela de 1.000 colunas, pode ocorrer caos para os consumidores de dados. Essas chamadas mudanças significativas podem interromper os fluxos de dados e colocar em risco a compatibilidade dos conjuntos de dados.

Como resultado, os scripts falham, os dashboards se tornam obsoletos ou imprecisos e tanto os humanos quanto os agentes de IA são privados dos dados confiáveis necessários para decisões e operações fundamentais.

Ao estabelecer acordos definitivos entre produtores e consumidores de dados, os contratos de dados podem quebrar os silos que separam os dois grupos, evitando desalinhamentos e apoiando pipelines de dados mais funcionais.

O que inclui um contrato de dados?

Os contratos de dados, como observam os defensores, transformam suposições implícitas em garantias explícitas: eles detalham exatamente o que os produtores de dados devem entregar aos consumidores de dados e como se espera que eles alcancem essa entrega. Os principais elementos dos contratos de dados incluem:

  • Fundamentos
  • Esquema
  • Qualidade de dados
  • Canais de suporte
  • Preços
  • Equipe
  • Funções
  • Acordos de nível de serviço (SLAs)
  • Infraestrutura e servidores

Fundamentos

Os fundamentos, também conhecidos como dados demográficos, abrangem informações gerais sobre o contrato. Isso pode incluir identificadores exclusivos, a versão do contrato (1.0 ou 2.0, por exemplo), o status do contrato (como "ativo" ou "retirado"), a finalidade pretendida para os dados e limitações legais para o uso de dados.

Esquema

Uma definição de esquema detalha como os dados são organizados. Ele especifica objetos (estruturas de dados como tabelas e documentos), propriedades de objetos (como colunas em uma tabela) e metadados para tipos de dados incluídos, como carimbos de data/hora e limites de comprimento de string. Os registros de esquema, que são repositórios centralizados para gerenciar esquemas, podem ajudar a oferecer suporte a contratos de dados.

Qualidade de dados

Os contratos de dados definem regras e parâmetros para garantir dados de alta qualidade. Elas podem lidar com várias métricas de qualidade de dados, como precisão, integridade, validade e contagens nulas. Além disso, regras personalizadas podem permitir verificações de qualidade por ferramentas de qualidade de dados.

Canais de suporte

Os contratos de dados podem listar fontes de suporte, como canais do Slack, canais do Teams, chats do Discord, listas de distribuição de e-mail e sites, para consumidores de dados que precisam de ajuda com seus contratos de dados.

Preços

A seção de preços de um contrato de dados lista o que um consumidor de dados é cobrado por um produto de dados. Ela pode incluir a moeda usada e a unidade de medida (como megabytes ou gigabytes) que pode ser usada para calcular o custo.

Equipe

Conhecidos em alguns modelos mais antigos de contratos de dados como "stakeholder", a seção de equipe de um contrato de dados inclui informações sobre os membros da equipe que possuem os dados e sua relação com o contrato de dados.

Funções

A seção de funções de um contrato de dados lista as funções que fornecem aos consumidores de dados diferentes tipos de acesso (como acesso de leitura ou gravação) a um conjunto de dados.

Acordos de nível de serviço (SLA)

Os contratos de dados incluem descrições de contratos de nível de serviço, que definem o nível de desempenho que o provedor deve atingir. Por exemplo, as seções de SLA podem listar garantias sobre quando os dados estarão disponíveis e por quanto tempo serão retidos.

Infraestrutura e servidores

Especificar o servidor dos dados — como Kafka, Microsoft SQL, Google BigQuery ou IBM Db2 — permite que ele seja descoberto pelos consumidores de dados, ao mesmo tempo em que fornece aos engenheiros de plataforma as informações necessárias para automatizar o acesso. Essa seção também pode incluir informações sobre diferentes ambientes, como desenvolvimento e produção.

Além dos principais valores dos contratos de dados, os stakeholders podem adicionar propriedades personalizadas aos contratos de dados para atender às suas necessidades específicas. Versões recentes dos modelos de contrato de dados mais populares também incluem a capacidade de documentar relações entre propriedades, fazer referência a contratos externos e acessar uma biblioteca de regras de qualidade de dados predefinidas para verificações de qualidade consistentes.

Qual é o formato dos contratos de dados?

Os contratos de dados são sensivelmente diferentes de outros contratos, pois não são escritos em linguagem simples. Em vez disso, eles geralmente são escritos em YAML ou JSON, linguagens de serialização de dados legíveis por humanos e máquinas. (Para usuários não familiarizados com linguagens de serialização de codificação, os contratos de dados podem ser criados no Excel e convertidos em arquivos YAML por meio da ferramenta de código abertoData Contract CLI.)

A vantagem de escrever contratos de dados em uma linguagem de serialização é que ela permite a automação no lugar de processos manuais trabalhosos. Os contratos de dados legíveis por máquina podem ser integrados a plataformas de dados e ferramentas de imposição. As organizações podem implementar essas soluções para testar se os conjuntos de dados aderem às regras do contrato de dados, permitindo que eles resolvam problemas antes que eles resultem em falhas no pipeline.

Como os contratos de dados são projetados?

Muitos contratos de dados são baseados no Open Data Contract Standard (ODCS). Como o próprio nome sugere, o ODCS é um framework de código aberto para padronizar contratos de dados. O padrão é definido pelo Bitol, um projeto de área de testes de IA e dados da Linux Foundation sob a licença Apache 2.0, e está disponível no GitHub.

Os defensores da iniciativa dizem que ela ajuda a facilitar a inovação, ao permitir que as organizações implementem contratos de dados que suportem sua arquitetura de dados sem o risco de lock-in com fornecedor.

Quais são os benefícios dos contratos de dados?

Os contratos de dados podem lidar com vários pontos problemáticos em pipelines de dados, liberando caminho para as organizações liberarem valor de seus ativos de dados. Os benefícios dos contratos de dados incluem:

Qualidade de dados aprimorada
Maior transparência para dependências

Os contratos de dados podem delinear relações entre tarefas interconectadas, ou dependências. Com o esclarecimento sobre essas dependências, os produtores de dados podem evitar fazer alterações consideráveis.

Melhor gestão de mudanças

Os contratos de dados são controlados por versão, o que significa que novas versões dos contratos são criadas para refletir alterações importantes. Isso pode ajudar os produtores a introduzir modificações, como alterações de esquema, de forma "segura", dando aos consumidores tempo para acomodar essas alterações, reduzindo o risco de quebras repentinas no pipeline.

Colaboração aprimorada

O processo de criação de um contrato de dados facilita a comunicação e o acordo entre produtores e consumidores de dados. Depois de criado, o contrato serve como base para a colaboração Continuar, pois o controle de versões acomoda mudanças nos dados e necessidades.

Maior responsabilidade

Os contratos de dados delineiam as relações entre stakeholders e dados, incluindo quem o possui, quais funções podem acessá-los e como os usuários podem obter suporte. Os contratos ajudam a esclarecer quem é responsável pelo quê, garantindo maior responsabilidade.

Governança de dados

Os contratos de dados podem ser considerados ferramentas de governança de dados porque refletem e impõem metas críticas de governança, como garantir a qualidade, a segurança e a disponibilidade dos dados durante todo o ciclo de vida dos dados.

Escalabilidade mais fácil

Ao apoiar a governança de dados e a colaboração, os contratos de dados podem ajudar organizações e unidades de negócios a compartilhar dados com sucesso, mesmo com o aumento dos volumes sem precedentes.

AI Academy

O gerenciamento de dados é o segredo para a IA generativa?

Explore por que é essencial ter dados de alta qualidade para utilizar a IA generativa com qualidade.

Contratos de dados versus produtos de dados e data mesh

Os contratos de dados são frequentemente mencionados em discussões sobre produtos de dados e data mesh. Isso é por um bom motivo: os contratos de dados desempenham papéis importantes no suporte de ambas as tecnologias.

Vamos começar com os produtos de dados. Um produto de dados é um pacote reutilizável e autônomo que combina dados, metadados, semântica e modelos para dar suporte a diferentes casos de uso de negócios. Os contratos de dados podem servir como "controle de qualidade" para produtos de dados, garantindo que os dados dentro deles sejam consistentes, confiáveis e formatados corretamente.

Perrin descreve a relação entre produtos de dados e contratos de dados em termos familiares: "Os contratos de dados e os produtos de dados são como primos inseparáveis: sempre trabalhando juntos, sempre alinhados e sempre garantindo que as coisas funcionem sem problemas."

A importância dos contratos de dados para os produtos de dados também os torna importantes para a funcionalidade da malha de dados. Um data mesh é uma arquitetura de dados descentralizada que organiza dados por domínio de negócios, como marketing, vendas ou atendimento ao cliente.

Em uma arquitetura de data mesh, os produtores de dados de domínio usam produtos de dados que permitem aos usuários corporativos encontrar e usar dados de diferentes partes de uma organização. Dessa forma, quando os contratos de dados garantem o desempenho dos produtos de dados, eles apoiam o sucesso de uma data mesh como um todo.

Como os contratos de dados são implementados e aplicados?

No livro Data Contracts, os especialistas em dados Chad Sanderson, Mark Freeman e BE Schmidt delineiam o seguinte processo para saber como os contratos de dados funcionam.3

  • Os consumidores de dados identificam suas necessidades de dados para atender aos objetivos de negócios.

  • Os consumidores de dados técnicos traduzem os requisitos de negócios em requisitos técnicos para dados.
  • Os consumidores de dados solicitam contratos de dados dos produtores de dados com base nesses requisitos.

  • Os produtores de dados determinam se as solicitações são viáveis.

  • O contrato de dados é escrito em código, como YAML.

  • Os produtores de dados criam uma solicitação de pull (uma maneira de propor alterações em um repositório) quando precisam alterar um ativo de dados.

  • As verificações baseadas em contrato de dados são realizadas na alteração solicitada como parte de um pipeline de CI/CD para garantir que ela não viole os termos do contrato.

  • Os produtores de dados são alertados se a mudança violar o contrato, acionando medidas para lidar com a violação.

Soluções de contratos de dados

As organizações podem escolher entre uma variedade de ferramentas e plataformas para criar e gerenciar contratos de dados. Entre elas:

  • Projetos de código aberto que serializam e desserializam dados, como Apache Avro e Google Protocol Buffers (protobuf)

  • Qualidade de dados e ferramentas de teste, como Great Expectations e dBT

  • Registros de esquema para verificar a compatibilidade de esquema, como o registro do Confluent

  • Plataformas de governança de dados com funcionalidades como rastreamento de linhagem de dados e catálogos de dados

As necessidades exclusivas de uma organização e os stacks de dados existentes podem ajudar a determinar quais soluções de contratos de dados ou combinação de soluções são melhores para apoiar seus contratos de dados.

Autores

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluções relacionadas
O IBM® watsonx.data Integração

Transforme dados brutos em dados prontos para IA com uma experiência do usuário otimizada para integrar qualquer dado, em qualquer estilo.

Explore o watsonx.data integration
Soluções de integração de dados

Crie pipelines de dados resilientes, de alto desempenho e de baixo custo para suas iniciativas de IA generativa, análise de dados em tempo real, modernização do data warehouse e necessidades operacionais com as soluções de integração de dados da IBM.

Explore as soluções de integração de dados
Serviços de consultoria em dados e IA

Escale a IA com sucesso aplicando a estratégia, os dados, a segurança e a governança certos.

Explore os serviços de consultoria em dados e IA
Dê o próximo passo

Integre dados estruturados e dados não estruturados por meio de uma combinação de estilos, incluindo lote, streaming em tempo real e replicação, para não perder tempo e dinheiro alternando entre ferramentas.

  1. Explore o IBM watsonx.data integration
  2. Explore as soluções de integração de dados
Notas de rodapé