Editar

DataOps para o armazém de dados moderno

Azure Data Factory
Azure Databricks
Azure DevOps
Azure Key Vault
Azure Synapse Analytics

Este artigo descreve como um escritório fictício de planejamento urbano poderia usar essa solução. A solução fornece um pipeline de dados de ponta a ponta que segue o padrão de arquitetura MDW, juntamente com os processos correspondentes de DevOps e DataOps, para avaliar o uso do estacionamento e tomar decisões de negócios mais informadas.

Arquitetura

O diagrama a seguir mostra a arquitetura geral da solução.

Diagrama de arquitetura demonstrando DataOps para o armazém de dados moderno.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

O Azure Data Factory (ADF) orquestra e o Azure Data Lake Storage (ADLS) Gen2 armazena os dados:

  1. A API do serviço Web de estacionamento da cidade da Contoso está disponível para transferir dados dos lugares de estacionamento.

  2. Há um trabalho de cópia do ADF que transfere os dados para o esquema de aterrissagem.

  3. Em seguida, o Azure Databricks limpa e padroniza os dados. Ele pega os dados brutos e os condiciona para que os cientistas de dados possam usá-los.

  4. Se a validação revelar dados incorretos, eles serão despejados no esquema malformado.

    Importante

    As pessoas perguntaram por que os dados não são validados antes de serem armazenados no ADLS. O motivo é que a validação pode introduzir um bug que pode corromper o conjunto de dados. Se você introduzir um bug nesta etapa, poderá corrigi-lo e repetir seu pipeline. Se você despejou os dados incorretos antes de adicioná-los ao ADLS, os dados corrompidos são inúteis porque você não pode reproduzir seu pipeline.

  5. Há uma segunda etapa de transformação do Azure Databricks que converte os dados em um formato que você pode armazenar no data warehouse.

  6. Finalmente, o pipeline serve os dados de duas maneiras diferentes:

    1. O Databricks disponibiliza os dados para o cientista de dados para que ele possa treinar modelos.

    2. O Polybase move os dados do data lake para o Azure Synapse Analytics e o Power BI acessa os dados e os apresenta ao usuário corporativo.

Componentes

A solução utiliza estes componentes:

Detalhes do cenário

Um armazém de dados moderno (MDW) permite-lhe reunir facilmente todos os seus dados em qualquer escala. Não importa se são dados estruturados, não estruturados ou semiestruturados. Você pode obter informações sobre um MDW por meio de painéis analíticos, relatórios operacionais ou análises avançadas para todos os seus usuários.

A configuração de um ambiente MDW para ambientes de desenvolvimento (dev) e produção (prod) é complexa. Automatizar o processo é fundamental. Ajuda a aumentar a produtividade enquanto minimiza o risco de erros.

Este artigo descreve como um escritório fictício de planejamento urbano poderia usar essa solução. A solução fornece um pipeline de dados de ponta a ponta que segue o padrão de arquitetura MDW, juntamente com os processos correspondentes de DevOps e DataOps, para avaliar o uso do estacionamento e tomar decisões de negócios mais informadas.

Requisitos da solução

  • Capacidade de recolher dados de diferentes fontes ou sistemas.

  • Infraestrutura como código: implante novos ambientes de desenvolvimento e preparo (stg) de forma automatizada.

  • Implante alterações de aplicativos em diferentes ambientes de maneira automatizada:

    • Implementar pipelines de Integração Contínua/Entrega Contínua (CI/CD).

    • Use portões de implantação para aprovações manuais.

  • Pipeline como código: certifique-se de que as definições de pipeline de CI/CD estejam sob controle do código-fonte.

  • Realize testes de integração em alterações usando um conjunto de dados de exemplo.

  • Execute pipelines de forma programada.

  • Apoie o desenvolvimento ágil futuro, incluindo a adição de cargas de trabalho de ciência de dados.

  • Suporte para segurança em nível de linha e em nível de objeto:

    • O recurso de segurança está disponível no Banco de dados SQL.

    • Você também pode encontrá-lo no Azure Synapse Analytics, Azure Analysis Services (AAS) e Power BI.

  • Suporte para 10 usuários simultâneos do painel e 20 usuários avançados simultâneos.

  • O pipeline de dados deve realizar a validação de dados e filtrar registros malformados para um armazenamento especificado.

  • Suporte ao monitoramento.

  • Configuração centralizada em um armazenamento seguro como o Azure Key Vault.

Potenciais casos de utilização

Este artigo usa a cidade fictícia de Contoso para descrever o cenário de caso de uso. Na narrativa, a Contoso possui e gerencia sensores de estacionamento para a cidade. Ele também possui as APIs que se conectam e obtêm dados dos sensores. Eles precisam de uma plataforma que colete dados de muitas fontes diferentes. Os dados devem ser validados, limpos e transformados em um esquema conhecido. Os planejadores de cidades da Contoso podem explorar e avaliar dados de relatório sobre o uso de estacionamento com ferramentas de visualização de dados, como o Power BI, para determinar se precisam de mais estacionamento ou recursos relacionados.

