Zelfstudie: Een Batch-taak uitvoeren via Data Factory met Batch Explorer, Storage Explorer en Python

In deze zelfstudie leert u hoe u een Azure Data Factory-pijplijn maakt en uitvoert waarmee een Azure Batch-workload wordt uitgevoerd. Een Python-script wordt uitgevoerd op de Batch-knooppunten om csv-invoer (door komma's gescheiden waarden) op te halen uit een Azure Blob Storage-container, de gegevens te bewerken en de uitvoer naar een andere opslagcontainer te schrijven. U gebruikt Batch Explorer om een Batch-pool en -knooppunten te maken, en Azure Storage Explorer om te werken met opslagcontainers en -bestanden.

In deze zelfstudie leert u het volgende:

  • Gebruik Batch Explorer om een Batch-pool en -knooppunten te maken.
  • Gebruik Storage Explorer om opslagcontainers te maken en invoerbestanden te uploaden.
  • Ontwikkel een Python-script om invoergegevens te bewerken en uitvoer te produceren.
  • Maak een Data Factory-pijplijn waarmee de Batch-workload wordt uitgevoerd.
  • Gebruik Batch Explorer om de uitvoerlogboekbestanden te bekijken.

Vereisten

Batch Explorer gebruiken om een Batch-pool en -knooppunten te maken

Gebruik Batch Explorer om een pool rekenknooppunten te maken om uw workload uit te voeren.

  1. Meld u aan bij Batch Explorer met uw Azure-referenties.

  2. Selecteer uw Batch-account.

  3. Selecteer Pools in de linkerzijbalk en selecteer vervolgens het + pictogram om een pool toe te voegen.

    Screenshot of creating a pool in Batch Explorer.

  4. Voltooi als volgt het formulier Een groep toevoegen aan het accountformulier :

    • Voer onder ID een aangepaste activiteitspool in.
    • Voer onder Toegewezen knooppunten 2 in.
    • Als u een configuratie van een besturingssysteem selecteert, selecteert u het tabblad Data science en selecteert u vervolgens Dsvm Win 2019.
    • Selecteer Standard_F2s_v2 voor Een grootte van een virtuele machine kiezen.
    • Selecteer voor Taak starten de optie Een begintaak toevoegen. Voer in het startscherm, onder Opdrachtregel, enter cmd /c "pip install azure-storage-blob pandas"en selecteer vervolgens Selecteren. Met deze opdracht wordt het azure-storage-blob pakket op elk knooppunt geïnstalleerd terwijl het wordt gestart.
  5. Selecteer Opslaan en sluiten.

Storage Explorer gebruiken om blobcontainers te maken

Gebruik Storage Explorer om blobcontainers te maken om invoer- en uitvoerbestanden op te slaan en upload vervolgens uw invoerbestanden.

  1. Meld u aan bij Storage Explorer met uw Azure-referenties.
  2. Zoek en vouw in de linkerzijbalk het opslagaccount uit dat is gekoppeld aan uw Batch-account.
  3. Klik met de rechtermuisknop op BlobContainers en selecteer Blobcontainer maken of selecteer Blobcontainermaken in Acties onder aan de zijbalk.
  4. Voer invoer in het invoerveld in.
  5. Maak een andere blobcontainer met de naam uitvoer.
  6. Selecteer de invoercontainer en selecteer vervolgens Uploadbestanden> uploaden in het rechterdeelvenster.
  7. Selecteer in het scherm Bestanden uploaden onder Geselecteerde bestanden het beletselteken ... naast het invoerveld.
  8. Blader naar de locatie van het gedownloade iris.csv-bestand , selecteer Openen en selecteer vervolgens Uploaden.

Screenshot of Storage Explorer with containers and blobs created in the storage account.

Een Python-script ontwikkelen

Met het volgende Python-script wordt het iris.csv-gegevenssetbestand uit de invoercontainer van Storage Explorer geladen, worden de gegevens bewerkt en worden de resultaten opgeslagen in de uitvoercontainer.

Het script moet de verbindingsreeks gebruiken voor het Azure Storage-account dat is gekoppeld aan uw Batch-account. De verbindingsreeks ophalen:

  1. Zoek en selecteer in Azure Portal de naam van het opslagaccount dat is gekoppeld aan uw Batch-account.
  2. Selecteer op de pagina voor het opslagaccount toegangssleutels in de linkernavigatiebalk onder Beveiliging en netwerken.
  3. Selecteer onder toets1 de optie Weergeven naast Verbinding maken iontekenreeks en selecteer vervolgens het pictogram Kopiëren om de verbindingsreeks te kopiëren.

Plak de verbindingsreeks in het volgende script, waarbij u de <storage-account-connection-string> tijdelijke aanduiding vervangt. Sla het script op als een bestand met de naam main.py.

Belangrijk

Het beschikbaar maken van accountsleutels in de app-bron wordt niet aanbevolen voor productiegebruik. U moet de toegang tot referenties beperken en ernaar verwijzen in uw code met behulp van variabelen of een configuratiebestand. Het is raadzaam om batch- en opslagaccountsleutels op te slaan in Azure Key Vault.

# Load libraries
from azure.storage.blob import BlobClient
import pandas as pd

# Define parameters
connectionString = "<storage-account-connection-string>"
containerName = "output"
outputBlobName	= "iris_setosa.csv"

# Establish connection with the blob storage account
blob = BlobClient.from_connection_string(conn_str=connectionString, container_name=containerName, blob_name=outputBlobName)

# Load iris dataset from the task node
df = pd.read_csv("iris.csv")

# Take a subset of the records
df = df[df['Species'] == "setosa"]

# Save the subset of the iris dataframe locally in the task node
df.to_csv(outputBlobName, index = False)

with open(outputBlobName, "rb") as data:
    blob.upload_blob(data, overwrite=True)

Voer het script lokaal uit om de functionaliteit te testen en te valideren.

python main.py

Het script moet een uitvoerbestand met de naam iris_setosa.csv produceren dat alleen de gegevensrecords bevat met Species = setosa. Nadat u hebt gecontroleerd of het correct werkt, uploadt u het main.py scriptbestand naar de invoercontainer van Storage Explorer.

Een Data Factory-pijplijn instellen

Maak en valideer een Data Factory-pijplijn die gebruikmaakt van uw Python-script.

Accountgegevens ophalen

De Data Factory-pijplijn maakt gebruik van de batch- en opslagaccountnamen, accountsleutelwaarden en het eindpunt van het Batch-account. Ga als volgt te werk om deze informatie op te halen uit Azure Portal:

  1. Zoek en selecteer uw Batch-accountnaam in de Azure Search-balk.

  2. Selecteer sleutels in de linkernavigatiebalk op de pagina van uw Batch-account.

  3. Kopieer op de pagina Sleutels de volgende waarden:

    • Batch-account
    • Accounteindpunt
    • Primaire toegangssleutel
    • Naam van opslagaccount
    • Sleutel1

De pijplijn maken en uitvoeren

  1. Als Azure Data Factory Studio nog niet wordt uitgevoerd, selecteert u Start studio op uw Data Factory-pagina in Azure Portal.

  2. Selecteer in Data Factory Studio het potloodpictogram Auteur in het linkernavigatievenster.

  3. Selecteer onder Factory-resources het + pictogram en selecteer Vervolgens Pijplijn.

  4. Wijzig in het deelvenster Eigenschappen aan de rechterkant de naam van de pijplijn in Python uitvoeren.

    Screenshot of Data Factory Studio after you select Add pipeline.

  5. Vouw in het deelvenster Activiteiten Batch Service uit en sleep de aangepaste activiteit naar het ontwerpoppervlak voor pijplijnen.

  6. Voer onder het ontwerpcanvas op het tabblad Algemeen testPipeline onder Naam in.

    Screenshot of the General tab for creating a pipeline task.

  7. Selecteer het tabblad Azure Batch en selecteer vervolgens Nieuw.

  8. Vul het formulier Nieuwe gekoppelde service als volgt in:

    • Naam: Voer een naam in voor de gekoppelde service, zoals AzureBatch1.
    • Toegangssleutel: voer de primaire toegangssleutel in die u hebt gekopieerd uit uw Batch-account.
    • Accountnaam: Voer de naam van uw Batch-account in.
    • Batch-URL: Voer het accounteindpunt in dat u hebt gekopieerd uit uw Batch-account, zoals https://batchdotnet.eastus.batch.azure.com.
    • Naam van pool: Voer de pool custom-activity-pool in, de pool die u hebt gemaakt in Batch Explorer.
    • Naam van gekoppelde service voor opslagaccount: Selecteer Nieuw. Voer in het volgende scherm een naam in voor de gekoppelde opslagservice, zoals AzureBlobStorage1, selecteer uw Azure-abonnement en gekoppeld opslagaccount en selecteer vervolgens Maken.
  9. Selecteer onder in het scherm Nieuwe gekoppelde Batch-service de optie Verbinding testen. Wanneer de verbinding is geslaagd, selecteert u Maken.

    Screenshot of the New linked service screen for the Batch job.

  10. Selecteer het tabblad Instellingen en voer de volgende instellingen in of selecteer deze:

    • Opdracht: Voer in cmd /C python main.py.
    • Gekoppelde resourceservice: selecteer de gekoppelde opslagservice die u hebt gemaakt, zoals AzureBlobStorage1, en test de verbinding om te controleren of deze is geslaagd.
    • Mappad: selecteer het mappictogram en selecteer vervolgens de invoercontainer en selecteer OK. De bestanden uit deze map worden gedownload van de container naar de poolknooppunten voordat het Python-script wordt uitgevoerd.

    Screenshot of the Settings tab for the Batch job.

  11. Selecteer Valideren op de werkbalk van de pijplijn om de pijplijn te valideren.

  12. Selecteer Foutopsporing om de pijplijn te testen en te controleren of deze correct werkt.

  13. Selecteer Alles publiceren om de pijplijn te publiceren.

  14. Selecteer Trigger toevoegen en selecteer Nu activeren om de pijplijn uit te voeren of Nieuw/Bewerken om deze te plannen.

    Screenshot of Validate, Debug, Publish all, and Add trigger selections in Data Factory.

Batch Explorer gebruiken om logboekbestanden weer te geven

Als het uitvoeren van uw pijplijn waarschuwingen of fouten produceert, kunt u Batch Explorer gebruiken om de stdout.txt en stderr.txt uitvoerbestanden te bekijken voor meer informatie.

  1. Selecteer in Batch Explorer taken in de linkerzijbalk.
  2. Selecteer de taak adfv2-custom-activity-pool .
  3. Selecteer een taak met een afsluitcode voor fouten.
  4. Bekijk de stdout.txt - en stderr.txt-bestanden om uw probleem te onderzoeken en diagnosticeren.

Resources opschonen

Batch-accounts, -taken en -taken zijn gratis, maar rekenknooppunten brengen kosten in rekening, zelfs wanneer ze geen taken uitvoeren. U kunt het beste alleen knooppuntgroepen toewijzen als dat nodig is en de pools verwijderen wanneer u klaar bent. Als u pools verwijdert, worden alle taakuitvoer op de knooppunten en de knooppunten zelf verwijderd.

Invoer- en uitvoerbestanden blijven in het opslagaccount en kunnen kosten in rekening brengen. Wanneer u de bestanden niet meer nodig hebt, kunt u de bestanden of containers verwijderen. Wanneer u uw Batch-account of gekoppeld opslagaccount niet meer nodig hebt, kunt u ze verwijderen.

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u een Python-script gebruikt met Batch Explorer, Storage Explorer en Data Factory om een Batch-workload uit te voeren. Zie Wat is Azure Data Factory ?