Ausführen von Batch-Endpunkten vom Azure Data Factory

GILT FÜR:Azure CLI ml-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)

Big Data erfordert einen Dienst, der Prozesse koordinieren und operationalisieren kann, um diese enormen Rohdatenspeicher in umsetzbare Geschäftseinblicke zu verfeinern. Der Azure Data Factory verwaltete Cloud-Dienst übernimmt diese komplexen hybriden Extract-Transform-Load (ETL), Extract-Load-Transform (ELT) und Datenintegrationsprojekte.

Mit Azure Data Factory können Sie Pipelines erstellen, die mehrere Datentransformationen orchestrieren und als einzelne Einheit verwalten. Batch-Endpunkte sind ein hervorragender Kandidat, als Schritt in einem solchen Verarbeitungsworkflow zu dienen.

In diesem Artikel erfahren Sie, wie Sie Batchendpunkte in Azure Data Factory-Aktivitäten verwenden, indem Sie sich auf die Web invoke-Aktivität und die REST-API verlassen.

Tipp

Wenn Sie in Fabric Datenpipelines verwenden, können Sie den Batch-Endpunkt direkt mithilfe der Azure Machine Learning-Aktivität aufrufen. Verwenden Sie Fabric für die Daten-Orchestrierung, wenn möglich, um die neuesten Funktionen nutzen zu können. Die Azure Machine Learning-Aktivität in Azure Data Factory kann nur mit Ressourcen aus Azure Machine Learning V1 arbeiten. Weitere Informationen finden Sie unter Ausführen von Azure Machine Learning-Modellen aus Fabric mithilfe von Batchendpunkten (Vorschau).

Voraussetzungen

  • Ein Modell, das als Batch-Endpunkt bereitgestellt wurde. Verwenden Sie den unter Verwendung von MLflow-Modellen erstellten Herzzustandsklassifizierer in Batchbereitstellungen.

  • Eine Azure Data Factory-Ressource. Führen Sie zum Erstellen einer Datenfactory die Schritte in der Schnellstartanleitung aus: Erstellen einer Datenfactory mithilfe des Azure-Portals.

  • Nachdem Sie Ihre Data Factory erstellt haben, suchen Sie sie im Azure-Portal und wählen Sie Studio starten:

    Screenshot der Startseite für die Azure Data Factory, gekennzeichnet mit Open Azure Data Factory Studio und Launch studio hervorgehoben.

Authentifizierung gegenüber Batch-Endpunkten

Azure Data Factory kann die REST-APIs von Batchendpunkten mithilfe der Web Invoke-Aktivität aufrufen. Batch-Endpunkte unterstützen Microsoft Entra ID für die Autorisierung, und die Anfrage an die APIs erfordert eine ordnungsgemäße Authentifizierungsbehandlung. Weitere Informationen finden Sie unter Webaktivitäten in Azure Data Factory und Azure Synapse Analytics.

Sie können einen Service Principal oder eine verwaltete Identität verwenden, um sich bei Batch-Endpunkten zu authentifizieren. Verwenden Sie eine verwaltete Identität, da sie die Verwendung geheimer Schlüssel vereinfacht.

Sie können die verwaltete Identität von Azure Data Factory verwenden, um mit Batchendpunkten zu kommunizieren. In diesem Fall müssen Sie nur sicherstellen, dass Sie Ihre Azure Data Factory-Ressource mit einer verwalteten Identität bereitgestellt haben.

  1. Wenn Sie über keine Azure Data Factory-Ressource verfügen oder sie bereits ohne verwaltete Identität bereitgestellt haben, führen Sie dieses Verfahren aus, um sie zu erstellen: Vom System zugewiesene verwaltete Identität.

    Vorsicht

    Sie können die Ressourcenidentität nach der Bereitstellung in Azure Data Factory nicht mehr ändern. Wenn Sie die Identität einer Ressource ändern müssen, müssen Sie die Ressource neu erstellen.

  2. Gewähren Sie nach der Bereitstellung Zugriff auf die verwaltete Identität der Ressource, die Sie für Ihren Azure Machine Learning-Arbeitsbereich erstellt haben. Siehe Zugriff gewähren. In diesem Beispiel erfordert der Dienstprinzipal Folgendes:

    • Die Berechtigung im Arbeitsbereich, Batchbereitstellungen zu lesen und Aktionen dafür auszuführen.
    • Berechtigungen zum Lesen und Schreiben in Datenspeichern.
    • Berechtigungen zum Lesen an einem beliebigen Cloudspeicherort (Speicherkonto), der als Dateneingabe angegeben ist.

