Zelfstudie: Python-scripts uitvoeren via Azure Data Factory met behulp van Azure Batch

In deze zelfstudie leert u het volgende:

  • Verifiëren met Batch- en Storage-accounts
  • Een script ontwikkelen en uitvoeren in Python
  • Een pool van rekenknooppunten maken om een toepassing uit te voeren
  • Uw Python-workloads plannen
  • Uw analysepijplijn bewaken
  • Toegang tot uw logboekbestanden

In het volgende voorbeeld wordt een Python-script uitgevoerd dat CSV-invoer van een blob-opslagcontainer ontvangt, een gegevensbewerkingsproces uitvoert en de uitvoer naar een afzonderlijke blob-opslagcontainer schrijft.

Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan voordat u begint.

Vereisten

Aanmelden bij Azure

Meld u aan bij de Azure Portal op https://portal.azure.com.

Accountreferenties ophalen

In dit voorbeeld moet u referenties opgeven voor uw Batch- en Storage-accounts. U kunt de referenties eenvoudig ophalen in Azure Portal. (U kunt deze referenties ook ophalen met de Azure-API's of de opdrachtregelprogramma's.)

  1. Selecteer Alle services > Batch-accounts en selecteer vervolgens de naam van uw Batch-account.

  2. Selecteer Sleutels om de Batch-referenties te zien. Kopieer de waarden van Batch-account, URL en Primaire toegangssleutel in een teksteditor.

  3. Selecteer Opslagaccount als u de naam en sleutels van het opslagaccount wilt zien. Kopieer de waarden van Naam van opslagaccount en Key1 in een teksteditor.

Een batch-pool maken met behulp van Batch Explorer

In deze sectie gebruikt u Batch Explorer om de batch-pool te maken die wordt gebruikt door uw Azure Data Factory-pijplijn.

  1. Meld u aan bij Batch Explorer met uw Azure-referenties.
  2. Selecteer uw Batch-account
  3. Maak een pool door Pools aan de linkerkant te selecteren en klik vervolgens op de knop Toevoegen boven het zoekformulier.
    1. Kies een id en weergavenaam. In dit voorbeeld gebruiken we custom-activity-pool.
    2. Stel het schaaltype in op Vaste grootte en stel het toegewezen aantal knooppunten in op 2.
    3. Onder Gegevenswetenschap selecteert u Dsvm Windows als besturingssysteem.
    4. Kies Standard_f2s_v2 als de grootte van de virtuele machine.
    5. Schakel de begintaak in en voeg de opdracht cmd /c "pip install azure-storage-blob pandas"toe. De gebruikers-id kan blijven als standaard Pool-gebruiker.
    6. Selecteer OK.

Blob-containers maken

Hier maakt u blob-containers waarmee de invoer- en uitvoer bestanden voor de OCR Batch-taak worden opgeslagen.

  1. Meld u aan bij Storage Explorer met uw Azure-referenties.
  2. Met het opslagaccount dat is gekoppeld aan uw Batch-account, maakt u twee blob-containers (één voor invoerbestanden, één voor uitvoerbestanden) door de stappen te volgen op Een blob-container maken.
    • In dit voorbeeld roepen we onze invoercontainer inputen onze uitvoercontaineroutput aan.
  3. Upload iris.csv naar uw invoercontainer input met behulp van Storage Explorer door de stappen te volgen in Blobs in een BLOB-container beheren.

Een script ontwikkelen in Python

Het volgende Python-script laadt de iris.csv gegevensset uit uw input container, voert een gegevensverwerkingsproces uit en slaat de resultaten op in de output-container.

# 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 task node
df.to_csv(outputBlobName, index = False)

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

Sla het script op als main.py en uploadt dit script naar de Azure Storage input-container. Zorg ervoor dat u de functionaliteit lokaal test en valideert voordat u deze uploadt naar uw blob-container:

python main.py

Een Azure Data Factory-pijplijn instellen

