Executar pontos de extremidade em lote do Azure Data Factory
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
O Big Data requer um serviço que possa orquestrar e operacionalizar processos para refinar esses enormes repositórios de dados brutos em insights de negócio acionáveis. O serviço de nuvem gerenciado Azure Data Factory cuida desses processos híbridos e complexos de ETL (extração, transformação e carregamento), ELT (extração, carregamento e transformação) e projetos de integração de dados.
O Azure Data Factory permite que você crie pipelines que podem orquestrar várias transformações de dados e gerenciá-las como uma só unidade. Os pontos de extremidade do lote são um excelente candidato para se tornarem uma etapa nesse fluxo de trabalho de processamento.
Neste artigo, saiba como usar os pontos de extremidade em lote nas atividades do Azure Data Factory, contando com a atividade Invocação da Web e a API REST.
Dica
Ao usar pipelines de dados no Fabric, você pode invocar o ponto de extremidade em lote diretamente usando a atividade do Azure Machine Learning. Recomendamos usar o Fabric para orquestração de dados sempre que possível para aproveitar os recursos mais recentes. A atividade do Azure Machine Learning no Azure Data Factory só pode funcionar com ativos do Azure Machine Learning V1. Para obter mais informações, confira Executar modelos do Azure Machine Learning no Fabric usando pontos de extremidade em lote (versão prévia).
Pré-requisitos
Um modelo implantado como um ponto de extremidade em lote. Use o classificador de condição cardíaca criado em Como usar os modelos do MLflow em implantações em lote.
Um recurso do Azure Data Factory. Para criar um data factory, siga as etapas descritas em Início Rápido: Criar um data factory usando o portal do Azure.
Depois de criar seu data factory, navegue até ele no portal do Azure e selecione Iniciar estúdio:
Autenticar em pontos de extremidade em lote
O Azure Data Factory pode invocar as APIs REST de pontos de extremidade em lote usando a atividade de Invocação da Web. Os pontos de extremidade em lote dão suporte ao Microsoft Entra ID para autorização, e a solicitação feita às APIs exige um tratamento de autenticação adequado. Para saber mais, confira Atividade da Web no Azure Data Factory e no Azure Synapse Analytics.
Você pode usar uma entidade de serviço ou uma identidade gerenciada para se autenticar nesses pontos de extremidade em lote. Recomendamos usar uma identidade gerenciada, pois ela simplifica o uso de segredos.
Você pode usar a identidade gerenciada do Azure Data Factory para se comunicar com os pontos de extremidade em lote. Nesse caso, você só precisa verificar se o recurso Azure Data Factory foi implantado com uma identidade gerenciada.
Se você não tiver um recurso do Azure Data Factory ou se ele já tiver sido implantado sem uma identidade gerenciada, siga este procedimento para criá-lo: Identidade gerenciada atribuída pelo sistema.
Cuidado
Não é possível alterar a identidade do recurso no Azure Data Factory após a implantação. Se você precisar alterar a identidade de um recurso depois de criá-lo, será necessário recriar o recurso.
Após a implantação, permita acesso à identidade gerenciada do recurso que você criou para o workspace do Azure Machine Learning. Confira Permitir acesso. Neste exemplo, a entidade de serviço exige:
- Permissão no workspace para ler implantações em lote e executar ações sobre elas.
- Permissões de leitura/gravação em armazenamentos de dados.
- Permissões de leitura em qualquer local de nuvem (conta de armazenamento) indicada como uma entrada de dados.
Sobre o pipeline
Neste exemplo, você criará um pipeline no Azure Data Factory que pode invocar um determinado ponto de extremidade em lote em alguns dados. O pipeline se comunica com os pontos de extremidade em lote do Azure Machine Learning usando a REST. Para obter mais informações sobre como usar a API REST para pontos de extremidade em lote, confira Criar trabalhos e inserir dados para pontos de extremidade em lote.
O pipeline tem a seguinte aparência:
O pipeline contém as seguintes atividades:
Executar ponto de extremidade em lote: uma atividade da Web que usa o URI do ponto de extremidade em lote para invocá-lo. Ele passa o URI de dados de entrada onde os dados estão localizados e o arquivo de saída esperado.
Aguardar o trabalho: é uma atividade de loop que verifica o status do trabalho criado e aguarda sua conclusão, como Concluído ou Com falha. Essa atividade, por sua vez, usa as seguintes atividades:
- Verificar status: uma atividade da Web que consulta o status do recurso de trabalho que foi retornado como uma resposta da atividade Executar ponto de extremidade em lote.
- Aguardar: uma atividade de espera que controla a frequência de sondagem do status do trabalho. Definimos um padrão de 120 minutos (2 minutos).
O pipeline exige que você configure os seguintes parâmetros:
Parâmetro | Descrição | Valor de exemplo |
---|---|---|
endpoint_uri |
O URI de pontuação do ponto de extremidade | https://<endpoint_name>.<region>.inference.ml.azure.com/jobs |
poll_interval |
O número de segundos de espera antes de verificar a conclusão do status do trabalho. Assume o padrão de 120 . |
120 |
endpoint_input_uri |
Os dados de entrada do ponto de extremidade. Há suporte para vários tipos de entrada de dados. Verifique se a identidade gerenciada que você usa para executar o trabalho tem acesso ao local subjacente. Como alternativa, se você usar armazenamentos de dados, verifique se as credenciais estão indicadas neles. | azureml://datastores/.../paths/.../data/ |
endpoint_input_type |
O tipo dos dados de entrada que você está fornecendo. Atualmente, os pontos de extremidade em lote dão suporte a pastas (UriFolder ) e Arquivo (UriFile ). Assume o padrão de UriFolder . |
UriFolder |
endpoint_output_uri |
O arquivo de dados de saída do ponto de extremidade. Deve ser um caminho para um arquivo de saída em um Armazenamento de dados anexado ao workspace do Machine Learning. Não há suporte para nenhum outro tipo de URI. Você pode usar o armazenamento de dados padrão do Azure Machine Learning, chamado workspaceblobstore . |
azureml://datastores/workspaceblobstore/paths/batch/predictions.csv |
Aviso
Lembre-se de que endpoint_output_uri
deve ser o caminho para um arquivo que ainda não existe. Caso contrário, ocorrerá uma falha no trabalho com o erro O caminho já existe.
Criar o pipeline
Para criar esse pipeline no Azure Data Factory existente e invocar pontos de extremidade em lote, siga essas etapas:
Verifique se a computação em que o ponto de extremidade em lote está em execução tem permissões para montar os dados que o Azure Data Factory fornece como entrada. A entidade que invoca o ponto de extremidade ainda permite acesso.
Nesse caso, ela é o Azure Data Factory. No entanto, a computação em que o ponto de extremidade em lote é executado precisa ter permissão para montar a conta de armazenamento que o Azure Data Factory fornece. Consulte Acessar os serviços de armazenamento para obter detalhes.
Abra o Estúdio do Azure Data Factory. Selecione o ícone de lápis para abrir o painel Criar e, em Recursos de Factory, selecione o sinal de adição.
Selecione Pipeline>Importar do modelo de pipeline.
Escolha um arquivo .zip.
- Para usar identidades gerenciadas, selecione este arquivo.
- Para usar uma entidade de serviço, selecione este arquivo.
Uma visualização do pipeline será exibida no portal. Selecione Usar este modelo.
O pipeline será criado para você com o nome Run-BatchEndpoint.
Configure os parâmetros da implantação em lote:
Aviso
Verifique se o ponto de extremidade em lote tem uma implantação padrão configurada antes de enviar um trabalho para ele. O pipeline criado invoca o ponto de extremidade. Uma implantação padrão precisa ser criada e configurada.
Dica
Para obter a melhor reutilização, use o pipeline criado como um modelo e chame-o de dentro de outros pipelines do Azure Data Factory usando a atividade Execute Pipeline. Nesse caso, não configure os parâmetros no pipeline interno, mas transmita-os como parâmetros do pipeline externo, conforme mostrado na seguinte imagem:
Seu pipeline está pronto para ser usado.
Limitações
Ao usar as implantações em lote do Azure Machine Learning, considere as seguintes limitações:
Entradas de dados
- Somente armazenamentos de dados do Azure Machine Learning ou contas de armazenamento do Azure (Armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2) têm suporte como entradas. Se os dados de entrada estiverem em outra fonte, use a atividade Copy do Azure Data Factory antes da execução do trabalho em lote para coletar os dados em um repositório compatível.
- Os trabalhos de ponto de extremidade em lote não exploram as pastas aninhadas. Eles não podem trabalhar com estruturas de pasta aninhadas. Se os dados forem distribuídos em várias pastas, você precisará nivelar a estrutura.
- Verifique se o script de pontuação fornecido na implantação pode lidar com os dados, pois eles devem ser alimentados no trabalho. Se o modelo for o MLflow, para ver as limitações dos tipos de arquivo com suporte, confira Implantar modelos do MLflow em implantações em lote.
Saídas de dados
- Há suporte apenas para armazenamentos de dados registrados do Azure Machine Learning. Recomendamos que você registre a conta de armazenamento que o Azure Data Factory está usando como um armazenamento de dados no Azure Machine Learning. Dessa forma, você pode fazer write-back na mesma conta de armazenamento em que está fazendo a leitura.
- Somente Contas de armazenamento de blobs do Azure têm suporte para saídas. Por exemplo, não há suporte para Azure Data Lake Storage Gen2 como saída em trabalhos de implantação em lote. Se você precisar gerar os dados para uma localização ou um coletor diferente, use a atividade Copy do Azure Data Factory após a execução do trabalho em lotes.