Condividi tramite


Eseguire gli endpoint batch da Azure Data Factory

SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

I Big Data necessitano di un servizio che possa orchestrare e rendere operativi i processi per ottimizzare questi enormi archivi di dati non elaborati trasformandoli in informazioni aziendali di utilità pratica. Il servizio cloud gestito Azure Data Factory gestisce questi complessi progetti ibridi di estrazione, trasformazione e caricamento (ETL), di estrazione, caricamento e trasformazione (ELT) e di integrazione dei dati.

Azure Data Factory consente la creazione di pipeline in grado di orchestrare più trasformazioni di dati e gestirle come singola unità. Gli endpoint batch sono un candidato eccellente da usare come passaggio in tale flusso di lavoro di elaborazione.

In questo articolo, viene illustrato come usare gli endpoint batch nelle attività di Azure Data Factory basandosi sull'attività di richiamo Web e sull'API REST.

Suggerimento

Quando si usano pipeline di dati in Fabric, è possibile richiamare direttamente l'endpoint batch usando l'attività di Azure Machine Learning. È consigliabile usare Fabric per l'orchestrazione dei dati quando possibile per sfruttare le funzionalità più recenti. L'attività di Azure Machine Learning in Azure Data Factory può funzionare solo con gli asset di Azure Machine Learning V1. Per ulteriori informazioni, vedere Eseguire modelli di Azure Machine Learning da Fabric usando endpoint batch (anteprima).

Prerequisiti

Autenticare gli endpoint batch

Azure Data Factory può richiamare le API REST degli endpoint batch usando l'attività Richiamo Web. Gli endpoint batch supportano Microsoft Entra ID per l'autorizzazione, quindi la richiesta inviata alle API richiede una corretta gestione dell'autenticazione. Per altre informazioni, vedere Attività Web in Azure Data Factory e Azure Synapse Analytics.

È possibile usare un'entità servizio o un'identità gestita per eseguire l'autenticazione per gli endpoint batch. È consigliabile usare un'identità gestita, in quanto semplifica l'uso dei segreti.

È possibile usare l'identità gestita di Azure Data Factory per comunicare con gli endpoint batch. In questo caso, basta accertarsi che la risorsa di Azure Data Factory sia stata distribuita con un'identità gestita.

  1. Se non si ha una risorsa di Azure Data Factory o è già stata distribuita senza un'identità gestita, seguire questa procedura per crearla: identità gestita assegnata dal sistema.

    Attenzione

    Non è possibile modificare l'identità della risorsa in Azure Data Factory dopo la distribuzione. Se è necessario modificare l'identità di una risorsa dopo averlo creato, è necessario ricreare la risorsa.

  2. Dopo la distribuzione, concedere l'accesso all'identità gestita della risorsa creata nell'area di lavoro di Azure Machine Learning. Vedere Concedere l'accesso. In questo esempio, l'entità servizio richiede:

    • Autorizzazione nell'area di lavoro per la lettura delle distribuzioni batch e l’esecuzione di azioni su tali distribuzioni.
    • Autorizzazioni per lettura/scrittura negli archivi dati.
    • Autorizzazioni per la lettura in qualunque posizione cloud (account di archiviazione) indicata come input di dati.

Informazioni sulla pipeline

In questo esempio, viene creata una pipeline in Azure Data Factory che può richiamare un determinato endpoint batch su alcuni dati. La pipeline comunica con gli endpoint batch di Azure Machine Learning usando REST. Per altre informazioni su come usare l'API REST per gli endpoint batch, vedere Creare processi e dati di input per gli endpoint batch.

La pipeline è simile alla seguente:

Diagramma che mostra la struttura di alto livello della pipeline che si sta creando.

La pipeline contiene le attività seguenti:

  • Esegui endpoint batch: attività Web che usa l'URI dell'endpoint batch per richiamarlo. Passa l'URI dei dati di input in cui sono collocati i dati e il file di output previsto.

  • Attendi processo: attività di ciclo che controlla lo stato del processo creato e ne attende il completamento come Completato o Non riuscito. Questa attività, a sua volta, usa le attività seguenti:

    • Controlla stato: attività Web che esegue una query sullo stato della risorsa del processo restituita come risposta dell'attività Esegui endpoint batch.
    • Attendi: attività di attesa che controlla la frequenza di polling dello stato del processo. Il valore predefinito è 120 (2 minuti).

La pipeline richiede di configurare i parametri seguenti:

