Share via


Självstudie: Köra ett Batch-jobb via Data Factory med Batch Explorer, Storage Explorer och Python

Den här självstudien beskriver hur du skapar och kör en Azure Data Factory-pipeline som kör en Azure Batch-arbetsbelastning. Ett Python-skript körs på Batch-noderna för att hämta kommaavgränsade värdeindata (CSV) från en Azure Blob Storage-container, ändra data och skriva utdata till en annan lagringscontainer. Du använder Batch Explorer för att skapa en Batch-pool och noder och Azure Storage Explorer för att arbeta med lagringscontainrar och filer.

I den här självstudien lär du dig att:

  • Använd Batch Explorer för att skapa en Batch-pool och noder.
  • Använd Storage Explorer för att skapa lagringscontainrar och ladda upp indatafiler.
  • Utveckla ett Python-skript för att manipulera indata och skapa utdata.
  • Skapa en Data Factory-pipeline som kör Batch-arbetsbelastningen.
  • Använd Batch Explorer för att titta på utdataloggfilerna.

Förutsättningar

Använda Batch Explorer för att skapa en Batch-pool och noder

Använd Batch Explorer för att skapa en pool med beräkningsnoder för att köra din arbetsbelastning.

  1. Logga in på Batch Explorer med dina Azure-autentiseringsuppgifter.

  2. Välj ditt Batch-konto.

  3. Välj Pooler i det vänstra sidofältet och välj + sedan ikonen för att lägga till en pool.

    Screenshot of creating a pool in Batch Explorer.

  4. Fyll i formuläret Lägg till en pool i kontoformuläret på följande sätt:

    • Under ID anger du custom-activity-pool.
    • Under Dedikerade noder anger du 2.
    • För Välj en operativsystemkonfiguration väljer du fliken Datavetenskap och sedan Dsvm Win 2019.
    • För Välj storlek på en virtuell dator väljer du Standard_F2s_v2.
    • För Startaktivitet väljer du Lägg till en startaktivitet. På startaktivitetsskärmen, under Kommandorad, anger du cmd /c "pip install azure-storage-blob pandas"och väljer sedan Välj. Det här kommandot installerar azure-storage-blob paketet på varje nod när det startas.
  5. Välj Spara och stäng.

Använda Storage Explorer för att skapa blobcontainrar

Använd Storage Explorer för att skapa blobcontainrar för att lagra indata- och utdatafiler och sedan ladda upp dina indatafiler.

  1. Logga in på Storage Explorer med dina Azure-autentiseringsuppgifter.
  2. Leta upp och expandera det lagringskonto som är länkat till ditt Batch-konto i det vänstra sidofältet.
  3. Högerklicka på Blobcontainrar och välj Skapa blobcontainer eller välj Skapa blobcontainer från Åtgärder längst ned i sidofältet.
  4. Ange indata i postfältet.
  5. Skapa en annan blobcontainer med namnet output.
  6. Välj indatacontainern och välj sedan Ladda upp>upp filer i den högra rutan.
  7. På skärmen Ladda upp filer, under Valda filer, väljer du ellipsen ... bredvid postfältet.
  8. Bläddra till platsen för den nedladdade iris.csv filen, välj Öppna och välj sedan Ladda upp.

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

Utveckla ett Python-skript

Följande Python-skript läser in iris.csv datamängdsfilen från din Storage Explorer-indatacontainer, ändrar data och sparar resultatet i utdatacontainern.

Skriptet måste använda anslutningssträng för det Azure Storage-konto som är länkat till ditt Batch-konto. Så här hämtar du anslutningssträng:

  1. I Azure-portalen söker du efter och väljer namnet på det lagringskonto som är länkat till ditt Batch-konto.
  2. På sidan för lagringskontot väljer du Åtkomstnycklar i det vänstra navigeringsfältet under Säkerhet + nätverk.
  3. Under key1 väljer du Visa bredvid Anslut ionssträng och väljer sedan ikonen Kopiera för att kopiera anslutningssträng.

Klistra in anslutningssträng i följande skript och <storage-account-connection-string> ersätt platshållaren. Spara skriptet som en fil med namnet main.py.

Viktigt!

Att exponera kontonycklar i appkällan rekommenderas inte för produktionsanvändning. Du bör begränsa åtkomsten till autentiseringsuppgifter och referera till dem i koden med hjälp av variabler eller en konfigurationsfil. Det är bäst att lagra Batch- och Storage-kontonycklar i 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)

Kör skriptet lokalt för att testa och verifiera funktioner.

python main.py

Skriptet ska skapa en utdatafil med namnet iris_setosa.csv som endast innehåller de dataposter som har Species = setosa. När du har kontrollerat att den fungerar korrekt laddar du upp den main.py skriptfilen till lagringsutforskarens indatacontainer .

Konfigurera en Data Factory-pipeline