Disponibilidade de estacionamento na rua

Considerações

A lista a seguir resume os principais aprendizados e práticas recomendadas demonstrados por esta solução:

Nota

Cada item na lista abaixo tem links para a seção Key Learnings relacionada nos documentos para o exemplo de solução de sensor de estacionamento no GitHub.

Implementar este cenário

A lista a seguir contém as etapas de alto nível necessárias para configurar a solução de sensores de estacionamento com os pipelines de construção e liberação correspondentes. Você pode encontrar etapas de configuração detalhadas e pré-requisitos neste repositório de Exemplos do Azure.

Configuração e implantação

  1. Configuração inicial: instale todos os pré-requisitos, importe o repositório GitHub de Exemplos do Azure para seu próprio repositório e defina as variáveis de ambiente necessárias.

  2. Implantar recursos do Azure: a solução vem com um script de implantação automatizado. Ele implanta todos os recursos necessários do Azure e as entidades de serviço do Microsoft Entra por ambiente. O script também implanta Pipelines do Azure, grupos de variáveis e conexões de serviço.

  3. Configurar a integração do git no dev Data Factory: Configure a integração do git para trabalhar com o repositório GitHub importado.

  4. Realize uma compilação e liberação iniciais: crie uma alteração de exemplo no Data Factory, como habilitar um gatilho de agendamento e, em seguida, observe a alteração ser implantada automaticamente em todos os ambientes.

Recursos implantados

Se a implantação for bem-sucedida, deve haver três grupos de recursos no Azure representando três ambientes: dev, stg e prod. Também deve haver pipelines de compilação e lançamento de ponta a ponta no Azure DevOps que possam implantar automaticamente as alterações nesses três ambientes.

Para obter uma lista detalhada de todos os recursos, consulte a seção Recursos implantados do Leiame de demonstração do DataOps - Parking Sensor.

Integração e entrega contínuas

O diagrama abaixo demonstra o processo e a sequência de CI/CD para os pipelines de compilação e lançamento.

Diagrama que mostra o processo e a sequência para compilação e lançamento.

Transfira um ficheiro do Visio desta arquitetura.

  1. Os desenvolvedores desenvolvem em seus próprios ambientes de sandbox dentro do grupo de recursos de desenvolvimento e confirmam alterações em suas próprias ramificações git de curta duração. Por exemplo, <developer_name>/<branch_name>.

  2. Quando as alterações são concluídas, os desenvolvedores enviam uma solicitação pull (PR) para a ramificação principal para revisão. Isso inicia automaticamente o pipeline de validação de RP, que executa os testes de unidade, o forro e as compilações do DACPAC (pacote de aplicativos da camada de dados).

  3. Após a conclusão da validação de RP, o commit to main acionará um pipeline de construção que publica todos os artefatos de construção necessários.

  4. A conclusão de um pipeline de construção bem-sucedido desencadeará o primeiro estágio do pipeline de liberação. Isso implanta os artefatos de compilação de publicação no ambiente de desenvolvimento, exceto para o ADF.

    Os desenvolvedores publicam manualmente no ADF de desenvolvimento a partir da ramificação de colaboração (principal). A publicação manual atualiza os modelos do Azure Resource Manager (ARM) na adf_publish ramificação.

  5. A conclusão bem-sucedida da primeira etapa aciona uma porta de aprovação manual.

    Na aprovação, o pipeline de liberação continua com o segundo estágio, implantando alterações no ambiente stg.

  6. Execute testes de integração para testar alterações no ambiente stg.

  7. Após a conclusão bem-sucedida do segundo estágio, o pipeline aciona uma segunda porta de aprovação manual.

    Na aprovação, o pipeline de liberação continua com o terceiro estágio, implantando alterações no ambiente prod.

Para obter mais informações, leia a seção Pipeline de compilação e liberação do README.

Testar

A solução inclui suporte para testes de unidade e testes de integração. Ele usa pytest-adf e o Nutter Testing Framework. Para obter mais informações, consulte a seção Teste do LEIA-ME.

Observabilidade e monitorização

A solução suporta observabilidade e monitoramento para Databricks e Data Factory. Para obter mais informações, consulte a seção Observabilidade/Monitoramento do LEIA-ME.

Próximos passos

Se você quiser implantar a solução, siga as etapas na seção Como usar o exemplo do Leiame de demonstração do DataOps - Parking Sensor.

Exemplos de código de solução no GitHub

Observabilidade/monitorização

Azure Databricks

Data Factory

Synapse Analytics

Armazenamento do Azure

Resiliência e recuperação após desastre

Azure Databricks

Data Factory

Synapse Analytics

Armazenamento do Azure

Instruções detalhadas

Para obter um passo a passo detalhado da solução e dos principais conceitos, assista à seguinte gravação de vídeo: DataDevOps para o Data Warehouse Moderno no Microsoft Azure