Partilhar via


Dados do contrato

As responsabilidades são distribuídas entre domínios em uma arquitetura federada, o que pode dificultar a supervisão de dependências e a obtenção de insights sobre o uso de dados. Os contratos de dados podem ajudá-lo a obter informações sobre o uso de dados, pois fornecem informações sobre quem é o proprietário de cada produto de dados. Os contratos de dados ajudam você a definir padrões e gerenciar com confiança seus pipelines de dados. São essenciais para uma gestão robusta dos dados, fornecendo informações sobre:

  • Quais produtos de dados estão sendo consumidos.
  • Quais usuários estão consumindo quais produtos de dados.
  • Qual é a finalidade de levar os usuários a consumir produtos de dados específicos.

A distribuição e o uso de produtos de dados têm duas dimensões: preocupações técnicas e preocupações comerciais. As preocupações técnicas incluem o tratamento de pipeline de dados e expectativas mútuas de estabilidade de dados. As preocupações comerciais incluem acordos de finalidade de compartilhamento de dados, que definem objetivos de uso, privacidade e finalidade, incluindo quaisquer limitações.

As duas dimensões envolvem papéis diferentes. Geralmente, você deve confiar em proprietários de aplicativos ou engenheiros de dados para preocupações técnicas e proprietários de produtos ou representantes de negócios para preocupações comerciais.

Princípios dos contratos de dados

Os contratos de dados são semelhantes aos contratos de serviços ou contratos de entrega de dados.

Em uma arquitetura maior ou distribuída, pode ser difícil supervisionar as alterações. Você pode simplificar sua supervisão implementando o controle de versão e gerenciando a compatibilidade sempre que tiver um produto de dados popular e amplamente utilizado.

Se os aplicativos forem acoplados, isso indica um alto grau de interdependência entre os aplicativos acoplados. Os aplicativos que acessam ou consomem dados de outros aplicativos sempre sofrem quando acoplados. Qualquer alteração na estrutura de dados, por exemplo, provavelmente afetará diretamente outros aplicativos que acessam ou consomem esses dados. Em situações em que você tem muitos aplicativos acoplados, é comum encontrar um efeito em cascata em que uma pequena alteração em um único aplicativo afeta muitos outros aplicativos. Devido ao aumento da probabilidade de efeitos não intencionais após pequenas alterações, muitos arquitetos e engenheiros de software evitam construir arquiteturas acopladas.

Um contrato de dados garante a compatibilidade da interface e inclui termos de serviço e um acordo de nível de serviço (SLA). Os termos de serviço descrevem como os dados podem ser usados, como restringir seu uso apenas ao desenvolvimento, teste ou produção. Os SLAs descrevem a qualidade necessária da entrega de dados e da interface. Os detalhes de qualidade que você pode especificar em um SLA incluem:

  • Tempo de Atividade
  • Taxas de erro
  • Disponibilidade
  • Preterição
  • Um roteiro
  • Números de versão

Você pode colocar os metadados que capturam esses detalhes sob controle do código-fonte, o que permite o acionamento automático de validações e implantações. Para obter mais informações sobre controle do código-fonte, consulte Controle do código-fonte no Azure Data Factory.

Os contratos de dados fornecem informações sobre acoplamento e dependências entre domínios e aplicativos. Um contrato também permite testes de contrato, o que garante que todas as alterações de aplicativo e interface sejam validadas de acordo com os requisitos de dados de seus consumidores. Você pode saber quando seus fluxos de dados se tornam vulneráveis a alterações na fonte de dados upstream detetando desvios de esquema. Para obter mais informações, consulte Desvio de esquema no mapeamento do fluxo de dados.

Os contratos de dados geralmente fazem parte de estruturas de ingestão orientadas por metadados. Você pode armazenar contratos de dados em registros de metadados em um metastore gerenciado centralmente. A partir desse local central, seus contratos de dados desempenham um papel importante em várias áreas de ingestão de dados, incluindo:

  • Execução de pipeline
  • Criação de produtos de dados
  • Validação do tipo de dados
  • Esquemas
  • Normas de interoperabilidade
  • Versões do protocolo
  • Regras por defeito em matéria de dados em falta

