Partilhar via


Criar um pipeline de dados usando o Azure Data Factory, DevOps e aprendizado de máquina

Serviços de DevOps do Azure

Comece a criar um pipeline de dados com ingestão de dados, transformação de dados e treinamento de modelos.

Saiba como capturar dados de um arquivo CSV (valores separados por vírgula) e salvar os dados no Armazenamento de Blobs do Azure. Transforme os dados e salve-os em uma área de preparação. Em seguida, treine um modelo de aprendizado de máquina usando os dados transformados. Escreva o modelo para o armazenamento de blob como um arquivo de pickle do Python.

Pré-requisitos

Antes de começar, você precisa:

Provisionar recursos do Azure

  1. Inicie sessão no portal do Azure.

  2. No menu, selecione o botão Cloud Shell . Quando lhe for pedido, selecione a experiência Bash.

    Captura de tela mostrando onde selecionar o Cloud Shell no menu.

    Nota

    Você precisará de um recurso de Armazenamento do Azure para persistir todos os arquivos criados no Azure Cloud Shell. Ao abrir o Cloud Shell pela primeira vez, você será solicitado a criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de Arquivos do Azure. Essa configuração é usada automaticamente para todas as futuras sessões do Cloud Shell.

Selecione uma região do Azure

Uma região é um ou mais datacenters do Azure dentro de uma localização geográfica. E.U.A. Leste, E.U.A. Oeste e Europa do Norte são alguns exemplos de regiões. Cada recurso do Azure, incluindo uma instância do Serviço de Aplicativo, recebe uma região.

Para facilitar a execução de comandos, comece selecionando uma região padrão. Depois de especificar a região padrão, os comandos posteriores usam essa região, a menos que você especifique uma região diferente.

  1. No Cloud Shell, execute o seguinte az account list-locations comando para listar as regiões disponíveis na sua assinatura do Azure.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Na coluna Name na saída, escolha uma região que esteja próxima de si. Por exemplo, escolha asiapacific ou westus2.

  3. Execute az config para definir sua região padrão. No exemplo a seguir, substitua <REGION> pelo nome da região escolhida.

    az config set defaults.location=<REGION>
    

    O exemplo a seguir define westus2 como a região padrão.

    az config set defaults.location=westus2
    

Criar variáveis Bash

  1. No Cloud Shell, gere um número aleatório. Você usará esse número para criar nomes globalmente exclusivos para determinados serviços na próxima etapa.

    resourceSuffix=$RANDOM
    
  2. Crie nomes globalmente exclusivos para sua conta de armazenamento e cofre de chaves. Os comandos a seguir usam aspas duplas, que instruem Bash a interpolar as variáveis usando a sintaxe embutida.

    storageName="datacicd${resourceSuffix}"
    keyVault="keyvault${resourceSuffix}"
    
  3. Crie mais uma variável Bash para armazenar os nomes e a região do seu grupo de recursos. No exemplo a seguir, substitua <REGION> pela região que você escolheu para a região padrão.

    rgName='data-pipeline-cicd-rg'
    region='<REGION>'
    
  4. Crie nomes de variáveis para suas instâncias do Azure Data Factory e do Azure Databricks.

    datafactorydev='data-factory-cicd-dev'
    datafactorytest='data-factory-cicd-test'
    databricksname='databricks-cicd-ws'
    

Criar recursos do Azure

  1. Execute o seguinte az group create comando para criar um grupo de recursos usando rgName.

    az group create --name $rgName
    
  2. Execute o seguinte az storage account create comando para criar uma nova conta de armazenamento.

    az storage account create \
        --name $storageName \
        --resource-group $rgName \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. Execute o seguinte az storage container create comando para criar dois contêineres rawdata e prepareddata.

    az storage container create -n rawdata --account-name $storageName 
    az storage container create -n prepareddata --account-name $storageName 
    
  4. Execute o seguinte az keyvault create comando para criar um novo cofre de chaves.

    az keyvault create \
        --name $keyVault \
        --resource-group $rgName
    
  5. Crie uma nova fábrica de dados usando a interface do usuário do portal ou a CLI do Azure:

    • Nome: data-factory-cicd-dev
    • Versão: V2
    • Grupo de recursos: data-pipeline-cicd-rg
    • Localização: A sua localização mais próxima
    • Desmarque a seleção para Ativar Git.
    1. Adicione a extensão Azure Data Factory.

      az extension add --name datafactory
      
    2. Execute o seguinte az datafactory create comando para criar um novo data factory.

       az datafactory create \
           --name data-factory-cicd-dev \
           --resource-group $rgName
      
    3. Copie o ID de subscrição. Sua fábrica de dados usa essa ID mais tarde.

  6. Crie uma segunda fábrica de dados usando a interface do usuário do portal ou a CLI do Azure. Você usa essa fábrica de dados para testes.

    • Nome: data-factory-cicd-test
    • Versão: V2
    • Grupo de recursos: data-pipeline-cicd-rg
    • Localização: A sua localização mais próxima
    • Desmarque a seleção para Ativar GIT.
    1. Execute o seguinte az datafactory create comando para criar um novo data factory para teste.

       az datafactory create \
           --name data-factory-cicd-test \
           --resource-group $rgName
      
    2. Copie o ID de subscrição. Sua fábrica de dados usa essa ID mais tarde.

  7. Adicione um novo serviço Azure Databricks:

    • Grupo de recursos: data-pipeline-cicd-rg
    • Nome do espaço de trabalho: databricks-cicd-ws
    • Localização: A sua localização mais próxima
    1. Adicione a extensão Azure Databricks se ainda não estiver instalada.

       az extension add --name databricks
      
    2. Execute o seguinte az databricks workspace create comando para criar um novo espaço de trabalho.

      az databricks workspace create \
          --resource-group $rgName \
          --name databricks-cicd-ws  \
          --location eastus2  \
          --sku trial
      
    3. Copie o ID de subscrição. Seu serviço Databricks usa essa ID mais tarde.