Parametro Descrizione Valore di esempio
endpoint_uri URI di assegnazione dei punteggi dell’endpoint https://<endpoint_name>.<region>.inference.ml.azure.com/jobs
poll_interval Numero di secondi di attesa prima del controllo dello stato di completamento del processo. Il valore predefinito è 120. 120
endpoint_input_uri Dati di input dell'endpoint. Sono supportati più tipi di input di dati. Assicurarsi che l'identità gestita usata per eseguire il processo abbia accesso alla posizione sottostante. In alternativa, se si usano archivi dati, accertarsi che siano indicate le credenziali. azureml://datastores/.../paths/.../data/
endpoint_input_type Tipo dei dati di input che viene fornito. Attualmente gli endpoint batch supportano cartelle (UriFolder) e file (UriFile). Il valore predefinito è UriFolder. UriFolder
endpoint_output_uri File di dati di output dell'endpoint. Deve essere un percorso di un file di output in un archivio dati collegato all'area di lavoro di Machine Learning. Non sono supportati altri tipi di URI. È possibile usare l'archivio dati predefinito di Azure Machine Learning, denominato workspaceblobstore. azureml://datastores/workspaceblobstore/paths/batch/predictions.csv

Avviso

Tenere presente che endpoint_output_uri deve essere il percorso di un file che non esiste ancora. In caso contrario, l’esito del processo è negativo con l'errore indicante che il percorso esiste già.

Creare la pipeline

Per creare questa pipeline in un’istanza di Azure Data Factory esistente e richiamare gli endpoint batch, effettuare la procedura seguente:

  1. Accertarsi che l'ambiente di calcolo in cui è in esecuzione l'endpoint batch disponga delle autorizzazioni per il montaggio dei dati di Azure Data Factory come input. L'entità che richiama l'endpoint concede comunque l'accesso.

    In questo caso, si tratta di Azure Data Factory. Tuttavia, l’ambiente di calcolo in cui viene eseguito l'endpoint batch deve disporre dell'autorizzazione per il montaggio dell'account di archiviazione fornito da Azure Data Factory. Per informazioni dettagliate, vedere Accesso ai servizi di archiviazione.

  2. Apri Azure Data Factory Studio. Selezionare l'icona a forma di matita per aprire il riquadro Autore e, in Risorse factory, selezionare il segno più.

  3. Selezionare Pipeline>Importa da modello di pipeline.

  4. Selezionare un file .zip.

    • Per usare le identità gestite, selezionare questo file.
    • Per usare un'entità servizio, selezionare questo file.
  5. Un'anteprima della pipeline viene visualizzata nel portale. Selezionare Usa questo modello.

    La pipeline viene creata automaticamente con il nome Run-BatchEndpoint.

  6. Configurare i parametri della distribuzione batch:


Avviso

Prima di inviare un processo, accertarsi che sia stata configurata una distribuzione predefinita per l'endpoint batch. La pipeline creata richiama l'endpoint. È necessario creare e configurare una distribuzione predefinita.

Suggerimento

Per una migliore riusabilità, usare la pipeline creata come modello e richiamarla dall'interno di altre pipeline di Azure Data Factory usando l'attività Execute Pipeline. In tal caso, non configurare i parametri nella pipeline interna, ma passarli come parametri dalla pipeline esterna, come illustrato nell'immagine seguente:

Screenshot dei parametri della pipeline previsti per la pipeline risultante quando sono richiamati da un'altra pipeline.

La pipeline è pronta per l'uso.

Limiti

Quando si richiamano le distribuzioni batch di Azure Machine Learning, considerare le limitazioni seguenti:

Input dati

  • Come input sono supportati solo gli archivi dati di Azure Machine Learning o gli account Archiviazione di Azure (Archiviazione BLOB di Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2). Se i dati di input si trovano in un'altra origine, usare l'attività Copy di Azure Data Factory prima dell'esecuzione del processo batch per il sink dei dati in un archivio compatibile.
  • I processi degli endpoint batch non esplorano le cartelle annidate. Non possono funzionare con strutture di cartelle annidate. Se i dati vengono distribuiti in più cartelle, è necessario rendere flat la struttura.
  • Accertarsi che lo script assegnazione dei punteggi fornito nella distribuzione possa gestire i dati come si prevede che vengano inseriti nel processo. Se il modello è MLflow, per le limitazioni sui tipi di file supportati, vedere Distribuire modelli MLflow nelle distribuzioni batch.

Output dei dati

  • Sono supportati solo gli archivi dati registrati di Azure Machine Learning. È consigliabile registrare l'account di archiviazione usato da Azure Data Factory come archivio dati in Azure Machine Learning. In questo modo, è possibile eseguire il writeback nello stesso account di archiviazione in cui si sta leggendo.
  • Per gli output sono supportati solo gli account Archiviazione BLOB di Azure. Ad esempio, Azure Data Lake Storage Gen2 non è supportato come output nei processi di distribuzione batch. Se è necessario l’output dei dati in un percorso o sink diverso, usare l'attività Copy di Azure Data Factory dopo l'esecuzione del processo batch.