Aracılığıyla paylaş


Eğitim Rehberi: Batch Gezgini, Depolama Gezgini ve Python kullanarak Data Factory üzerinden Batch işini çalıştırma

Bu öğretici, Azure Batch iş yükü çalıştıran bir Azure Data Factory işlem hattı oluşturma ve çalıştırma konusunda size yol gösterir. Python betiği, bir Azure Blob Depolama kapsayıcısından virgülle ayrılmış değer (CSV) girişi almak, verileri işlemek ve çıkışı farklı bir depolama kapsayıcısına yazmak için Batch düğümlerinde çalışır. Siz, bir Batch havuzu ve düğümleri oluşturmak için Batch Gezgini'ni, depolama kapsayıcıları ve dosyalarıyla çalışmak için Azure Depolama Gezgini'ni kullanırsınız.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Batch havuzu ve düğümleri oluşturmak için Batch Gezgini'ni kullanın.
  • Depolama kapsayıcıları oluşturmak ve giriş dosyalarını karşıya yüklemek için Depolama Gezgini kullanın.
  • Giriş verilerini işlemek ve çıkış üretmek için bir Python betiği geliştirin.
  • Batch iş yükünü çalıştıran bir Data Factory işlem hattı oluşturun.
  • Çıktı günlük dosyalarına bakmak için Batch Gezgini'ni kullanın.

Önkoşullar

Batch Gezgini'ni kullanarak bir Batch havuzu ve düğümleri oluşturun.

İş yükünüzü çalıştırmak üzere işlem düğümleri havuzu oluşturmak için Batch Explorer'ı kullanın.

  1. Azure kimlik bilgilerinizle Batch Explorer'da oturum açın.

  2. Batch hesabınızı seçin.

  3. Sol kenar çubuğunda Havuzlar'ı seçin ve ardından simgeyi + seçerek havuz ekleyin.

    Batch Gezgini'nde havuz oluşturma işleminin ekran görüntüsü.

  4. Hesap formuna havuz ekle formunu şu şekilde doldurun:

    • ID kısmına custom-activity-pool girin.
    • Ayrılmış düğümler altına 2 girin.
    • İşletim sistemi yapılandırması seçin alanında Veri bilimi sekmesini ve ardından Dsvm Win 2019'ı seçin.
    • Sanal makine boyutu seçin için Standard_F2s_v2 seçin.
    • Görevi Başlat için Bir başlangıç görevi ekle'yi seçin. Başlangıç görevi ekranında, Komut satırı altında cmd /c "pip install azure-storage-blob pandas" yazın ve ardından Seç'i seçin. Bu komut, her düğüm başlatıldığında azure-storage-blob paketini kurar.
  5. Kaydet ve kapat'ı seçin.

Blob kapsayıcıları oluşturmak için Depolama Gezgini kullanma

giriş ve çıkış dosyalarını depolamak için blob kapsayıcıları oluşturmak için Depolama Gezgini kullanın ve ardından giriş dosyalarınızı karşıya yükleyin.

  1. Azure kimlik bilgilerinizle Depolama Gezgini oturum açın.
  2. Sol kenar çubuğunda Batch hesabınıza bağlı depolama hesabını bulun ve genişletin.
  3. Blob Kapsayıcıları'na sağ tıklayın ve Blob Kapsayıcısı Oluştur'u seçin veya kenar çubuğunun altındaki Eylemler'den Blob Kapsayıcısı Oluştur'u seçin.
  4. Giriş alanına input girin.
  5. output adlı başka bir blob kapsayıcısı oluşturun.
  6. Giriş kapsayıcısını seçin ve ardından sağ bölmede Karşıya yükle>Dosyaları yükle seçeneklerini belirleyin.
  7. Dosyaları karşıya yükle ekranında, Seçili dosyalar'ın altında, giriş alanının yanındaki üç nokta ... simgesini seçin.
  8. İndirilen iris.csv dosyanızın konumuna gidin, Aç'ı ve ardından Karşıya Yükle'yi seçin.

Depolama hesabında oluşturulan kapsayıcılar ve bloblar içeren Depolama Gezgini ekran görüntüsü.