Carregue dados para o seu recipiente de armazenamento

  1. No portal do Azure, abra sua conta de armazenamento no data-pipeline-cicd-rg grupo de recursos.
  2. Vá para Blob Service>Contêineres.
  3. Abra o prepareddata recipiente.
  4. Carregue o ficheiro sample.csv .

Configurar o Cofre de Chaves

Você usa o Azure Key Vault para armazenar todas as informações de conexão para seus serviços do Azure.

Criar um token de acesso pessoal Databricks

  1. No portal do Azure, vá para Databricks e abra seu espaço de trabalho.
  2. Na interface do usuário do Azure Databricks, crie e copie um token de acesso pessoal.

Copie a chave da conta e a cadeia de conexão da sua conta de armazenamento

  1. Aceda à conta de armazenamento.
  2. Abra teclas de acesso.
  3. Copie a primeira chave e a cadeia de conexão.

Guardar valores no Cofre da Chave

  1. Crie três segredos:

    • databricks-token: your-databricks-pat
    • Chave de armazenamento: your-storage-key
    • StorageConnectString: your-storage-connection
  2. Execute o seguinte az keyvault secret set comando para adicionar segredos ao seu cofre de chaves.

    az keyvault secret set --vault-name "$keyVault" --name "databricks-token" --value "your-databricks-pat"
    az keyvault secret set --vault-name "$keyVault" --name "StorageKey" --value "your-storage-key"
    az keyvault secret set --vault-name "$keyVault" --name "StorageConnectString" --value "your-storage-connection"
    

Importar a solução de pipeline de dados

  1. Entre em sua organização do Azure DevOps e vá para seu projeto.
  2. Vá para Repos e importe sua versão bifurcada do repositório GitHub. Para obter mais informações, consulte Importar um repositório Git para seu projeto.

Adicionar uma conexão de serviço do Azure Resource Manager

  1. Crie uma conexão de serviço do Azure Resource Manager.
  2. Selecione Registro de aplicativo (automático) e Federação de identidade de carga de trabalho.
  3. Selecione a sua subscrição.
  4. Escolha o grupo de recursos data-pipeline-cicd-rg .
  5. Nomeie a conexão de serviço azure_rm_connection.
  6. Selecione Conceder permissão de acesso a todos os pipelines. Você precisa ter a função de Administrador de Conexões de Serviço para selecionar essa opção.

Adicionar variáveis de pipeline

  1. Crie um novo grupo de variáveis chamado datapipeline-vg.

  2. Adicione a extensão Azure DevOps se ainda não estiver instalada.

    az extension add --name azure-devops 
    
  3. Entre na sua organização do Azure DevOps.

    az devops login --org https://dev.azure.com/<yourorganizationname>
    
    az pipelines variable-group create --name datapipeline-vg -p <yourazuredevopsprojectname> --variables \
                                        "LOCATION=$region" \
                                        "RESOURCE_GROUP=$rgName" \
                                        "DATA_FACTORY_NAME=$datafactorydev" \
                                        "DATA_FACTORY_DEV_NAME=$datafactorydev" \
                                        "DATA_FACTORY_TEST_NAME=$datafactorytest" \
                                        "ADF_PIPELINE_NAME=DataPipeline" \
                                        "DATABRICKS_NAME=$databricksname" \
                                        "AZURE_RM_CONNECTION=azure_rm_connection" \
                                        "DATABRICKS_URL=<URL copied from Databricks in Azure portal>" \
                                        "STORAGE_ACCOUNT_NAME=$storageName" \
                                        "STORAGE_CONTAINER_NAME=rawdata"
    
  4. Crie um segundo grupo de variáveis chamado keys-vg. Este grupo extrai variáveis de dados do Key Vault.

  5. Selecione Vincular segredos de um cofre de chaves do Azure como variáveis. Para obter mais informações, consulte Vincular um grupo de variáveis a segredos no Cofre de Chaves do Azure.

  6. Autorize a assinatura do Azure.

  7. Escolha todos os segredos disponíveis para adicionar como variáveis (databricks-token,StorageConnectString,StorageKey).

