Samouczek: uruchamianie zadania usługi Batch za pomocą usługi Data Factory za pomocą programu Batch Explorer, Eksplorator usługi Storage i języka Python

Ten samouczek przeprowadzi Cię przez proces tworzenia i uruchamiania potoku usługi Azure Data Factory, który uruchamia obciążenie usługi Azure Batch. Skrypt języka Python jest uruchamiany w węzłach usługi Batch w celu pobrania danych wejściowych wartości rozdzielanych przecinkami (CSV) z kontenera usługi Azure Blob Storage, manipulowania danymi i zapisywania danych wyjściowych w innym kontenerze magazynu. Za pomocą programu Batch Explorer można utworzyć pulę i węzły usługi Batch oraz Eksplorator usługi Azure Storage pracować z kontenerami i plikami magazynu.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Użyj programu Batch Explorer, aby utworzyć pulę i węzły usługi Batch.
  • Użyj Eksplorator usługi Storage, aby utworzyć kontenery magazynu i przekazać pliki wejściowe.
  • Tworzenie skryptu języka Python w celu manipulowania danymi wejściowymi i generowania danych wyjściowych.
  • Utwórz potok usługi Data Factory, który uruchamia obciążenie usługi Batch.
  • Użyj programu Batch Explorer, aby przyjrzeć się plikom dziennika danych wyjściowych.

Wymagania wstępne

Tworzenie puli i węzłów usługi Batch za pomocą programu Batch Explorer

Użyj programu Batch Explorer, aby utworzyć pulę węzłów obliczeniowych w celu uruchomienia obciążenia.

  1. Zaloguj się do usługi Batch Explorer przy użyciu poświadczeń platformy Azure.

  2. Wybierz konto usługi Batch.

  3. Wybierz pozycję Pule na lewym pasku bocznym, a następnie wybierz ikonę + , aby dodać pulę.

    Screenshot of creating a pool in Batch Explorer.

  4. Wypełnij formularz Dodawanie puli do konta w następujący sposób:

    • W obszarze Identyfikator wprowadź wartość custom-activity-pool.
    • W obszarze Węzły dedykowane wprowadź wartość 2.
    • W obszarze Wybierz konfigurację systemu operacyjnego wybierz kartę Nauka o danych, a następnie wybierz pozycję Dsvm Win 2019.
    • W obszarze Wybierz rozmiar maszyny wirtualnej wybierz pozycję Standard_F2s_v2.
    • W obszarze Rozpocznij zadanie wybierz pozycję Dodaj zadanie uruchamiania. Na ekranie zadania uruchamiania w obszarze Wiersz polecenia wprowadź , cmd /c "pip install azure-storage-blob pandas"a następnie wybierz pozycję Wybierz. To polecenie instaluje azure-storage-blob pakiet w każdym węźle podczas uruchamiania.
  5. Wybierz pozycję Zapisz i zamknij.

Tworzenie kontenerów obiektów blob za pomocą Eksplorator usługi Storage

Użyj Eksplorator usługi Storage, aby utworzyć kontenery obiektów blob do przechowywania plików wejściowych i wyjściowych, a następnie przekazać pliki wejściowe.

  1. Zaloguj się do Eksplorator usługi Storage przy użyciu poświadczeń platformy Azure.
  2. Na pasku bocznym po lewej stronie znajdź i rozwiń konto magazynu połączone z kontem usługi Batch.
  3. Kliknij prawym przyciskiem myszy pozycję Kontenery obiektów blob i wybierz pozycję Utwórz kontener obiektów blob lub wybierz pozycję Utwórz kontener obiektów blob z akcji w dolnej części paska bocznego.
  4. Wprowadź dane wejściowe w polu wprowadzania.
  5. Utwórz inny kontener obiektów blob o nazwie output.
  6. Wybierz kontener wejściowy, a następnie wybierz pozycję Przekaż>pliki w okienku po prawej stronie.
  7. Na ekranie Przekazywanie plików w obszarze Wybrane pliki wybierz wielokropek ... obok pola wprowadzania.
  8. Przejdź do lokalizacji pobranego pliku iris.csv , wybierz pozycję Otwórz, a następnie wybierz pozycję Przekaż.

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