Informationen zur Pipeline

In diesem Beispiel erstellen Sie eine Pipeline in Azure Data Factory, die einen bestimmten Batchendpunkt über einige Daten aufrufen kann. Die Pipeline kommuniziert mit Azure Machine Learning-Batchendpunkten mithilfe von REST. Weitere Informationen zur Verwendung der REST-API von Batchendpunkten finden Sie unter Erstellen von Aufträgen und Eingabedaten für Batchendpunkte.

Die Pipeline sieht wie folgt aus:

Diagramm, das die allgemeine Struktur der pipeline zeigt, die Sie erstellen.

Die Pipeline enthält die folgenden Aktivitäten:

  • Batch-Endpunkt ausführen: Eine Webaktivität, die den Batchendpunkt-URI verwendet, um diesen aufzurufen. Er übergibt den Eingabedaten-URI, in dem sich die Daten befinden, und die erwartete Ausgabedatei.

  • Auf Auftrag warten: Es ist eine Schleifenaktivität, die den Status des erstellten Auftrags überprüft und auf den Abschluss wartet, entweder als abgeschlossen oder fehlgeschlagen. Diese Aktivität verwendet die folgenden Aktivitäten:

    • Status überprüfen: Eine Webaktivität, die den Status der Auftragsressource abfragt, die als Antwort auf die Aktivität Run Batch-Endpoint zurückgegeben wurde.
    • Wait: Eine Warteaktivität, die die Abfragehäufigkeit des Status des Jobs steuert. Er hat einen Standardwert von 120 (2 Minuten).

Sie müssen die folgenden Parameter für die Pipeline konfigurieren:

Parameter Beschreibung Beispielwert
endpoint_uri Der Endpunktbewertungs-URI https://<endpoint_name>.<region>.inference.ml.azure.com/jobs
poll_interval Die Anzahl von Sekunden, die abgewartet werden soll, bevor der Status des Auftrags auf seinen Abschluss überprüft wird. Standardmäßig auf 120. 120
endpoint_input_uri Die Eingabedaten des Endpunkts. Es werden mehrere Datentypen unterstützt. Stellen Sie sicher, dass die verwaltete Identität, die Sie zum Ausführen des Auftrags verwenden, Zugriff auf den zugrunde liegenden Speicherort hat. Wenn Sie Datenspeicher verwenden, stellen Sie alternativ sicher, dass die Anmeldeinformationen dort angegeben sind. azureml://datastores/.../paths/.../data/
endpoint_input_type Der Typ der von Ihnen bereitgestellten Eingabedaten. Derzeit unterstützen Batchendpunkte Ordner (UriFolder) und Dateien (UriFile). Standardmäßig auf UriFolder. UriFolder
endpoint_output_uri Die Ausgabedatendatei des Endpunkts. Es muss ein Pfad zu einer Ausgabedatei in einem Datenspeicher sein, der an den Machine Learning-Arbeitsbereich angefügt ist. Es wird kein anderer URIstyp unterstützt. Sie können den standardmäßigen Azure Machine Learning-Datenspeicher mit dem Namen workspaceblobstoreverwenden. azureml://datastores/workspaceblobstore/paths/batch/predictions.csv

Warnung

Denken Sie daran, dass endpoint_output_uri der Pfad zu einer Datei sein sollte, die noch nicht vorhanden ist. Andernfalls schlägt der Auftrag fehl mit dem Fehler der Pfad existiert bereits.

Erstellen der Pipeline