Configurar o Azure Databricks e o Azure Data Factory

Siga as etapas nas próximas seções para configurar o Azure Databricks e o Azure Data Factory.

Criar testscope no Azure Databricks

  1. No portal do Azure, vá para Cofre de chaves>Propriedades.
  2. Copie o nome DNS e o ID do recurso.
  3. Em seu espaço de trabalho do Azure Databricks, crie um escopo secreto chamado testscope.

Adicionar um novo cluster no Azure Databricks

  1. No espaço de trabalho do Azure Databricks, vá para Clusters.
  2. Selecione Create Cluster (Criar Cluster).
  3. Nomeie e salve seu novo cluster.
  4. Selecione o novo nome do cluster.
  5. Na cadeia de caracteres de URL, copie o conteúdo entre /clusters/ e /configuration. Por exemplo, na cadeia de caracteres clusters/0306-152107-daft561/configuration, você copiaria 0306-152107-daft561.
  6. Salve essa cadeia de caracteres para usar mais tarde.

Configurar seu repositório de código no Azure Data Factory

  1. No Azure Data Factory, vá para Autor e Monitor. Para obter mais informações, consulte Criar uma fábrica de dados.
  2. Selecione Configurar repositório de código e, em seguida, conecte seu repositório.
    • Tipo de repositório: Azure DevOps Git
    • Organização do Azure DevOps: sua conta ativa
    • Nome do projeto: Seu projeto de pipeline de dados do Azure DevOps
    • Nome do repositório Git: Use existing.
      • Selecione a ramificação principal para colaboração.
      • Defina /azure-data-pipeline/factorydata como a pasta raiz.
    • Ramificação para a qual importar recurso: Selecione Usar existente e principal.
  1. Na interface do usuário do portal do Azure, abra o cofre de chaves.
  2. Selecione Políticas de acesso.
  3. Selecione Adicionar Política de Acesso.
  4. Para Configurar a partir do modelo, selecione Key & Secret Management.
  5. Em Selecionar principal, pesquise pelo nome da sua fábrica de dados de desenvolvimento e adicione-o.
  6. Selecione Adicionar para adicionar suas políticas de acesso.
  7. Repita estas etapas para adicionar uma política de acesso para o data factory de teste.

Atualizar o serviço vinculado do cofre de chaves no Azure Data Factory

  1. Vá para Gerenciar>serviços vinculados.
  2. Atualize o cofre de chaves do Azure para se conectar à sua assinatura.

Atualizar o serviço vinculado de armazenamento no Azure Data Factory

  1. Vá para Gerenciar>serviços vinculados.
  2. Atualize o valor do Armazenamento de Blobs do Azure para se conectar à sua assinatura.

Atualizar o serviço vinculado do Azure Databricks no Azure Data Factory

  1. Vá para Gerenciar>serviços vinculados.
  2. Atualize o valor do Azure Databricks para se conectar à sua assinatura.
  3. Para o ID de Cluster Existente, insira o valor do cluster que guardou anteriormente.

Testar e publicar a fábrica de dados

  1. No Azure Data Factory, vá para Editar.
  2. Abrir DataPipeline.
  3. Selecione Variáveis.
  4. Verifique se o storage_account_name se refere à sua conta de armazenamento no portal do Azure. Atualize o valor padrão, se necessário. Guardar as suas alterações.
  5. Selecione Validar para verificar DataPipeline.
  6. Selecione Publicar para publicar ativos da fábrica de dados na adf_publish ramificação do seu repositório.

Execute a sequência de CI/CD

Siga estas etapas para executar o pipeline de integração contínua e entrega contínua (CI/CD):

  1. Vá para a página Pipelines . Em seguida, escolha a ação para criar um novo pipeline.
  2. Selecione Azure Repos Git como o local do seu código-fonte.
  3. Quando a lista de repositórios aparecer, selecione seu repositório.
  4. Ao configurar o seu pipeline, selecione Arquivo YAML Existente do Azure Pipelines. Escolha o arquivo YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
  5. Executar o pipeline. Ao executar seu pipeline pela primeira vez, talvez seja necessário dar permissão para acessar um recurso durante a execução.

Limpar recursos

Se você não vai continuar a usar este aplicativo, exclua seu pipeline de dados seguindo estas etapas:

  1. Exclua o data-pipeline-cicd-rg grupo de recursos.
  2. Exclua seu projeto de DevOps do Azure.

Próximos passos