Partilhar via


Contratos de dados

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

  • Que produtos de dados estão a ser consumidos.

  • Que utilizadores estão a consumir os produtos de dados.

  • Que objetivo(s) são os principais utilizadores a consumir produtos de dados específicos.

A distribuição e utilização de produtos de dados tem duas dimensões: preocupações técnicas e preocupações comerciais. As preocupações técnicas incluem o processamento de pipelines de dados e as expectativas de estabilidade dos dados mútuos. As preocupações comerciais incluem contratos de finalidade de partilha de dados, que definem objetivos de utilização, privacidade e objetivos, incluindo quaisquer limitações.

As duas dimensões envolvem funções diferentes. Geralmente, deve contar com proprietários de aplicações ou engenheiros de dados para preocupações técnicas e depender de proprietários de produtos ou representantes empresariais para preocupações empresariais.

Contratos de dados

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

Numa arquitetura maior ou distribuída, pode ser difícil para si supervisionar as alterações. Pode simplificar a sua supervisão ao implementar o controlo de versões e gerir a compatibilidade sempre que tiver um produto de dados popular e amplamente utilizado.

Se as aplicações estiverem associadas, isso indica que existe um elevado grau de interdependência entre as aplicações associadas. As aplicações que acedem ou consomem dados de outras aplicações sofrem sempre quando associadas. Qualquer alteração à estrutura de dados, por exemplo, é susceptível de afetar diretamente outras aplicações que acedem ou consomem esses dados. Em situações em que tem muitas aplicações juntas, é comum encontrar um efeito em cascata em que uma pequena alteração a uma única aplicação afeta muitas outras aplicações. Devido à maior probabilidade de efeitos indesejados após pequenas alterações, muitos arquitetos e engenheiros de software evitam a criação de arquiteturas associadas.

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

  • Tempo de atividade
  • Taxas de erro
  • Disponibilidade
  • Preterição
  • Um mapa de objetivos
  • Números de versão

Pode colocar os metadados que capturam estes detalhes sob controlo de origem, o que permite o acionamento automático de validações e implementações. Para obter mais informações sobre o controlo de origem, veja Controlo de origem no Azure Data Factory.

Os contratos de dados fornecem informações sobre o acoplamento e as dependências entre domínios e aplicações. Um contrato também permite testes contratuais, o que garante que todas as alterações da aplicação e da interface são validadas em relação aos requisitos de dados dos seus consumidores. Pode saber quando é que os fluxos de dados ficam vulneráveis a alterações na origem de dados a montante ao detetar o desvio do esquema. Para obter mais informações, veja Desfasamento do esquema no fluxo de dados de mapeamento.

Os contratos de dados fazem frequentemente parte de arquiteturas de ingestão condicionadas por metadados. Pode armazenar contratos de dados em registos de metadados num metastore gerido centralmente. A partir dessa localização central, os contratos de dados desempenham um papel importante nos dados de várias áreas de ingestão de dados, incluindo:

  • Execução do pipeline

  • Criação de produtos de dados

  • Validação do tipo de dados

  • Esquemas

  • Normas de interoperabilidade

  • Versões do protocolo

  • Regras predefinidas em dados em falta

Os contratos de dados envolvem grandes quantidades de metadados técnicos. Para documentar os seus pipelines de dados e produtos de dados, tem de ter uma descrição clara das suas origens de dados, todas as transformações que os seus dados sofreram e como, em última análise, fornece os dados.

Diagrama a mostrar contratos de dados.

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

Ao implementar um método federado, comece pequeno. Comece com as noções básicas, como o armazenamento de metadados para validação de esquemas, identificadores empresariais e referências a outros conjuntos de dados no repositório de metadados partilhados. Adicione suporte de linhagem de dados para o ajudar a visualizar o movimento de dados. Inicie os seus processos e utilize bibliotecas como Grandes Expectativas para implementar controlos de validação de qualidade de 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 registos, e faça dessas informações parte da base de metadados para obter informações de estabilidade do pipeline de dados. Esta configuração garante que tem um ciclo de comentários entre os seus domínios e o cockpit de gestão central.

À medida que estabiliza todo o movimento de dados, capture os atributos de dados (como tabelas e colunas) que são utilizados pelos consumidores de dados e utilize estas informações para continuar o dimensionamento. Pode incluir estas informações no metastore gerido centralmente. As informações de utilização de dados permitem-lhe detetar alterações interruptivas e identificar os respetivos efeitos nos produtores e consumidores de dados. Se um conjunto de dados de produtos de dados não tiver consumidores, pode permitir que este experimente alterações disruptivas. Utilize o controlo de origem (como o Git) para permitir um processo de handshake entre fornecedores e consumidores dos seus dados.

Contratos de partilha de dados

Os contratos de partilha de dados são uma extensão dos contratos de dados. Os contratos descrevem a utilização, a privacidade e a finalidade dos dados, incluindo quaisquer limitações. Os contratos de partilha de dados são independentes da interface e oferecem informações sobre que dados são utilizados para uma finalidade específica. Também funcionam como entrada para controlos de segurança de dados. Pode utilizar um contrato de partilha de dados para destacar que filtros ou proteções de segurança têm de ser aplicados aos seus dados.