Os contratos de dados envolvem grandes quantidades de metadados técnicos. Para documentar seus pipelines de dados e produtos de dados, você deve ter uma descrição clara de suas fontes de dados, todas as transformações pelas quais seus dados passaram e como você finalmente entrega os dados.

Diagrama mostrando contratos de dados.

Em uma arquitetura distribuída, você distribui uma estrutura de pipeline de dados em diferentes domínios, e os domínios estão em conformidade com uma maneira comum de trabalhar. Uma vez que os domínios processam os próprios dados, o controlo e a responsabilidade permanecem com eles, enquanto o quadro e os metadados permanecem sob a governação central.

Ao implementar um método federado, comece pequeno. Comece com noções básicas, como armazenamento de metadados para validação de esquema, identificadores corporativos e referências a outros conjuntos de dados em seu repositório de metadados compartilhados. Adicione suporte à linhagem de dados para ajudá-lo a visualizar a movimentação de dados. Inicialize seus processos e implemente controles para validação da qualidade dos dados técnicos.

Todos os seus controlos devem fazer parte dos seus procedimentos de integração contínua. Capture todas as informações de tempo de execução, incluindo métricas e registros, e torne essas informações parte de sua base de metadados para obter insights de estabilidade do pipeline de dados. Essa configuração garante que você tenha um ciclo de feedback entre seus domínios e seu cockpit de gerenciamento central.

À medida que você estabiliza toda a movimentação de dados, capture quais atributos de dados (como tabelas e colunas) são usados por quais consumidores de dados e use essas informações para continuar o dimensionamento. Você pode incluir essas informações em seu metastore gerenciado centralmente. As informações de uso de dados permitem detetar alterações significativas e identificar seus efeitos sobre os produtores e consumidores de dados. Se um conjunto de dados de produto de dados não tiver consumidores, você poderá permitir que ele sofra alterações perturbadoras. Use o controle do código-fonte (como o Git) para permitir um processo de handshake entre provedores e consumidores de seus dados.

Acordos de partilha de dados

Os acordos de partilha de dados são uma extensão dos contratos de dados. Os acordos descrevem o uso de dados, privacidade e finalidade, incluindo quaisquer limitações. Os acordos de compartilhamento de dados são independentes da interface e oferecem informações sobre quais dados são usados para uma finalidade específica. Eles também funcionam como entrada para controles de segurança de dados. Você pode usar um contrato de compartilhamento de dados para descrever quais filtros ou proteções de segurança devem ser aplicados aos seus dados.

Os contratos de compartilhamento de dados também ajudam a evitar falhas de comunicação sobre o uso de dados. Os proprietários de domínio devem discutir problemas de compartilhamento e uso de dados antes que qualquer dado seja compartilhado. Ter um entendimento comum é fundamental para sua capacidade de regular dados e seu uso e garantir que você possa agregar valor à sua organização. Depois que todos os proprietários de domínio chegarem a um entendimento colaborativo, certifique-se de documentá-lo em um contrato de compartilhamento de dados. Neste contrato, você também pode abordar áreas como:

  • Qualidade funcional dos dados
  • Historização
  • Gerenciamento do ciclo de vida dos dados
  • Maior distribuição dos dados

Aplique classificações e condições como rótulos de sensibilidade ou condições de filtragem para proteger seus dados.

O diagrama da seção anterior mostra certos elementos rotulados como sidecar do produto de dados. Um sidecar de produto de dados é um componente ou camada para injetar a execução de políticas, como controles de acesso a dados ou métodos de saída de consumo de dados. É uma abstração de segurança que usa contratos de dados para lidar com a imposição de segurança sobre seus dados de domínio. Você pode criar um sidecar de produto de dados a partir de seu repositório de contrato de dados como uma lista de controle de acesso (ACL) ou exibição sem servidor, ou pode criar um usando um conjunto de dados duplicado que você seleciona e filtra para um consumidor específico. De qualquer forma, o objetivo é obter visões de segurança de seus contratos de dados de forma totalmente automatizada.