Tworzenie skryptu języka Python

Poniższy skrypt języka Python ładuje plik zestawu danych iris.csv z kontenera wejściowego Eksplorator usługi Storage, manipuluje danymi i zapisuje wyniki w kontenerze wyjściowym.

Skrypt musi używać parametry połączenia dla konta usługi Azure Storage połączonego z kontem usługi Batch. Aby uzyskać parametry połączenia:

  1. W witrynie Azure Portal wyszukaj i wybierz nazwę konta magazynu połączonego z kontem usługi Batch.
  2. Na stronie konta magazynu wybierz pozycję Klucze dostępu z lewej nawigacji w obszarze Zabezpieczenia i sieć.
  3. W obszarze key1 wybierz pozycję Pokaż obok ciągu Połączenie ion, a następnie wybierz ikonę Kopiuj, aby skopiować parametry połączenia.

Wklej parametry połączenia do następującego skryptu<storage-account-connection-string>, zastępując symbol zastępczy. Zapisz skrypt jako plik o nazwie main.py.

Ważne

Udostępnianie kluczy kont w źródle aplikacji nie jest zalecane w przypadku użycia produkcyjnego. Należy ograniczyć dostęp do poświadczeń i odwołać się do nich w kodzie przy użyciu zmiennych lub pliku konfiguracji. Najlepiej przechowywać klucze kont usługi Batch i magazynu w usłudze 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)

Uruchom skrypt lokalnie, aby przetestować i zweryfikować funkcjonalność.

python main.py

Skrypt powinien utworzyć plik wyjściowy o nazwie iris_setosa.csv zawierający tylko rekordy danych, które mają gatunek = setosa. Po sprawdzeniu, czy działa prawidłowo, przekaż plik skryptu main.py do kontenera wejściowego Eksplorator usługi Storage.

Konfigurowanie potoku usługi Data Factory

Utwórz i zweryfikuj potok usługi Data Factory, który używa skryptu języka Python.

Pobieranie informacji o koncie

Potok usługi Data Factory używa nazw kont usługi Batch i magazynu, wartości kluczy konta i punktu końcowego konta usługi Batch. Aby uzyskać te informacje z witryny Azure Portal:

  1. Na pasku usługi Azure Search wyszukaj i wybierz nazwę konta usługi Batch.

  2. Na stronie Konto usługi Batch wybierz pozycję Klucze w obszarze nawigacji po lewej stronie.

  3. Na stronie Klucze skopiuj następujące wartości:

    • Konto usługi Batch
    • Punkt końcowy konta
    • Podstawowy klucz dostępu
    • Nazwa konta magazynu
    • Klucz1