Skapa och verifiera en Data Factory-pipeline som använder ditt Python-skript.

Hämta kontoinformation

Data Factory-pipelinen använder dina Batch- och Storage-kontonamn, kontonyckelvärden och Batch-kontoslutpunkt. Så här hämtar du den här informationen från Azure-portalen:

  1. I Azure Search-fältet söker du efter och väljer ditt Batch-kontonamn.

  2. På sidan Batch-konto väljer du Nycklar i det vänstra navigeringsfältet.

  3. På sidan Nycklar kopierar du följande värden:

    • Batch-konto
    • Kontoslutpunkt
    • Primär åtkomstnyckel
    • Namn på lagringskonto
    • Key1

Skapa och köra pipelinen

  1. Om Azure Data Factory Studio inte redan körs väljer du Starta studio på din Data Factory-sida i Azure-portalen.

  2. I Data Factory Studio väljer du pennikonen Författare i det vänstra navigeringsfönstret.

  3. Under Fabriksresurser väljer du + ikonen och sedan Pipeline.

  4. I fönstret Egenskaper till höger ändrar du namnet på pipelinen till Kör Python.

    Screenshot of Data Factory Studio after you select Add pipeline.

  5. I fönstret Aktiviteter expanderar du Batch Service och drar aktiviteten Anpassad till pipelinedesignerns yta.

  6. Under designerarbetsytan går du till fliken Allmänt och anger testPipeline under Namn.

    Screenshot of the General tab for creating a pipeline task.

  7. Välj fliken Azure Batch och välj sedan Ny.

  8. Fyll i formuläret Ny länkad tjänst enligt följande:

    • Namn: Ange ett namn för den länkade tjänsten, till exempel AzureBatch1.
    • Åtkomstnyckel: Ange den primära åtkomstnyckeln som du kopierade från ditt Batch-konto.
    • Kontonamn: Ange ditt Batch-kontonamn.
    • Batch-URL: Ange den kontoslutpunkt som du kopierade från ditt Batch-konto, till exempel https://batchdotnet.eastus.batch.azure.com.
    • Poolnamn: Ange anpassad aktivitetspool, poolen som du skapade i Batch Explorer.
    • Lagringskontots länkade tjänstnamn: Välj Nytt. På nästa skärm anger du ett Namn för den länkade lagringstjänsten, till exempel AzureBlobStorage1, väljer din Azure-prenumeration och ditt länkade lagringskonto och väljer sedan Skapa.
  9. Längst ned på skärmen Ny länkad tjänst i Batch väljer du Testa anslutning. När anslutningen har slutförts väljer du Skapa.

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

  10. Välj fliken Inställningar och ange eller välj följande inställningar:

    • Kommando: Ange cmd /C python main.py.
    • Resurslänkade tjänster: Välj den länkade lagringstjänst som du skapade, till exempel AzureBlobStorage1, och testa anslutningen för att se till att den lyckas.
    • Mappsökväg: Välj mappikonen och välj sedan indatacontainern och välj OK. Filerna från den här mappen laddas ned från containern till poolnoderna innan Python-skriptet körs.

    Screenshot of the Settings tab for the Batch job.

  11. Välj Verifiera i pipelinens verktygsfält för att verifiera pipelinen.

  12. Välj Felsök för att testa pipelinen och se till att den fungerar korrekt.

  13. Välj Publicera alla för att publicera pipelinen.

  14. Välj Lägg till utlösare och välj sedan Utlösare nu för att köra pipelinen eller Ny/Redigera för att schemalägga den.

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

Använda Batch Explorer för att visa loggfiler

Om du kör din pipeline genererar varningar eller fel kan du använda Batch Explorer för att titta på stdout.txt och stderr.txt utdatafiler för mer information.

  1. I Batch Explorer väljer du Jobb i det vänstra sidofältet.
  2. Välj jobbet adfv2-custom-activity-pool.
  3. Välj en aktivitet som hade en felslutkod.
  4. Visa filerna stdout.txt och stderr.txt för att undersöka och diagnostisera problemet.

Rensa resurser

Batchkonton, jobb och uppgifter är kostnadsfria, men beräkningsnoder debiteras även när de inte kör jobb. Det är bäst att bara allokera nodpooler efter behov och ta bort poolerna när du är klar med dem. Om du tar bort pooler tas alla aktivitetsutdata bort på noderna och själva noderna.

Indata- och utdatafiler finns kvar i lagringskontot och kan medföra avgifter. När du inte längre behöver filerna kan du ta bort filerna eller containrarna. När du inte längre behöver ditt Batch-konto eller ett länkat lagringskonto kan du ta bort dem.

Nästa steg

I den här självstudien har du lärt dig hur du använder ett Python-skript med Batch Explorer, Storage Explorer och Data Factory för att köra en Batch-arbetsbelastning. Mer information om Data Factory finns i Vad är Azure Data Factory?