Bagikan melalui


Tutorial: Menjalankan pekerjaan Batch melalui Data Factory dengan Batch Explorer, Storage Explorer, dan Python

Tutorial ini membimbing Anda melalui pembuatan dan menjalankan pipeline di Azure Data Factory yang memproses beban kerja di Azure Batch. Skrip Python berjalan pada simpul Batch untuk mendapatkan input nilai yang dipisahkan koma (CSV) dari kontainer Azure Blob Storage, memanipulasi data, dan menulis output ke kontainer penyimpanan yang berbeda. Anda menggunakan Batch Explorer untuk membuat kumpulan dan simpul Batch, dan Azure Storage Explorer untuk bekerja dengan kontainer dan file penyimpanan.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Gunakan Batch Explorer untuk membuat kumpulan dan simpul Batch.
  • Gunakan Storage Explorer untuk membuat kontainer penyimpanan dan mengunggah file input.
  • Kembangkan skrip Python untuk memanipulasi data input dan menghasilkan output.
  • Buat alur Data Factory yang menjalankan beban kerja Batch.
  • Gunakan Batch Explorer untuk melihat file log output.

Prasyarat

Menggunakan Batch Explorer untuk membuat kumpulan dan simpul Batch

Gunakan Batch Explorer untuk membuat kumpulan simpul komputasi untuk menjalankan beban kerja Anda.

  1. Masuk ke Batch Explorer dengan kredensial Azure Anda.

  2. Pilih akun Batch Anda.

  3. Pilih Kumpulan di bilah sisi kiri, lalu pilih + ikon untuk menambahkan kumpulan.

    Cuplikan layar pembuatan kumpulan di Batch Explorer.

  4. Lengkapi formulir Tambahkan kumpulan ke akun sebagai berikut:

    • Di bawah ID, masukkan kumpulan aktivitas kustom.
    • Di bawah Node khusus, masukkan 2.
    • Untuk Pilih konfigurasi sistem operasi, pilih tab Ilmu data, lalu pilih Dsvm Win 2019.
    • Untuk Pilih ukuran komputer virtual, pilih Standard_F2s_v2.
    • Untuk Memulai Tugas, pilih Tambahkan tugas mulai. Pada layar tugas mula, di bawah Command line, masukkan cmd /c "pip install azure-storage-blob pandas", kemudian pilih Select. Perintah ini menginstal paket azure-storage-blob pada setiap simpul saat setiap simpul dinyalakan.
  5. Pilih Simpan dan Tutup.

Menggunakan Storage Explorer untuk membuat kontainer blob

Gunakan Storage Explorer untuk membuat kontainer blob untuk menyimpan file input dan output, lalu unggah file input Anda.

  1. Masuk ke Storage Explorer dengan kredensial Azure Anda.
  2. Di bilah sisi kiri, temukan dan perluas akun penyimpanan yang ditautkan ke akun Batch Anda.
  3. Klik kanan Kontainer Blob, dan pilih Buat Kontainer Blob, atau pilih Buat Kontainer Blob dari Tindakan di bagian bawah bar samping.
  4. Masukkan input di bidang entri.
  5. Buat kontainer blob lain bernama output.
  6. Pilih wadah input, dan kemudian pilih Upload>Upload files di panel sebelah kanan.
  7. Pada layar Unggah file, di bawah File yang dipilih, pilih elipsis ... di samping bidang entri.
  8. Telusuri ke lokasi file iris.csv yang Anda unduh, pilih Buka, lalu pilih Unggah.

Cuplikan layar Storage Explorer dengan kontainer dan blob yang dibuat di akun penyimpanan.

Mengembangkan skrip Python

Skrip Python berikut memuat file himpunan data iris.csv dari kontainer input Storage Explorer Anda, memanipulasi data, dan menyimpan hasilnya ke kontainer output.

Skrip perlu menggunakan string koneksi untuk akun Azure Storage yang ditautkan ke akun Batch Anda. Untuk mendapatkan string koneksi:

  1. Di portal Azure, cari dan pilih nama akun penyimpanan yang ditautkan ke akun Batch Anda.
  2. Pada halaman untuk akun penyimpanan, pilih Kunci akses dari navigasi kiri di bawah Keamanan + jaringan.
  3. Di bawah key1, pilih Perlihatkan di samping String koneksi, lalu pilih ikon Salin untuk menyalin string koneksi.

Tempelkan string koneksi di skrip berikut, ganti <storage-account-connection-string> penanda. Simpan skrip sebagai file bernama main.py.

Penting

Mengekspos kunci akun di sumber aplikasi tidak disarankan untuk penggunaan Produksi. Anda harus membatasi akses ke kredensial dan merujuknya dalam kode Anda dengan menggunakan variabel atau file konfigurasi. Yang terbaik adalah menyimpan kunci akun Batch dan Storage di 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)

Untuk informasi selengkapnya tentang bekerja dengan Azure Blob Storage, lihat dokumentasi Azure Blob Storage.

Jalankan skrip secara lokal untuk menguji dan memvalidasi fungsionalitas.

python main.py

Skrip harus menghasilkan file output bernama iris_setosa.csv yang hanya berisi rekaman data yang memiliki Spesies = setosa. Setelah Anda memverifikasi bahwa skrip berfungsi dengan benar, unggah file skrip main.py ke kontainer input Storage Explorer Anda.

Menyiapkan alur Data Factory

Membuat dan memvalidasi alur Data Factory yang menggunakan skrip Python Anda.