In deze sectie maakt en valideert u een pijplijn met behulp van uw Python-script.

  1. Volg de stappen voor het maken van een data factory in het gedeelte "Een data factory maken" van dit artikel.

  2. Selecteer in het vak Factory-resources de +-knop (plusteken) en selecteer vervolgens Pijplijn

  3. Stel op het tabblad Algemeen de naam van de pijplijn in als "Python uitvoeren"

    Stel op het tabblad Algemeen de naam van de pijplijn in als 'Python uitvoeren'

  4. Vouw in het vak Activiteiten Batch-service uit. Sleep de aangepaste activiteit uit de werkset Activiteiten naar het ontwerpoppervlak voor pijplijnen. Vul de volgende tabbladen in voor de aangepaste activiteit:

    1. Geef op het tabblad Algemeen TestPipeline op als naam  op het tabblad Algemeen en geef testPipeline op bij naam.

    2. Voeg op het tabblad Azure batch het batch-account toe dat in de vorige stappen is gemaakt en test de verbinding om er zeker van te zijn dat het lukt. Voeg op het tabblad Azure Batch het Batch-account toe dat in de vorige stappen is gemaakt en test vervolgens de verbinding

    3. Op het tabblad instellingen :

      1. Stel de opdracht in op als python main.py .
      2. Voeg voor de Resource gekoppelde service het opslagaccount toe dat in de vorige stappen is gemaakt. Test de verbinding om er zeker van te zijn dat deze is geslaagd.
      3. Selecteer in het pad Map de naam van de Azure Blob Storage-container die het Python-script en de bijbehorende invoer bevat. Hiermee worden de geselecteerde bestanden van de container naar de exemplaren voor het groepsknooppunt gedownload voordat het Python-script wordt uitgevoerd.

      Selecteer in het mappad de naam van de Azure Blob Storage-container

  5. Klik in de pijplijnwerkbalk boven het canvas op Valideren om de instellingen voor de pijplijn te valideren. Controleer of de pijplijn is gevalideerd. Klik op de >> (pijl-rechts) om de uitvoergegevens van de validatie te sluiten.

  6. Klik op fouten opsporen om de pijplijn te testen en te controleren of deze correct werkt.

  7. Klik op Publiceren om de pijplijn te publiceren.

  8. Klik op Activeren om het Python-script uit te voeren als onderdeel van een batch-proces.

    Klik op Activeren om het Python-script uit te voeren als onderdeel van een batch-proces.

De logboekbestanden bewaken

Als er waarschuwingen of fouten worden gegenereerd door de uitvoering van het script, kunt u stdout.txt of stderr.txt uitchecken voor meer informatie over de geregistreerde uitvoer.

  1. Selecteer Taken aan de linkerkant van Batch Explorer.
  2. Kies de taak die door uw data factory is gemaakt. Als u de naam van de pool custom-activity-pool hebt opgegeven, selecteert u adfv2-custom-activity-pool.
  3. Klik op de taak met de afsluitcode voor de fout.
  4. Bekijk stdout.txt en stderr.txt om uw probleem te onderzoeken en vast te stellen.

Resources opschonen

Hoewel jobs en taken zelf niet in rekening worden gebracht, worden rekenknooppunten wel in rekening gebracht. Daarom is het raadzaam om pools alleen toe te wijzen als dat nodig is. Wanneer u de pool verwijdert, wordt ook alle taakuitvoer op de knooppunten verwijderd. De invoer- en uitvoerbestanden blijven echter aanwezig in het opslagaccount. Wanneer u het Batch-account en het opslagaccount niet meer nodig hebt, kunt u deze ook verwijderen.

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Verifiëren met Batch- en Storage-accounts
  • Een script ontwikkelen en uitvoeren in Python
  • Een pool van rekenknooppunten maken om een toepassing uit te voeren
  • Uw Python-workloads plannen
  • Uw analysepijplijn bewaken
  • Toegang tot uw logboekbestanden

Zie voor meer informatie over Azure Data Factory: