Sdílet prostřednictvím


Kurz: Spuštění úlohy Batch prostřednictvím služby Data Factory pomocí Batch Exploreru, Průzkumník služby Storage a Pythonu

Tento kurz vás provede vytvořením a spuštěním kanálu služby Azure Data Factory, který spouští úlohu Azure Batch. Skript Pythonu běží na uzlech Batch, který získá vstup hodnot oddělených čárkami (CSV) z kontejneru služby Azure Blob Storage, manipuluje s daty a zapíše výstup do jiného kontejneru úložiště. Pomocí Batch Exploreru vytvoříte fond a uzly Batch a Průzkumník služby Azure Storage pracovat s kontejnery a soubory úložiště.

V tomto kurzu se naučíte:

  • Pomocí Batch Exploreru vytvořte fond Batch a uzly.
  • Pomocí Průzkumník služby Storage můžete vytvářet kontejnery úložiště a nahrávat vstupní soubory.
  • Vyvíjejte skript Pythonu pro manipulaci se vstupními daty a vytváření výstupu.
  • Vytvořte kanál služby Data Factory, který spouští úlohu Batch.
  • Pomocí Batch Exploreru se podívejte na výstupní soubory protokolu.

Požadavky

Vytvoření fondu a uzlů služby Batch pomocí Batch Exploreru

Pomocí Batch Exploreru vytvořte fond výpočetních uzlů pro spuštění úlohy.

  1. Přihlaste se k Batch Exploreru pomocí svých přihlašovacích údajů Azure.

  2. Vyberte svůj účet Batch.

  3. Na levém bočním panelu vyberte Fondy a pak výběrem + ikony přidejte fond.

    Snímek obrazovky s vytvořením fondu v Batch Exploreru

  4. Do formuláře účtu vyplňte fond následujícím způsobem:

    • V části ID zadejte vlastní fond aktivit.
    • V části Vyhrazené uzly zadejte 2.
    • V části Vyberte konfiguraci operačního systému, vyberte kartu Datové vědy a pak vyberte Dsvm Win 2019.
    • V části Zvolit velikost virtuálního počítače vyberte Standard_F2s_v2.
    • U úkolu zahájení vyberte Přidat úkol zahájení. Na obrazovce startu úkolu v části Příkazový řádek zadejte cmd /c "pip install azure-storage-blob pandas"a pak vyberte Vybrat. Tento příkaz nainstaluje azure-storage-blob balíček na každý uzel při spuštění.
  5. Zvolte Uložit a zavřít.

Použití Průzkumník služby Storage k vytvoření kontejnerů objektů blob

Pomocí Průzkumník služby Storage vytvořte kontejnery objektů blob pro ukládání vstupních a výstupních souborů a pak nahrajte vstupní soubory.

  1. Přihlaste se a Průzkumník služby Storage pomocí svých přihlašovacích údajů Azure.
  2. Na levém bočním panelu vyhledejte a rozbalte účet úložiště, který je propojený s vaším účtem Batch.
  3. Klikněte pravým tlačítkem na Kontejnery objektů blob a vyberte Vytvořit kontejner objektů blob nebo v části Akce v dolní části bočního panelu vyberte Vytvořit kontejner objektů blob.
  4. Do pole pro zadání zadejte vstup .
  5. Vytvořte další kontejner objektů blob s názvem výstup.
  6. Vyberte vstupní kontejner a v pravém podokně vyberte Nahrát>soubory.
  7. Na obrazovce Nahrát soubory v části Vybrané soubory vyberte tři tečky ... vedle pole pro zadání.
  8. Přejděte do umístění staženého souboru iris.csv , vyberte Otevřít a pak vyberte Nahrát.

Snímek obrazovky Průzkumník služby Storage s kontejnery a objekty blob vytvořenými v účtu úložiště

Vývoj skriptu Pythonu

Následující skript Pythonu načte soubor datové sady iris.csv z vašeho vstupního kontejneru Průzkumník služby Storage, manipuluje s daty a uloží výsledky do výstupního kontejneru.

Skript musí použít připojovací řetězec pro účet Azure Storage, který je propojený s vaším účtem Batch. Získání připojovací řetězec:

  1. Na webu Azure Portal vyhledejte a vyberte název účtu úložiště, který je propojený s vaším účtem Batch.
  2. Na stránce účtu úložiště vyberte v části Zabezpečení a sítě přístupové klíče z levého navigačního panelu.
  3. V části key1 vyberte Zobrazit vedle připojovacího řetězce a pak výběrem ikony Kopírovat zkopírujte připojovací řetězec.

Vložte připojovací řetězec do následujícího skriptu a zástupný symbol nahraďte<storage-account-connection-string>. Uložte skript jako soubor s názvem main.py.

Důležité

Zveřejnění klíčů účtu ve zdroji aplikace se nedoporučuje pro produkční využití. Měli byste omezit přístup k přihlašovacím údajům a odkazovat na ně v kódu pomocí proměnných nebo konfiguračního souboru. Nejlepší je ukládat klíče účtu Batch a Storage ve službě Azure Key Vault.

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

# 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)

# Initialize the BlobServiceClient (This initializes a connection to the Azure Blob Storage, downloads the content of the 'iris.csv' file, and then loads it into a Pandas DataFrame for further processing.)
blob_service_client = BlobServiceClient.from_connection_string(conn_str=connectionString)
blob_client = blob_service_client.get_blob_client(container_name=containerName, blob_name=outputBlobName)

# Download the blob content
blob_data = blob_client.download_blob().readall()

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

# 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)

Další informace o práci se službou Azure Blob Storage najdete v dokumentaci ke službě Azure Blob Storage.

Spuštěním skriptu místně otestujte a ověřte funkčnost.

