Criar um pipeline de dados usando Azure Data Factory, DevOps e machine learning
Azure DevOps Services
Comece a criar um pipeline de dados com ingestão de dados, transformação de dados e treinamento de modelo.
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 preparo. Em seguida, treine um modelo de machine learning usando os dados transformados. Escreva o modelo no armazenamento de blobs como um arquivo pickle do Python.
Pré-requisitos
Antes de começar, você precisa de:
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Uma organização ativa do Azure DevOps. Inscreva-se no Azure Pipelines.
- A função de Administrador para conexões de serviço no seu projeto do Azure DevOps. Saiba como adicionar a função de Administrador.
- Dados do sample.csv.
- Acesso à solução de pipeline de dados no GitHub.
- DevOps para o Azure Databricks.
Provisionar recursos do Azure
Entre no portal do Azure.
No menu, selecione o botão Cloud Shell. Quando solicitado, selecione a experiência Bash.
Observação
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ê precisará criar um grupo de recursos, uma conta de armazenamento e um compartilhamento de Arquivos do Azure. Essa configuração é usada automaticamente para todas as sessões futuras do Cloud Shell.
Selecionar uma região do Azure
Uma região é um ou mais datacenters do Azure em uma localização geográfica. Leste dos EUA, Oeste dos EUA e Norte da Europa são 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 dos comandos, comece selecionando uma região padrão. Depois que você especificar a região padrão, os comandos posteriores usarão essa região, a menos que você especifique outra.
No Cloud Shell, execute o comando
az account list-locations
a seguir para listar as regiões que estão disponíveis na sua assinatura do Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Na coluna
Name
na saída, escolha uma região perto de você. Por exemplo, escolhaasiapacific
ouwestus2
.Execute
az config
para definir a 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
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
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}"
Crie mais uma variável Bash para armazenar os nomes e a região do 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>'
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
Execute o comando
az group create
a seguir para criar um grupo de recursos usandorgName
.az group create --name $rgName
Execute o comando
az storage account create
a seguir para criar uma conta de Armazenamento de Blobs.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Execute o comando
az storage container create
a seguir para criar dois contêineres,rawdata
eprepareddata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Execute o comando
az keyvault create
a seguir para criar um data cofre de chaves.az keyvault create \ --name $keyVault \ --resource-group $rgName
Crie um data factory 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
- Local: sua localização mais próxima
- Desmarque a seleção para Habilitar Git.
Adicione a Extensão do Azure Data Factory.
az extension add --name datafactory
Execute o comando
az datafactory create
a seguir para criar um data factory.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Copie a ID da assinatura. Seu data factory usará essa ID posteriormente.
- Nome:
Crie um segundo data factory usando a interface do usuário do portal ou a CLI do Azure. Você usará esse data factory para teste.
- Nome:
data-factory-cicd-test
- Versão:
V2
- Grupo de recursos:
data-pipeline-cicd-rg
- Local: sua localização mais próxima
- Desmarque a seleção para Habilitar GIT.
Execute o comando a seguir
az datafactory create
para criar um data factory para teste.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Copie a ID da assinatura. Seu data factory usará essa ID posteriormente.
- Nome:
Adicione um serviço do Azure Databricks:
- Grupo de recursos:
data-pipeline-cicd-rg
- Nome do workspace:
databricks-cicd-ws
- Local: sua localização mais próxima
Adicione a extensão do Azure Databricks se ela ainda não estiver instalada.
az extension add --name databricks
Execute o comando
az databricks workspace create
a seguir para criar o workspace.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Copie a ID da assinatura. O serviço do Databricks usará essa ID posteriormente.
- Grupo de recursos:
Carregar dados no contêiner de armazenamento
- No portal do Azure, abra sua conta de armazenamento no grupo de recursos
data-pipeline-cicd-rg
. - Acesse Serviço de Blob>Contêineres.
- Abra o contêiner de
prepareddata
. - Carregue o arquivo sample.csv.
Configurar o Cofre de Chaves
Você usará 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 do Databricks
- Na portal do Azure, acesse o Databricks e abra seu workspace.
- Na interface do usuário do Azure Databricks, crie e copie um token de acesso pessoal.
Copiar a chave de conta e a cadeia de conexão para sua conta de armazenamento
- Vá até sua conta de armazenamento.
- Abra Chaves de Acesso.
- Copie a primeira chave e a cadeia de conexão.
Salvar valores no Key Vault
Crie três segredos:
- databricks-token:
your-databricks-pat
- StorageKey:
your-storage-key
- StorageConnectString:
your-storage-connection
- databricks-token:
Execute o comando
az keyvault secret set
a seguir para adicionar segredos ao 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
- Entre na organização do Azure DevOps e acesse seu projeto.
- Vá para Repos e importe sua versão bifurcada do repositório GitHub. Para mais informações, confira Importar um repositório Git para seu projeto.
Adicionar uma conexão do serviço do Azure Resource Manager
- Criar uma conexão de serviço do Azure Resource Manager.
- Selecione Entidade de Serviço (automática).
- Escolha o grupo de recursos data-pipeline-cicd-rg.
- Dê à conexão de serviço o nome
azure_rm_connection
. - Selecione Conceder permissão de acesso a todos os pipelines. Você precisará ter a função de Administrador do Service Connections para selecionar essa opção.
Adicionar variáveis de pipeline
Crie um grupo de variáveis chamado
datapipeline-vg
.Adicione a extensão do Azure DevOps se ela ainda não estiver instalada.
az extension add --name azure-devops
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"
Crie um segundo grupo de variáveis chamado
keys-vg
. Esse grupo extrairá variáveis de dados do Key Vault.Selecione Vincular segredos de um Azure Key Vault como variáveis. Para mais informações, confira Vincular segredos de um Azure Key Vault .
Autorizar a assinatura do Azure.
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
- No portal do Azure, vá para Cofre de chaves>Propriedades.
- Copie o Nome DNS e a ID do Recurso.
- No workspace do Azure Databricks, crie um escopo secreto chamado
testscope
.
Adicionar um cluster no Azure Databricks
- No workspace do Azure Databricks, acesse Clusters.
- Selecione Criar Cluster.
- Dê um nome e salve o novo cluster.
- Selecione o novo nome do cluster.
- Na cadeia de caracteres de URL, copie o conteúdo entre
/clusters/
e/configuration
. Por exemplo, na cadeia de caracteresclusters/0306-152107-daft561/configuration
, você copiaria0306-152107-daft561
. - Salve essa cadeia de caracteres para usar mais tarde.
Configurar o repositório de código no Azure Data Factory
- No Azure Data Factory, vá para Criar e monitorar. Para mais informações, confira Criar um data factory.
- Selecione Configurar repositório de código e conecte seu repositório .
- Tipo de repositório: Git do Azure DevOps
- 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: Usar existente.
- 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.
Vincular o Azure Data Factory ao cofre de chaves
- Na interface do usuário do portal do Azure, abra o cofre de chaves.
- Selecione Políticas de acesso.
- Selecione Adicionar Política de Acesso.
- Para Configurar do modelo, selecione Gerenciamento de Chave e Segredos.
- Em Selecionar entidade de segurança, pesquise o nome do data factory de desenvolvimento e adicione-o.
- Selecione Adicionar para adicionar suas políticas de acesso.
- Repita essas etapas para adicionar uma política de acesso ao data factory de teste.
Atualizar o serviço vinculado do cofre de chaves no Azure Data Factory
- Acesse Gerenciar>Serviços Vinculados.
- Atualize o Azure Key Vault para se conectar à sua assinatura.
Atualizar o serviço vinculado de armazenamento no Azure Data Factory
- Acesse Gerenciar>Serviços Vinculados.
- Atualize o valor Armazenamento de Blobs do Azure para se conectar à sua assinatura.
Atualizar o serviço vinculado do Azure Databricks no Azure Data Factory
- Acesse Gerenciar>Serviços Vinculados.
- Atualize o valor do Azure Databricks para se conectar à sua assinatura.
- Para a ID do Cluster Existente, insira o valor do cluster que você salvou anteriormente.
Testar e publicar o data factory
- No Azure Data Factory, vá para Editar.
- Abra o
DataPipeline
. - Selecione Variáveis.
- Verifique se o
storage_account_name
se refere à sua conta de armazenamento no portal do Azure. Atualize o valor padrão, se necessário. Salve suas alterações. - Selecione Validar para verificar
DataPipeline
. - Selecione Publicar para publicar ativos do data factory no branch
adf_publish
do repositório.
Executar o pipeline de CI/CD
Siga estas etapas para executar o pipeline de CI/CD (integração contínua e entrega contínua):
- Vá para a página Pipelines. Em seguida, escolha a ação para criar um novo pipeline.
- Selecione Git do Azure Repos como a localização do código-fonte.
- Quando a lista de repositórios for exibida, selecione o repositório.
- Ao configurar o pipeline, selecione Arquivo YAML do Azure Pipelines existente. Escolha o arquivo YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Execute o pipeline. Se o pipeline não tiver sido executado antes, talvez seja necessário conceder permissão para acessar um recurso durante a execução.
Limpar os recursos
Se você não quiser continuar usando esse aplicativo, exclua o pipeline de dados seguindo estas etapas:
- Exclua o grupo de recursos
data-pipeline-cicd-rg
. - Exclua o projeto do Azure DevOps.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de