Führen Sie die folgenden Schritte aus, um diese Pipeline in Ihrer vorhandenen Azure Data Factory zu erstellen und Batchendpunkte aufzurufen:

  1. Stellen Sie sicher, dass die Rechenressource, auf der der Batchendpunkt ausgeführt wird, die Berechtigung hat, die Daten von Azure Data Factory als Eingabe einzubinden. Die Entität, die den Endpunkt aufruft, gewährt weiterhin Zugriff.

    In diesem Fall ist Azure Data Factory die Entität, die den Endpunkt aufruft. Der Rechner, auf dem der Batch-Endpunkt ausgeführt wird, benötigt jedoch die Berechtigung, das von Ihrer Azure Data Factory bereitgestellte Speicherkonto einzubinden. Weitere Informationen finden Sie unter Zugreifen auf Speicherdienste.

  2. Öffnen Sie Azure Data Factory Studio. Wählen Sie das Stiftsymbol aus, um den Bereich "Autor " zu öffnen, und wählen Sie unter "Factoryressourcen" das Pluszeichen aus.

  3. Wählen Sie Pipeline>Import aus Pipelinevorlage aus.

  4. Laden Sie die Pipelinevorlage .zip Datei auf Ihren lokalen Computer herunter, und wählen Sie sie dann im Importdialogfeld aus:

    • So verwenden Sie verwaltete Identitäten: https://azuremlexampledata.blob.core.windows.net/data/templates/batch-inference/Run-BatchEndpoint-MI.zip.
    • Verwenden eines Dienstprinzipals https://azuremlexampledata.blob.core.windows.net/data/templates/batch-inference/Run-BatchEndpoint-SP.zip.
  5. Eine Vorschau der Pipeline wird im Portal angezeigt. Wählen Sie "Diese Vorlage verwenden" aus.

    Die Pipeline wird für Sie erstellt und erhält den Namen Run-BatchEndpoint.

  6. Konfigurieren Sie die Parameter der Batchbereitstellung:


Warnung

Stellen Sie sicher, dass für Ihren Batch-Endpunkt eine Standardbereitstellung konfiguriert ist, bevor Sie einen Job an ihn senden. Die erstellte Pipeline ruft den Endpunkt auf. Sie müssen eine standardmäßige Bereitstellung erstellen und konfigurieren.

Tipp

Verwenden Sie die erstellte Pipeline als Vorlage und rufen Sie sie mithilfe der Aktivität 'Pipeline ausführen' aus anderen Azure Data Factory-Pipelines auf. Konfigurieren Sie in diesem Fall nicht die Parameter in der inneren Pipeline, sondern übergeben Sie sie als Parameter aus der äußeren Pipeline, wie in der folgenden Abbildung dargestellt:

Screenshot der Pipeline-Parameter, die für die resultierende Pipeline erwartet werden, wenn diese von einer anderen Pipeline aufgerufen wird.

Ihre Pipeline ist einsatzbereit.

Einschränkungen

Wenn Sie Azure Machine Learning-Batchbereitstellungen verwenden, beachten Sie die folgenden Einschränkungen:

Dateneingaben

  • Nur Azure Machine Learning-Datenspeicher oder Azure Storage-Konten (Azure Blob Storage, Azure Data Lake Storage Gen2) werden als Eingaben unterstützt. Wenn sich Ihre Eingabedaten in einer anderen Quelle befindet, verwenden Sie die Azure Data Factory Copy-Aktivität vor der Ausführung des Batchauftrags, um die Daten in einen kompatiblen Speicher zu senken.
  • Batch-Endpunkt-Jobs entdecken keine verschachtelten Ordner. Sie können nicht mit geschachtelten Ordnerstrukturen arbeiten. Wenn Ihre Daten in mehreren Ordnern verteilt werden, müssen Sie die Struktur flacher gestalten.
  • Stellen Sie sicher, dass das von Ihnen in der Bereitstellung bereitgestellte Bewertungsskript die Daten so verarbeiten kann, wie sie in den Auftrag eingespeist werden sollen. Wenn das Modell MLflow ist, finden Sie informationen zu den Einschränkungen für unterstützte Dateitypen unter Bereitstellen von MLflow-Modellen in Batchbereitstellungen.

Datenausgabe

  • Nur registrierte Azure Machine Learning-Datenspeicher werden unterstützt. Registrieren Sie das Speicherkonto, das Ihre Azure Data Factory als Datenspeicher in Azure Machine Learning verwendet. Mithilfe dieses Ansatzes können Sie auf dasselbe Speicherkonto zurückschreiben, in dem Sie lesen.
  • Nur Azure Blob Storage-Konten werden für Ausgaben unterstützt. Azure Data Lake Storage Gen2 wird beispielsweise nicht als Ausgabe in Batchbereitstellungsaufträgen unterstützt. Wenn Sie die Daten an einen anderen Speicherort oder eine andere Senke ausgeben müssen, verwenden Sie den Azure Data Factory Kopiervorgang, sobald Sie den Batchauftrag ausgeführt haben.