Mendapatkan informasi akun

Alur Data Factory menggunakan nama akun Batch dan Storage, nilai kunci akun, dan titik akhir akun Batch Anda. Untuk mendapatkan informasi ini dari portal Azure:

  1. Dari bilah Pencarian Azure, cari dan pilih nama akun Batch Anda.

  2. Pada halaman akun Batch Anda, pilih Kunci dari navigasi kiri.

  3. Pada halaman Kunci , salin nilai berikut:

    • Akun kelompok
    • Titik akhir akun
    • Kunci akses utama
    • Nama akun penyimpanan
    • Key1

Membuat dan menjalankan pipa

  1. Jika Azure Data Factory Studio belum berjalan, pilih Luncurkan studio di halaman Data Factory Anda di portal Azure.

  2. Di Data Factory Studio, pilih ikon Pensil Penulis di navigasi kiri.

  3. Di bawah Sumber Daya Pabrik, pilih + ikon, lalu pilih Alur.

  4. Di panel Properti di sebelah kanan, ubah nama alur menjadi Jalankan Python.

    Cuplikan layar Data Factory Studio setelah Anda memilih Tambahkan alur.

  5. Di panel Aktivitas, perluas Layanan Batch, dan seret aktivitas Kustom ke area perancang pipeline.

  6. Di bawah kanvas desainer, pada tab Umum , masukkan testPipeline di bawah Nama.

    Cuplikan layar tab Umum untuk membuat tugas alur.

  7. Pilih tab Azure Batch , lalu pilih Baru.

  8. Lengkapi formulir Layanan tertaut baru sebagai berikut:

    • Nama: Masukkan nama untuk layanan tertaut, seperti AzureBatch1.
    • Kunci akses: Masukkan kunci akses utama yang Anda salin dari akun Batch Anda.
    • Nama akun: Masukkan nama akun Batch Anda.
    • Batch URL: Masukkan endpoint akun yang Anda salin dari akun Batch Anda, seperti https://batchdotnet.eastus.batch.azure.com.
    • Nama kumpulan: Masukkan kumpulan aktivitas kustom, kumpulan yang Anda buat di Batch Explorer.
    • Nama layanan terhubung akun penyimpanan: Pilih Baru. Pada layar berikutnya, masukkan Nama untuk layanan penyimpanan tertaut, seperti AzureBlobStorage1, pilih langganan Azure dan akun penyimpanan tertaut Anda, lalu pilih Buat.
  9. Di bagian bawah layar Batch Layanan tertaut baru, pilih Uji koneksi. Saat koneksi berhasil, pilih Buat.

    Cuplikan layar dari layar Layanan tertaut yang baru untuk tugas Batch.

  10. Pilih tab Pengaturan , dan masukkan atau pilih pengaturan berikut:

    • Perintah: Masukkan cmd /C python main.py.
    • Layanan tertaut sumber daya: Pilih layanan penyimpanan tertaut yang Anda buat, seperti AzureBlobStorage1, dan uji koneksi untuk memastikannya berhasil.
    • Jalur folder: Pilih ikon folder, lalu pilih kontainer input dan pilih OK. File dari folder ini diunduh dari kontainer ke simpul kumpulan sebelum skrip Python berjalan.

    Screenshot dari tab Pengaturan untuk tugas Batch.

  11. Pilih Validasi pada toolbar alur untuk memvalidasi alur.

  12. Pilih Debug untuk menguji alur dan memastikan alur berfungsi dengan benar.

  13. Pilih Terbitkan semua untuk menerbitkan alur.

  14. Pilih Tambahkan pemicu, lalu pilih Picu sekarang untuk menjalankan alur, atau Baru/Edit untuk menjadwalkannya.

    Cuplikan layar Validasi, Debug, Terbitkan semua, dan Tambahkan pilihan pemicu di Data Factory.

Menggunakan Batch Explorer untuk melihat file log

Jika menjalankan alur Anda menghasilkan peringatan atau kesalahan, Anda dapat menggunakan Batch Explorer untuk melihat file output stdout.txt dan stderr.txt untuk informasi selengkapnya.

  1. Di Batch Explorer, pilih Pekerjaan dari bilah sisi kiri.
  2. Pilih pekerjaan adfv2-custom-activity-pool.
  3. Pilih tugas yang memiliki kode keluar kegagalan.
  4. Lihat file stdout.txt dan stderr.txt untuk menyelidiki dan mendiagnosis masalah Anda.

Membersihkan sumber daya

Akun, pekerjaan, dan tugas batch gratis, tetapi node komputasi dikenakan biaya meskipun tidak menjalankan pekerjaan. Yang terbaik adalah mengalokasikan kumpulan simpul hanya sesuai kebutuhan, dan menghapus kumpulan ketika Anda selesai dengannya. Menghapus kumpulan data berarti menghapus semua output tugas pada simpul, serta simpul itu sendiri.

File input dan output tetap berada di akun penyimpanan dan dapat dikenakan biaya. Ketika Anda tidak lagi memerlukan file, Anda dapat menghapus file atau kontainer. Saat Anda tidak lagi memerlukan akun Batch atau akun penyimpanan tertaut, Anda dapat menghapusnya.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara menggunakan skrip Python dengan Batch Explorer, Storage Explorer, dan Data Factory untuk menjalankan beban kerja Batch. Untuk informasi selengkapnya tentang Data Factory, lihat Apa itu Azure Data Factory?