البرنامج التعليمي: تشغيل وظيفة Batch من خلال Data Factory باستخدام Batch Explorer وStorage Explorer وPython

يرشدك هذا البرنامج التعليمي خلال إنشاء وتشغيل مسار Azure Data Factory الذي يقوم بتشغيل حمل عمل Azure Batch. يتم تشغيل برنامج Python النصي على عقد Batch للحصول على إدخال قيمة مفصولة بفاصلة (CSV) من حاوية تخزين Azure Blob، ومعالجة البيانات، وكتابة الإخراج إلى حاوية تخزين مختلفة. يمكنك استخدام Batch Explorer لإنشاء تجمع الدفعات والعقد، وAzure Storage Explorer للعمل مع حاويات التخزين والملفات.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • استخدم Batch Explorer لإنشاء تجمع الدفعات والعقد.
  • استخدم Storage Explorer لإنشاء حاويات تخزين وتحميل ملفات الإدخال.
  • تطوير برنامج نصي Python لمعالجة بيانات الإدخال وإنتاج الإخراج.
  • إنشاء مسار Data Factory الذي يقوم بتشغيل حمل عمل Batch.
  • استخدم Batch Explorer لإلقاء نظرة على ملفات سجل الإخراج.

المتطلبات الأساسية

استخدام Batch Explorer لإنشاء تجمع الدفعات والعقد

استخدم Batch Explorer لإنشاء مجموعة من عقد الحوسبة لتشغيل حمل العمل الخاص بك.

  1. سجل الدخول إلى Batch Explorer باستخدام بيانات اعتماد Azure.

  2. حدد حساب Batch الخاص بك.

  3. حدد Pools على الشريط الجانبي الأيسر، ثم حدد الأيقونة + لإضافة تجمع.

    Screenshot of creating a pool in Batch Explorer.

  4. أكمل نموذج إضافة تجمع إلى الحساب كما يلي:

    • ضمن المعرف، أدخل custom-activity-pool.
    • ضمن Dedicated nodes، أدخل 2.
    • بالنسبة إلى Select an operating system configuration، حدد علامة التبويب Data science ، ثم حدد Dsvm Win 2019.
    • لاختيار حجم جهاز ظاهري، حدد Standard_F2s_v2.
    • بالنسبة إلى مهمة البدء، حدد إضافة مهمة بدء. في شاشة مهمة البدء، ضمن سطر الأوامر، أدخل cmd /c "pip install azure-storage-blob pandas"، ثم حدد تحديد. يقوم هذا الأمر بتثبيت الحزمة azure-storage-blob على كل عقدة عند بدء تشغيلها.
  5. حدد حفظ وإغلاق.

استخدام Storage Explorer لإنشاء حاويات كائن ثنائي كبير الحجم

استخدم Storage Explorer لإنشاء حاويات كائن ثنائي كبير الحجم لتخزين ملفات الإدخال والإخراج، ثم تحميل ملفات الإدخال.

  1. سجل الدخول إلى Storage Explorer باستخدام بيانات اعتماد Azure.
  2. في الشريط الجانبي الأيسر، حدد موقع حساب التخزين المرتبط بحساب Batch الخاص بك وقم بتوسيعه.
  3. انقر بزر الماوس الأيمن فوق Blob Containers، وحدد Create Blob Container، أو حدد Create Blob Container من Actions في أسفل الشريط الجانبي.
  4. أدخل الإدخال في حقل الإدخال.
  5. إنشاء حاوية كائن ثنائي كبير الحجم أخرى باسم الإخراج.
  6. حدد حاوية الإدخال، ثم حدد Upload>Upload files في الجزء الأيمن.
  7. في شاشة تحميل الملفات ، ضمن الملفات المحددة، حدد علامة الحذف ... بجوار حقل الإدخال.
  8. استعرض للوصول إلى موقع ملف iris.csv الذي تم تنزيله، وحدد فتح، ثم حدد تحميل.

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