Os contratos de partilha de dados também ajudam a evitar falhas de comunicação sobre a utilização de dados. Os proprietários de domínios devem discutir problemas de partilha de dados e utilização de dados antes de os dados serem partilhados. Ter uma compreensão comum é fundamental para a sua capacidade de regular os dados e a respetiva utilização e garantir que pode entregar valor à sua organização. Assim que todos os proprietários de domínios chegarem a uma compreensão colaborativa, certifique-se de que o documentam num contrato de partilha de dados. Neste contrato, também pode abordar áreas como:

  • Qualidade dos dados funcionais

  • Historização

  • Gestão do ciclo de vida dos dados

  • Distribuição adicional de dados

Aplique classificações e condições como etiquetas de confidencialidade ou condições de filtragem para proteger os seus dados.

O diagrama da secção anterior mostra determinados elementos etiquetados como sidecar do produto de dados. Um sidecar do produto de dados é um componente ou camada para injetar a execução de políticas, como controlos de acesso a dados ou métodos de saída de consumo de dados. É uma abstração de segurança que utiliza contratos de dados para processar a imposição de segurança sobre os seus dados de domínio. Pode criar um sidecar de produto de dados a partir do repositório de contratos de dados como uma lista de controlo de acesso (ACL) ou vista sem servidor, ou pode criar um com um conjunto de dados duplicado que seleciona e filtra para um consumidor específico. De qualquer forma, o objetivo é obter vistas de segurança dos seus contratos de dados de forma totalmente automatizada.

Ligue atributos do contrato de dados e a sua documentação. Certifique-se de que fornece contexto semântico e uma relação com o seu glossário, para que os seus consumidores possam compreender como os requisitos empresariais se traduzem numa implementação real. Se uma relação com termos de negócio for importante para a sua organização, considere implementar políticas como permitir apenas a criação de contratos de dados depois de todos os atributos de produtos de dados estarem ligados a entidades de termos empresariais. Também pode aplicar este tipo de política a alterações contextuais, como ajustes de relação ou definição.

Utilizar contratos de dados

Comece lentamente quando começar a utilizar contratos de dados. Não introduza demasiadas alterações ao mesmo tempo; os contratos de dados requerem uma mudança cultural e os seus utilizadores precisam de tempo para se familiarizarem com os mesmos e compreenderem a importância da propriedade dos dados. Também precisa de encontrar o ponto doce entre poucos e demasiados atributos de metadados nos seus contratos de dados.

Os passos seguintes descrevem o processo de implementação de contratos de dados para a sua organização.

  1. Certifique-se de que os pipelines de dados técnicos estão estáveis. Os casos de utilização não podem chegar à produção se os pipelines que percorrem sofrerem interrupções inesperadas.

  2. Coloque processos simples e pragmáticos à medida que começa a utilizar contratos de partilha. Pode começar por criar um formulário ou modelo simples no Microsoft Forms. Escreva num idioma claro e conciso que os leitores consigam compreender facilmente. O foco desta primeira fase é a mudança cultural e a recolha de requisitos. Certifique-se de que não sobrecomplica os itens; aceitar processos manuais, limitar os seus requisitos de metadados iniciais e iterar até que esses requisitos estejam estáveis.

  3. Assim que tiver os primeiros processos corretamente implementados, comece a substituir os formulários manuais por uma aplicação, base de dados e/ou fila de mensagens baseada na Web. A sua equipa de governação de dados central deve continuar a ser responsável pela supervisão durante esta fase. A granularidade do acesso a dados neste momento é geralmente agregada, concentrando-se em pastas ou ficheiros. Sempre que possível, utilize as APIs REST para aprovisionar automaticamente as suas políticas de acesso a dados ou ACLs.

  4. Coloque os proprietários de dados ou os responsáveis pelos dados responsáveis por um fluxo de trabalho forte para a gestão de aprovações. A sua função de governação de dados central deve agora supervisionar as aprovações apenas de uma função de backseat e rever todos os contratos de dados regularmente. Neste momento, deverá ter um catálogo de dados como o Azure Purview em execução que mostre todos os seus produtos de dados prontos para consumo. Melhore a capacidade de imposição de dados e segurança ao permitir seleções e filtragem detalhadas e considere utilizar técnicas como a máscara de dados dinâmicos para impedir que os seus dados sejam duplicados.

  5. Na fase final do percurso de implementação do contrato de dados, tudo deve ser self-service e totalmente automatizado. O machine learning automatizado deve prever aprovações de dados. Segurança

  6. No final do seu percurso, tudo será self-service e totalmente automatizado. Isto inclui a imposição de segurança automatizada e machine learning para prever aprovações de dados. As vistas seguras, por exemplo, são implementadas automaticamente após a aprovação.

Os contratos de dados são uma adição relativamente nova, mas importante, à arquitetura de malha de dados, proporcionando transparência para a utilização de dados e dependências. Concentre-se na estabilidade técnica e na uniformização à medida que começa a utilizar contratos de dados e, em seguida, utilize um processo aprendido em lições à medida que itera. Crie e automatize lentamente a governação de dados para que não aumente a sobrecarga da sua organização.

Para obter mais informações sobre a observabilidade e os contratos de partilha de dados, veja Guia de monitorização da cloud: Observabilidade.

Como parte da documentação do contrato de dados, também precisa de termos de serviço e contratos de nível de serviço (SLAs). Utilize SLAs para destacar os requisitos de qualidade para a entrega de dados e interfaces, incluindo para tempo de atividade, taxas de erro e disponibilidade. Os SLAs também podem incluir requisitos de preterição, mapa de objetivos e número de versão que tenha de definir.

Passos seguintes