Tworzenie i uruchamianie potoku

  1. Jeśli program Azure Data Factory Studio nie jest jeszcze uruchomiony, wybierz pozycję Uruchom studio na stronie usługi Data Factory w witrynie Azure Portal.

  2. W narzędziu Data Factory Studio wybierz ikonę ołówka Author (Autor ) w obszarze nawigacji po lewej stronie.

  3. W obszarze Zasoby fabryki wybierz ikonę + , a następnie wybierz pozycję Potok.

  4. W okienku Właściwości po prawej stronie zmień nazwę potoku na Uruchom język Python.

    Screenshot of Data Factory Studio after you select Add pipeline.

  5. W okienku Działania rozwiń węzeł Usługa Batch i przeciągnij działanie Niestandardowe na powierzchnię projektanta potoku.

  6. Poniżej kanwy projektanta na karcie Ogólne wprowadź ciąg testPipeline w obszarze Nazwa.

    Screenshot of the General tab for creating a pipeline task.

  7. Wybierz kartę Azure Batch , a następnie wybierz pozycję Nowy.

  8. Wypełnij formularz Nowa połączona usługa w następujący sposób:

    • Nazwa: wprowadź nazwę połączonej usługi, na przykład AzureBatch1.
    • Klucz dostępu: wprowadź podstawowy klucz dostępu skopiowany z konta usługi Batch.
    • Nazwa konta: wprowadź nazwę konta usługi Batch.
    • Adres URL usługi Batch: wprowadź punkt końcowy konta skopiowany z konta usługi Batch, na przykład https://batchdotnet.eastus.batch.azure.com.
    • Nazwa puli: wprowadź wartość custom-activity-pool , pulę utworzoną w programie Batch Explorer.
    • Nazwa połączonej usługi konta magazynu: wybierz pozycję Nowy. Na następnym ekranie wprowadź nazwę połączonej usługi magazynu, taką jak AzureBlobStorage1, wybierz subskrypcję platformy Azure i połączone konto magazynu, a następnie wybierz pozycję Utwórz.
  9. W dolnej części ekranu nowa połączona usługa Batch wybierz pozycję Testuj połączenie. Po pomyślnym nawiązaniu połączenia wybierz pozycję Utwórz.

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

  10. Wybierz kartę Ustawienia i wprowadź lub wybierz następujące ustawienia:

    • Polecenie: wprowadź .cmd /C python main.py
    • Połączona usługa zasobów: wybierz utworzoną połączoną usługę magazynu, taką jak AzureBlobStorage1, i przetestuj połączenie, aby upewnić się, że działa pomyślnie.
    • Ścieżka folderu: wybierz ikonę folderu, a następnie wybierz kontener wejściowy i wybierz przycisk OK. Pliki z tego folderu są pobierane z kontenera do węzłów puli przed uruchomieniem skryptu języka Python.

    Screenshot of the Settings tab for the Batch job.

  11. Wybierz pozycję Weryfikuj na pasku narzędzi potoku, aby zweryfikować potok.

  12. Wybierz pozycję Debuguj , aby przetestować potok i upewnić się, że działa prawidłowo.

  13. Wybierz pozycję Opublikuj wszystko , aby opublikować potok.

  14. Wybierz pozycję Dodaj wyzwalacz, a następnie wybierz pozycję Wyzwól teraz , aby uruchomić potok, lub Pozycję Nowy/Edytuj , aby go zaplanować.

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

Wyświetlanie plików dziennika za pomocą programu Batch Explorer

Jeśli uruchomienie potoku generuje ostrzeżenia lub błędy, możesz użyć programu Batch Explorer, aby zapoznać się z stdout.txt i stderr.txt plikami wyjściowymi, aby uzyskać więcej informacji.

  1. W programie Batch Explorer wybierz pozycję Zadania na lewym pasku bocznym.
  2. Wybierz zadanie adfv2-custom-activity-pool.
  3. Wybierz zadanie, które miało kod zakończenia błędu.
  4. Wyświetl pliki stdout.txt i stderr.txt, aby zbadać i zdiagnozować problem.

Czyszczenie zasobów

Konta, zadania i zadania usługi Batch są bezpłatne, ale węzły obliczeniowe generują opłaty nawet wtedy, gdy nie są uruchomione zadania. Najlepiej przydzielić pule węzłów tylko w razie potrzeby i usunąć pule po zakończeniu pracy z nimi. Usunięcie pul powoduje usunięcie wszystkich danych wyjściowych zadania w węzłach i samych węzłów.

Pliki wejściowe i wyjściowe pozostają na koncie magazynu i mogą naliczać opłaty. Gdy pliki nie są już potrzebne, możesz usunąć pliki lub kontenery. Jeśli nie potrzebujesz już konta usługi Batch ani połączonego konta magazynu, możesz je usunąć.

Następne kroki

W tym samouczku przedstawiono sposób używania skryptu języka Python z usługą Batch Explorer, Eksplorator usługi Storage i usługą Data Factory do uruchamiania obciążenia usługi Batch. Aby uzyskać więcej informacji na temat usługi Data Factory, zobacz Co to jest usługa Azure Data Factory?