تطوير برنامج نصي Python

يقوم البرنامج النصي Python التالي بتحميل ملف مجموعة بيانات iris.csv من حاوية إدخال Storage Explorer، ويعالج البيانات، ويحفظ النتائج في حاوية الإخراج.

يحتاج البرنامج النصي إلى استخدام سلسلة الاتصال لحساب Azure Storage المرتبط بحساب Batch الخاص بك. للحصول على سلسلة الاتصال:

  1. في مدخل Microsoft Azure، ابحث عن اسم حساب التخزين المرتبط بحساب Batch وحدده.
  2. في صفحة حساب التخزين، حدد مفاتيح الوصول من جزء التنقل الأيمن ضمن الأمان + الشبكات.
  3. ضمن key1، حدد Show بجوار الاتصال ion string، ثم حدد رمز Copy لنسخ سلسلة الاتصال.

الصق سلسلة الاتصال في البرنامج النصي التالي، واستبدل <storage-account-connection-string> العنصر النائب. احفظ البرنامج النصي كملف يسمى main.py.

هام

لا ينصح بكشف مفاتيح الحساب في مصدر التطبيق لاستخدام الإنتاج. يجب تقييد الوصول إلى بيانات الاعتماد والإشارة إليها في التعليمات البرمجية باستخدام المتغيرات أو ملف التكوين. من الأفضل تخزين مفاتيح حساب الدفعة والتخزين في 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)

قم بتشغيل البرنامج النصي محليا لاختبار الوظيفة والتحقق من صحتها.

python main.py

يجب أن ينتج البرنامج النصي ملف إخراج يسمى iris_setosa.csv يحتوي فقط على سجلات البيانات التي تحتوي على الأنواع = setosa. بعد التحقق من أنه يعمل بشكل صحيح، قم بتحميل ملف البرنامج النصي main.py إلى حاوية إدخال Storage Explorer.

إعداد مسار Data Factory

إنشاء مسار Data Factory الذي يستخدم برنامج Python النصي والتحقق من صحته.

الحصول على معلومات الحساب

يستخدم مسار Data Factory أسماء حسابات الدفعة والتخزين وقيم مفتاح الحساب ونقطة نهاية حساب Batch. للحصول على هذه المعلومات من مدخل Microsoft Azure:

  1. من شريط Azure Search، ابحث عن اسم حساب Batch وحدده.

  2. في صفحة حساب Batch، حدد Keys من جزء التنقل الأيمن.

  3. في صفحة Keys ، انسخ القيم التالية:

    • حساب الدفعة
    • نقطة نهاية الحساب
    • مفتاح الوصول الأساسي
    • Storage account name
    • Key1