Bir Python betiği geliştirin

Aşağıdaki Python betiği, Depolama Gezgini giriş kapsayıcınızdan iris.csvveri kümesi dosyasını yükler, verileri işler ve sonuçları çıkış kapsayıcısına kaydeder.

Betiğin Batch hesabınıza bağlı Azure Depolama hesabı için bağlantı dizesini kullanması gerekir. bağlantı dizesi almak için:

  1. Azure portalında Batch hesabınıza bağlı depolama hesabının adını arayın ve seçin.
  2. Depolama hesabının sayfasında, Güvenlik ve ağ altındaki sol gezinti bölmesinden Erişim anahtarları'nı seçin.
  3. anahtar1'in altında, Bağlantı dizesi yanındaki Göster'i seçin ve ardından bağlantı dizesini kopyalamak için Kopyala simgesini seçin.

<storage-account-connection-string> yer tutucusunu değiştirerek bağlantı dizesini aşağıdaki betiğe yapıştırın. Betiği main.py adlı bir dosya olarak kaydedin.

Önemli

Hesap anahtarlarının uygulama kaynağında kullanıma açıklanması Üretim kullanımı için önerilmez. Kimlik bilgilerine erişimi kısıtlamalı ve değişkenleri veya yapılandırma dosyasını kullanarak kodunuzda bunlara başvurmalısınız. Batch ve Depolama hesabı anahtarlarını Azure Key Vault'ta depolamak en iyisidir.

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

Azure Blob Depolama ile çalışma hakkında daha fazla bilgi için Azure Blob Depolama belgelerine bakın.

İşlevselliği test etmek ve doğrulamak için betiği yerel olarak çalıştırın.

python main.py

Betik, yalnızca Species = setosa içeren veri kayıtlarını içeren iris_setosa.csv adlı bir çıkış dosyası üretmelidir. Düzgün çalıştığını doğruladıktan sonra main.py betik dosyasını Depolama Gezgini giriş kapsayıcınıza yükleyin.

Data Factory işlem hattını ayarlayın

Python betiğinizi kullanan bir Data Factory işlem hattı oluşturun ve doğrulayın.

Hesap bilgilerini alma

Data Factory işlem hattı Batch ve Depolama hesabı adlarınızı, hesap anahtarı değerlerinizi ve Batch hesabı uç noktanızı kullanır. Bu bilgileri Azure portalından almak için:

  1. Azure Search çubuğunda Batch hesabınızın adını arayın ve seçin.

  2. Batch hesabı sayfanızda sol gezinti bölmesinden Anahtarlar'ı seçin.

  3. Anahtarlar sayfasında aşağıdaki değerleri kopyalayın:

    • Batch hesabı
    • Hesap uç noktası
    • Birincil erişim anahtarı
    • Depolama hesabı adı
    • Key1

