Öğretici: Batch Gezgini, Depolama Gezgini ve Python ile Data Factory aracılığıyla Batch işi ç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. Batch Havuzu ve düğümleri oluşturmak için Batch Gezgini'ni kullanır ve depolama kapsayıcıları ve dosyalarıyla çalışmak için Azure Depolama Gezgini.
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'ni 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
- Etkin aboneliği olan bir Azure hesabı. Aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
- Bağlantılı Azure Depolama hesabı olan bir Batch hesabı. Aşağıdaki yöntemlerden herhangi birini kullanarak hesapları oluşturabilirsiniz: Azure portalı | Azure CLI | Bicep | ARM şablonu | Terraform.
- Data Factory örneği. Veri fabrikasını oluşturmak için Veri fabrikası oluşturma başlığındaki yönergeleri izleyin.
- Batch Explorer indirildi ve yüklendi.
- Depolama Gezgini indirildi ve yüklendi.
- Kullanılarak yüklenen azure-storage-blob paketi ile Python 3.8 veya üzeri.
pip
- GitHub'dan indirilen iris.csv giriş veri kümesi .
Batch havuzu ve düğümleri oluşturmak için Batch Gezgini'ni kullanma
İş yükünüzü çalıştırmak üzere işlem düğümleri havuzu oluşturmak için Batch Explorer'ı kullanın.
Azure kimlik bilgilerinizle Batch Explorer'da oturum açın.
Batch hesabınızı seçin.
Sol kenar çubuğunda Havuzlar'ı seçin ve ardından simgeyi + seçerek havuz ekleyin.
Hesap formuna havuz ekle formunu şu şekilde doldurun:
- Kimlik bölümüne custom-activity-pool girin.
- Ayrılmış düğümler'in 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 Başlangıç görevi ekle'yi seçin.
Başlangıç görevi ekranında, Komut satırı'nın altında yazın
cmd /c "pip install azure-storage-blob pandas"
ve Seç'i seçin. Bu komut, her düğüm başlatılırken paketi yüklerazure-storage-blob
.
Kaydet ve kapat'ı seçin.
Blob kapsayıcıları oluşturmak için Depolama Gezgini'ni kullanma
Giriş ve çıkış dosyalarını depolamak üzere blob kapsayıcıları oluşturmak için Depolama Gezgini'ni kullanın ve ardından giriş dosyalarınızı karşıya yükleyin.
- Azure kimlik bilgilerinizle Depolama Gezgini'nde oturum açın.
- Sol kenar çubuğunda Batch hesabınıza bağlı depolama hesabını bulun ve genişletin.
- 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.
- Giriş alanına giriş girin.
- output adlı başka bir blob kapsayıcısı oluşturun.
- Giriş kapsayıcısını seçin ve ardından sağ bölmede Karşıya dosya yükle'yi>seçin.
- Dosyaları karşıya yükle ekranında, Seçili dosyalar'ın altında, giriş alanının yanındaki üç nokta ... simgesini seçin.
- İndirilen iris.csv dosyanızın konumuna gidin, Aç'ı ve ardından Karşıya Yükle'yi seçin.
Python betiği geliştirme
Aşağıdaki Python betiği, Depolama Explorer giriş kapsayıcınızdan iris.csv veri 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ının bağlantı dizesi kullanması gerekir. bağlantı dizesi almak için:
- Azure portalında Batch hesabınıza bağlı depolama hesabının adını arayın ve seçin.
- Depolama hesabının sayfasında, Güvenlik ve ağ altındaki sol gezinti bölmesinden Erişim anahtarları'nı seçin.
- anahtar1'in altında, Bağlan ion dizesinin yanındaki Göster'i seçin ve ardından Kopyala simgesini seçerek bağlantı dizesi kopyalayın.
yer tutucusunu değiştirerek bağlantı dizesi aşağıdaki betike yapıştırın<storage-account-connection-string>
. 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 hesap anahtarlarını Azure Key Vault'ta depolamak en iyisidir.
# 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)
İş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ı ayarlama
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 hesap adlarınızı, hesap anahtarı değerlerinizi ve Batch hesap uç noktanızı kullanır. Bu bilgileri Azure portalından almak için:
Azure Search çubuğunda Batch hesabınızın adını arayın ve seçin.
Batch hesabı sayfanızda sol gezinti bölmesinden Anahtarlar'ı seçin.
Anahtarlar sayfasında aşağıdaki değerleri kopyalayın:
- Batch hesabı
- Hesap uç noktası
- Birincil erişim anahtarı
- Depolama hesabı adı
- Anahtar1
İşlem hattını oluşturma ve çalıştırma
Azure Data Factory Studio henüz çalışmıyorsa Azure portalındaki Data Factory sayfanızda Studio'yu başlat'ı seçin.
Data Factory Studio'da sol gezinti bölmesindeki Yazar kalem simgesini seçin.
Fabrika Kaynakları'nın altında simgeyi ve ardından İşlem Hattı'nı +seçin.
Sağ taraftaki Özellikler bölmesinde işlem hattının adını Python Çalıştır olarak değiştirin.
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.
Tasarımcı tuvalinin altındaki Genel sekmesinde, Ad'ın altına testPipeline yazın.
Azure Batch sekmesini ve ardından Yeni'yi seçin.
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.
- hesap bağlı hizmet adını Depolama: Yeni'yi seçin. Sonraki ekranda AzureBlob Depolama 1 gibi bağlı depolama hizmeti için bir Ad girin, Azure aboneliğinizi ve bağlı depolama hesabınızı seçin ve ardından Oluştur'u seçin.
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.
Ayarlar sekmesini seçin ve aşağıdaki ayarları girin veya seçin:
- Komut: girin
cmd /C python main.py
. - Kaynak bağlı hizmeti: AzureBlob Depolama 1 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.
- Komut: girin
İşlem hattını doğrulamak için işlem hattı araç çubuğunda Doğrula'yı seçin.
İşlem hattını test etmek ve doğru çalıştığından emin olmak için Hata Ayıkla'ya tıklayın.
İşlem hattını yayımlamak için Tümünü yayımla'yı seçin.
Tetikleyici ekle'yi ve ardından İşlem hattını çalıştırmak için Şimdi tetikle'yi veya zamanlamak için Yeni/Düzenle'yi seçin.
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.
- Batch Explorer'da sol kenar çubuğundan İşler'i seçin.
- adfv2-custom-activity-pool işini seçin.
- Hata çıkış kodu olan bir görev seçin.
- 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şleri ve görevleri ücretsizdir, ancak işlem düğümleri iş çalıştırmadığında bile ücretlendirilir. Düğüm havuzlarını yalnızca gerektiği gibi ayırmak ve işiniz bittiğinde havuzları silmek en iyisidir. Havuzların silinmesi, düğümlerdeki tüm görev çıkışını ve düğümleri 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 Explorer ve Data Factory ile Python betiğini kullanmayı öğrendiniz. Data Factory hakkında daha fazla bilgi için bkz. Azure Data Factory nedir?