إنشاء وتشغيل التدفقات.

  1. إذا لم يكن Azure Data Factory Studio قيد التشغيل بالفعل، فحدد Launch studio في صفحة Data Factory في مدخل Microsoft Azure.

  2. في Data Factory Studio، حدد أيقونة قلم رصاص Author في جزء التنقل الأيمن.

  3. ضمن موارد المصنع، حدد الأيقونة + ، ثم حدد البنية الأساسية لبرنامج ربط العمليات التجارية.

  4. في جزء Propertiesعلى اليمين، قم بتغيير اسم المسار إلى Run Python.

    Screenshot of Data Factory Studio after you select Add pipeline.

  5. في جزء Activities ، قم بتوسيع Batch Service، واسحب النشاط المخصص إلى سطح مصمم البنية الأساسية لبرنامج ربط العمليات التجارية.

  6. أسفل لوحة المصمم، في علامة التبويب عام ، أدخل testPipeline ضمن الاسم.

    Screenshot of the General tab for creating a pipeline task.

  7. حدد علامة التبويب Azure Batch، ثم حدد جديد.

  8. أكمل نموذج الخدمة المرتبطة الجديدة كما يلي:

    • الاسم: أدخل اسما للخدمة المرتبطة، مثل AzureBatch1.
    • مفتاح الوصول: أدخل مفتاح الوصول الأساسي الذي نسخته من حساب Batch الخاص بك.
    • اسم الحساب: أدخل اسم حساب Batch الخاص بك.
    • عنوان URL للدفعة: أدخل نقطة نهاية الحساب التي نسختها من حساب Batch الخاص بك، مثل https://batchdotnet.eastus.batch.azure.com.
    • اسم التجمع: أدخل custom-activity-pool، التجمع الذي أنشأته في Batch Explorer.
    • اسم الخدمة المرتبطة بحساب التخزين: حدد جديد. في الشاشة التالية، أدخل اسما لخدمة التخزين المرتبطة، مثل AzureBlobStorage1، وحدد اشتراك Azure وحساب التخزين المرتبط، ثم حدد إنشاء.
  9. في أسفل شاشة خدمة Batch New المرتبطة، حدد Test connection. عند نجاح الاتصال، حدد Create.

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

  10. حدد علامة التبويب الإعدادات، وأدخل الإعدادات التالية أو حددها:

    • الأمر: أدخل cmd /C python main.py.
    • الخدمة المرتبطة بالموارد: حدد خدمة التخزين المرتبطة التي أنشأتها، مثل AzureBlobStorage1، واختبر الاتصال للتأكد من نجاحها.
    • مسار المجلد: حدد أيقونة المجلد، ثم حدد حاوية الإدخال وحدد موافق. يتم تنزيل الملفات من هذا المجلد من الحاوية إلى عقد التجمع قبل تشغيل البرنامج النصي Python.

    Screenshot of the Settings tab for the Batch job.

  11. حدد Validate على شريط أدوات البنية الأساسية لبرنامج ربط العمليات التجارية للتحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية.

  12. حدد Debug لاختبار المسار والتأكد من أنه يعمل بشكل صحيح.

  13. حدد نشر الكل لنشر البنية الأساسية لبرنامج ربط العمليات التجارية.

  14. حدد إضافة مشغل، ثم حدد المشغل الآن لتشغيل المسار، أو جديد/تحرير لجدولته.

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

استخدام Batch Explorer لعرض ملفات السجل

إذا كان تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية ينتج تحذيرات أو أخطاء، يمكنك استخدام Batch Explorer لإلقاء نظرة على stdout.txt وملفات الإخراج stderr.txt لمزيد من المعلومات.

  1. في Batch Explorer، حدد Jobs من الشريط الجانبي الأيسر.
  2. حدد وظيفة adfv2-custom-activity-pool.
  3. حدد مهمة بها رمز إنهاء فشل.
  4. اعرض ملفات stdout.txt وملفات stderr.txt للتحقيق في مشكلتك وتشخيصها.

تنظيف الموارد

حسابات الدفعات والوظائف والمهام مجانية، ولكن عقد الحوسبة تتحمل رسوما حتى عندما لا تشغل وظائف. من الأفضل تخصيص تجمعات العقد فقط حسب الحاجة، وحذف التجمعات عند الانتهاء منها. يؤدي حذف التجمعات إلى حذف جميع مخرجات المهام على العقد والعقد نفسها.

تظل ملفات الإدخال والإخراج في حساب التخزين ويمكن أن تتحمل رسوما. عندما لم تعد بحاجة إلى الملفات، يمكنك حذف الملفات أو الحاويات. عندما لم تعد بحاجة إلى حساب Batch أو حساب تخزين مرتبط، يمكنك حذفه.

الخطوات التالية

في هذا البرنامج التعليمي، تعلمت كيفية استخدام برنامج نصي Python مع Batch Explorer وStorage Explorer وData Factory لتشغيل حمل عمل Batch. لمزيد من المعلومات حول Data Factory، راجع ما هو Azure Data Factory؟