İşlem hattını oluştur ve çalıştır

  1. Azure Data Factory Studio henüz çalışmıyorsa Azure portalındaki Data Factory sayfanızda Studio'yu başlat'ı seçin.

  2. Data Factory Studio'da sol gezinti bölmesindeki Yazar kalem simgesini seçin.

  3. Fabrika Kaynakları'nın altında simgesini seçin, ardından + öğesini seçin.

  4. Sağ taraftaki Özellikler bölmesinde işlem hattının adını Python Çalıştır olarak değiştirin.

    İşlem hattı ekle'yi seçtikten sonra Data Factory Studio'nun ekran görüntüsü.

  5. Etkinlikler bölmesinde Batch Hizmeti'ni genişletin ve Özel etkinliği işlem hattı tasarımcısının yüzeyine sürükleyin.

  6. Tasarımcı tuvalinin altındaki Genel sekmesinde, Ad'ın altına testPipeline yazın.

    İşlem hattı görevi oluşturmaya yönelik Genel sekmesinin ekran görüntüsü.

  7. Azure Batch sekmesini ve ardından Yeni'yi seçin.

  8. Yeni bağlı hizmet formunu aşağıdaki gibi doldurun:

    • Ad: Bağlı hizmet için AzureBatch1 gibi bir ad girin.
    • Erişim anahtarı: Batch hesabınızdan kopyaladığınız birincil erişim anahtarını girin.
    • Hesap adı: Batch hesabınızın adını girin.
    • Batch URL'si: Batch hesabınızdan kopyaladığınız hesap uç noktasını girin, örneğin https://batchdotnet.eastus.batch.azure.com.
    • Havuz adı: Batch Explorer'da oluşturduğunuz özel-activity-pool havuzunu girin.
    • Depolama hesabı bağlı hizmet adı: Yeni'yi seçin. Sonraki ekranda, bağlı depolama hizmeti için bir Ad girin, örneğin AzureBlobStorage1, Azure aboneliğinizi ve bağlı depolama hesabınızı seçin ve ardından Oluştur seçeneğini seçin.
  9. Batch Yeni bağlı hizmet ekranının alt kısmında Bağlantıyı test et'i seçin. Bağlantı başarılı olduğunda Oluştur'u seçin.

    Batch işi için Yeni bağlantılı hizmet ekranının ekran görüntüsü.

  10. Ayarlar sekmesini seçin ve aşağıdaki ayarları girin veya seçin:

    • Komut: Girin cmd /C python main.py.
    • Kaynak bağlı hizmeti: AzureBlobStorage1 gibi oluşturduğunuz bağlı depolama hizmetini seçin ve başarılı olduğundan emin olmak için bağlantıyı test edin.
    • Klasör yolu: Klasör simgesini seçin ve ardından giriş kapsayıcısını seçin ve Tamam'ı seçin. Bu klasördeki dosyalar, Python betiği çalışmadan önce kapsayıcıdan havuz düğümlerine indirilir.

    Batch işinin Ayarlar sekmesinin ekran görüntüsü.

  11. İşlem hattını doğrulamak için işlem hattı araç çubuğunda Doğrula'yı seçin.

  12. İşlem hattını test etmek ve doğru çalıştığından emin olmak için Hata Ayıkla'ya tıklayın.

  13. İşlem hattını yayımlamak için Tümünü yayımla'yı seçin.

  14. Tetikleyici Ekle'yi seçin ve ardından işlem hattını çalıştırmak için Şimdi Tetikle'yi veya Yeni/Düzenle'yi seçerek zamanlayın.

    Data Factory'de Doğrulama, Hata Ayıklama, Tetikleyici Ekle ve Tümünü Yayınla seçimlerinin ekran görüntüsü.

Günlük dosyalarını görüntülemek için Batch Gezgini'ni kullanma

İşlem hattınızı çalıştırmak uyarılar veya hatalar oluşturuyorsa, daha fazla bilgi için Batch Explorer'ı kullanarak stdout.txt ve stderr.txt çıkış dosyalarına bakabilirsiniz.

  1. Batch Explorer'da sol kenar çubuğundan İşler'i seçin.
  2. adfv2-custom-activity-pool işini seçin.
  3. Hata çıkış kodu olan bir görev seçin.
  4. Sorununuzu araştırmak ve tanılamak için stdout.txt ve stderr.txt dosyalarını görüntüleyin.

Kaynakları temizleme

Batch hesapları, işler ve görevler ücretsizdir, ancak hesaplama düğümleri iş çalıştırmasalar bile maliyet yaratır. Gerektiğinde düğüm havuzlarını ayırmak ve işiniz bittiğinde bu havuzları silmek en iyisidir. Havuzların silinmesi, düğümlerdeki tüm görev sonuçlarını ve düğümlerin kendilerini siler.

Giriş ve çıkış dosyaları depolama hesabında kalır ve ücrete tabi olabilir. Dosyalara artık ihtiyacınız kalmadığında, dosyaları veya kapsayıcıları silebilirsiniz. Batch hesabınıza veya bağlı depolama hesabınıza artık ihtiyacınız kalmadığında bunları silebilirsiniz.

Sonraki adımlar

Bu öğreticide Batch iş yükünü çalıştırmak için Batch Explorer, Depolama Gezgini ve Data Factory ile Python betiğini kullanmayı öğrendiniz. Data Factory hakkında daha fazla bilgi için bkz. Azure Data Factory nedir?