python main.py

Skript by měl vytvořit výstupní soubor s názvem iris_setosa.csv , který obsahuje pouze datové záznamy, které mají Species = setosa. Jakmile ověříte, že funguje správně, nahrajte soubor skriptu main.py do vstupního kontejneru Průzkumník služby Storage.

Nastavení kanálu služby Data Factory

Vytvořte a ověřte kanál služby Data Factory, který používá váš skript Pythonu.

Získání informací o účtu

Kanál Služby Data Factory používá názvy účtů Batch a Storage, hodnoty klíče účtu a koncový bod účtu Batch. Pokud chcete získat tyto informace z webu Azure Portal:

  1. Na panelu Azure Search vyhledejte a vyberte název účtu Batch.

  2. Na stránce účtu Batch vyberte v levém navigačním panelu klíče .

  3. Na stránce Klíče zkopírujte následující hodnoty:

    • Účet Batch
    • Koncový bod účtu
    • Primární přístupový klíč
    • Název účtu úložiště
    • Klíč1

Vytvoření a spuštění kanálu

  1. Pokud azure Data Factory Studio ještě není spuštěný, na stránce Data Factory na webu Azure Portal vyberte Spustit studio .

  2. V nástroji Data Factory Studio vyberte v levém navigačním panelu ikonu tužky pro autory .

  3. V části Prostředky továrny vyberte + ikonu a pak vyberte Kanál.

  4. V podokně Vlastnosti na pravé straně změňte název kanálu na Spustit Python.

    Snímek obrazovky se sadou Data Factory Studio po výběru možnosti Přidat kanál

  5. V podokně Aktivity rozbalte službu Batch a přetáhněte vlastní aktivitu na plochu návrháře kanálu.

  6. Pod plátnem návrháře na kartě Obecné zadejte testPipeline pod názvem.

    Snímek obrazovky s kartou Obecné pro vytvoření úlohy kanálu

  7. Vyberte kartu Azure Batch a pak vyberte Nový.

  8. Vyplňte formulář Nová propojená služba následujícím způsobem:

    • Název: Zadejte název propojené služby, například AzureBatch1.
    • Přístupový klíč: Zadejte primární přístupový klíč, který jste zkopírovali ze svého účtu Batch.
    • Název účtu: Zadejte název účtu Batch.
    • Adresa URL služby Batch: Zadejte koncový bod účtu, který jste zkopírovali ze svého účtu Batch, například https://batchdotnet.eastus.batch.azure.com.
    • Název fondu: Zadejte vlastní fond aktivit, fond, který jste vytvořili v Batch Exploreru.
    • Název propojené služby účtu úložiště: Vyberte Nový. Na další obrazovce zadejte název propojené služby úložiště, například AzureBlobStorage1, vyberte své předplatné Azure a propojený účet úložiště a pak vyberte Vytvořit.
  9. V dolní části obrazovky propojené služby Batch New vyberte Test připojení. Po úspěšném připojení vyberte Vytvořit.

    Snímek obrazovky Nová propojená služba pro úlohu Batch

  10. Vyberte kartu Nastavení a zadejte nebo vyberte následující nastavení:

    • Příkaz: Enter cmd /C python main.py.
    • Propojená služba prostředků: Vyberte propojenou službu úložiště, kterou jste vytvořili, například AzureBlobStorage1, a otestujte připojení, abyste měli jistotu, že je úspěšná.
    • Cesta ke složce: Vyberte ikonu složky a pak vyberte vstupní kontejner a vyberte OK. Soubory z této složky se před spuštěním skriptu Pythonu stáhnou z kontejneru do uzlů fondu.

    Snímek obrazovky s kartou Nastavení pro úlohu Batch

  11. Vyberte Ověřit na panelu nástrojů kanálu a ověřte kanál.

  12. Vyberte Ladit a otestujte kanál a ujistěte se, že funguje správně.

  13. Výběrem možnosti Publikovat vše publikujte kanál.

  14. Vyberte Přidat trigger a pak vyberte Aktivovat , aby se kanál spustil, nebo Nový nebo Upravit a naplánujte ho.

    Snímek obrazovky s možnostmi Ověřit, Ladit, Publikovat vše a Přidat výběry triggerů ve službě Data Factory

Zobrazení souborů protokolu pomocí Batch Exploreru

Pokud spuštění kanálu generuje upozornění nebo chyby, můžete se pomocí Batch Exploreru podívat na stdout.txt a stderr.txt výstupní soubory, kde najdete další informace.

  1. V Batch Exploreru vyberte úlohy na levém bočním panelu.
  2. Vyberte úlohu adfv2-custom-activity-pool.
  3. Vyberte úlohu, u které došlo k ukončení kódu selhání.
  4. Prohlédněte si soubory stdout.txt a stderr.txt a prozkoumejte a diagnostikujte váš problém.

Vyčištění prostředků

Účty Batch, úlohy a úkoly jsou bezplatné, ale výpočetní uzly se účtují i v případě, že neběží úlohy. Fondy uzlů je nejlepší přidělovat podle potřeby a až s nimi skončíte, odstraňte fondy. Odstranění fondů odstraní všechny výstupy úkolů na uzlech a samotné uzly.

Vstupní a výstupní soubory zůstanou v účtu úložiště a můžou se účtovat poplatky. Pokud už soubory nepotřebujete, můžete soubory nebo kontejnery odstranit. Pokud už účet Batch nebo propojený účet úložiště nepotřebujete, můžete je odstranit.

Další kroky

V tomto kurzu jste se naučili používat skript Pythonu s Batch Explorerem, Průzkumník služby Storage a službou Data Factory ke spuštění úlohy Batch. Další informace o službě Data Factory najdete v tématu Co je Azure Data Factory?