Conecte os atributos do contrato de dados e sua documentação. Certifique-se de fornecer contexto semântico e uma relação com seu glossário para que seus consumidores possam entender como os requisitos de negócios se traduzem em uma implementação real. Se um relacionamento com termos comerciais for importante para sua organização, considere implementar políticas como permitir que contratos de dados sejam estabelecidos somente depois que todos os atributos do produto de dados estiverem vinculados a entidades de termos comerciais. Você também pode aplicar esse tipo de política a alterações contextuais, como ajustes de relacionamento ou definição.

Contratos de utilização de dados

Comece devagar quando começar a usar contratos de dados. Não introduza muitas mudanças ao mesmo tempo; Os contratos de dados exigem uma mudança cultural, e seus usuários precisam de tempo para se familiarizar com eles e entender a importância da propriedade dos dados. Você também precisa encontrar o ponto ideal entre poucos e muitos atributos de metadados em seus contratos de dados.

As etapas a seguir descrevem o processo de implementação de contratos de dados para sua organização:

  1. Certifique-se de que seus pipelines de dados técnicos estejam estáveis. Os casos de uso não podem chegar à produção se os dutos pelos quais passam sofrerem interrupções inesperadas.
  2. Coloque processos simples e pragmáticos em prática à medida que você começa a usar acordos de compartilhamento. Você pode começar criando um formulário ou modelo simples no Microsoft Forms. Escreva numa linguagem clara e concisa que os leitores possam compreender facilmente. O foco desta primeira fase é uma mudança cultural e requisitos de coleta. Certifique-se de não complicar demais as coisas; Aceite processos manuais, limite seus requisitos iniciais de metadados e itere até que esses requisitos sejam estáveis.
  3. Depois de ter seus primeiros processos firmemente implementados, comece a substituir seus formulários manuais por um aplicativo baseado na Web, banco de dados e/ou fila de mensagens. Sua equipe central de governança de dados ainda deve ser responsável pela supervisão durante essa fase. A granularidade do acesso aos dados neste ponto é normalmente de grão grosso, concentrando-se em pastas ou arquivos. Sempre que possível, use APIs REST para provisionar automaticamente suas políticas de acesso a dados ou ACLs.
  4. Coloque proprietários de dados ou administradores de dados no comando de um fluxo de trabalho sólido para gerenciamento de aprovação. Sua função central de governança de dados agora deve supervisionar as aprovações apenas em um papel secundário e revisar regularmente todos os contratos de dados. Neste ponto, você deve ter um catálogo de dados como Microsoft Purview instalado e em execução que mostre todos os seus produtos de dados prontos para consumo. Melhore sua capacidade de aplicação de dados e segurança, permitindo seleções e filtragem refinadas, e considere o uso de técnicas como mascaramento dinâmico de dados para evitar que seus dados sejam duplicados.
  5. Na etapa final da sua jornada de implementação do contrato de dados, tudo deve ser self-service e totalmente automatizado. O aprendizado de máquina automatizado deve prever aprovações de dados. As visualizações seguras, por exemplo, são implantadas automaticamente após a aprovação.

Os contratos de dados são uma adição relativamente nova, mas importante, à arquitetura de malha de dados, fornecendo transparência para o uso e dependências de dados. Concentre-se na estabilidade técnica e na padronização quando começar a usar contratos de dados e, em seguida, use um processo de lições aprendidas enquanto itera. Lentamente, crie e automatize sua governança de dados para não aumentar a sobrecarga da sua organização.

Como parte da documentação do contrato de dados, você também precisa de termos de serviço e contratos de nível de serviço (SLAs). Use SLAs para descrever os requisitos de qualidade para sua entrega de dados e interfaces, incluindo tempo de atividade, taxas de erro e disponibilidade. Os SLAs também podem incluir quaisquer requisitos de descontinuação, roteiro e número de versão que você precise definir.

Próximos passos