تحويل البيانات باستخدام نشاط Spark في Azure Data Factory وتحليلات Synapse

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

ينفذ نشاط Spark في مصنع بيانات و البنية الأساسية لبرنامج ربط العمليات التجارية بـ Synapse برنامج Spark على نظام مجموعة HDInsight الخاصة بك أو عند الطلب . تعتمد هذه المقالة على مقالة أنشطة تحويل البيانات، والتي تقدم نظرة عامة على تحويل البيانات وأنشطة التحويل المدعومة. عند استخدام خدمة Spark المرتبطة عند الطلب، تقوم الخدمة تلقائياً بإنشاء نظام مجموعة Spark لك في الوقت المناسب لمعالجة البيانات ثم تحذف نظام المجموعة بمجرد اكتمال المعالجة.

إضافة نشاط Spark إلى البنية الأساسية باستخدام واجهة المستخدم

لاستخدام نشاط Spark في البنية الأساسية، أكمل الخطوات التالية:

  1. ابحث عن Spark في جزء أنشطة البنية الأساسية، واسحب نشاط Spark إلى لوحة البنية الأساسية.

  2. حدد نشاط Spark الجديد على اللوحة إذا لم يكن محددًا بالفعل.

  3. حدد علامة التبويب HDI Cluster لتحديد أو إنشاء خدمة مرتبطة جديدة إلى مجموعة HDInsight التي سيتم استخدامها لتنفيذ نشاط Spark.

    يعرض واجهة المستخدم لنشاط Spark.

  4. حدد علامة التبويب Script / Jar لتحديد أو إنشاء خدمة مرتبطة بوظيفة جديدة إلى حساب Azure Storage الذي سيستضيف البرنامج النصي الخاص بك. حدد مسارًا إلى الملف الذي سيتم تنفيذه هناك. يمكنك أيضًا تكوين التفاصيل المتقدمة بما في ذلك مستخدم وكيل وتكوين تصحيح الأخطاء والوسيطات ومعلمات تكوين Spark ليتم تمريرها إلى البرنامج النصي.

    يعرض واجهة المستخدم لعلامة التبويب Script / Jar لنشاط Spark.

خصائص نشاط Spark

هذا هو تعريف JSON عينة من نشاط Spark:

{
    "name": "Spark Activity",
    "description": "Description",
    "type": "HDInsightSpark",
    "linkedServiceName": {
        "referenceName": "MyHDInsightLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "sparkJobLinkedService": {
            "referenceName": "MyAzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "rootPath": "adfspark",
        "entryFilePath": "test.py",
        "sparkConfig": {
            "ConfigItem1": "Value"
        },
        "getDebugInfo": "Failure",
        "arguments": [
            "SampleHadoopJobArgument1"
        ]
    }
}

يصف الجدول التالي خصائص JSON المستخدمة في تعريف JSON:

الخاصية الوصف مطلوب
الاسم اسم النشاط في التدفق. ‏‏نعم‬
الوصف نص يصف ما يفعله النشاط. لا
النوع بالنسبة لنشاط Spark، يكون نوع النشاط HDInsightSpark. ‏‏نعم‬
linkedServiceName اسم خدمة HDInsight Spark Linked التي يعمل عليها برنامج Spark. للتعرف على هذه الخدمة المرتبطة، راجع مقالة خدمات الحوسبة المرتبطة. ‏‏نعم‬
SparkJobLinkedService خدمة Azure Storage المرتبطة التي تحتوي على ملف وظيفة Spark والتبعيات والسجلات. يتم دعم Azure Blob Storage والخدمات المرتبطة بـ ADLS Gen2 فقط هنا. إذا لم تقم بتحديد قيمة لهذه الخاصية، يتم استخدام التخزين المقترنة مع نظام المجموعة HDInsight. يمكن أن تكون قيمة هذه الخاصية فقط مرتبطة في خدمة تخزين Azure. لا
rootPath حاوية ومجلد Azure Blob الذي يحتوي على الملف Spark. اسم الملف حساس لحالة الأحرف. راجع قسم بنية المجلد (القسم التالي) للحصول على تفاصيل حول بنية هذا المجلد. ‏‏نعم‬
entryFilePath المسار النسبي للمجلد جذر رمز/حزمة Spark. يجب أن يكون ملف الإدخال ملف Python أو ملف .jar. ‏‏نعم‬
className تطبيق Java / Spark الطبقة الرئيسية لا
الحجج قائمة وسيطات سطر الأوامر إلى برنامج Spark. لا
proxyUser حساب المستخدم للانتحال لتنفيذ برنامج Spark لا
sparkConfig حدد قيم خصائص Spark configuration المدرجة في الموضوع: Spark Configuration - خصائص التطبيق . لا
getDebugInfo تحديد متى يتم نسخ ملفات سجل Spark إلى مخزن Azure المستخدم بواسطة مجموعة HDInsight (أو) المحددة بواسطة sparkJobLinkedService. القيم المسموح بها: بلا، دوماً، أو فشل. القيمة الافتراضية: بلا. لا

بنية المجلد

تعد وظائف Spark أكثر قابلية للتوسع من وظائف Pig/Apache Hive. بالنسبة إلى وظائف Spark، يمكنك توفير تبعيات متعددة مثل حزم jar (الموضوعة في java CLASSPATH) وملفات Python (الموضوعة في PYTHONPATH) وأي ملفات أخرى.

إنشاء بنية المجلد التالية في تخزين Azure Blob المشار إليها بواسطة خدمة ربط HDInsight. بعد ذلك، قم بتحميل الملفات التابعة إلى المجلدات الفرعية المناسبة في المجلد الجذر الذي يمثله entryFilePath. على سبيل المثال، قم بتحميل ملفات Python إلى المجلد الفرعي pyFiles وملفات jar إلى مجلد jars الفرعي للمجلد الجذر. في وقت التشغيل، تتوقع الخدمة بنية المجلد التالية في تخزين Azure Blob:

المسار ‏‏الوصف مطلوب نوع
. (جذر) المسار الجذر لوظيفة Spark في خدمة التخزين المرتبطة ‏‏نعم‬ مجلد
<معرّف المستخدم> المسار الذي يشير إلى ملف إدخال وظيفة Spark ‏‏نعم‬ الملف
./jars يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها في Java classpath الخاص بنظام المجموعة. لا مجلد
ملفات ./pyFiles يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها في PYTHONPATH الخاص بنظام المجموعة لا مجلد
./files يتم تحميل جميع الملفات الموجودة ضمن هذا المجلد ووضعها على دليل المشغَّل لا مجلد
./archives جميع الملفات الموجودة تحت هذا المجلد غير مضغوطة لا مجلد
./logs المجلد الذي يحتوي على سجلات من نظام المجموعة Spark. لا مجلد

فيما يلي مثال على وحدة تخزين تحتوي على ملفي وظيفة Spark في تخزين Azure Blob المشار إليه بواسطة خدمة HDInsight المرتبطة.

SparkJob1
	main.jar
	files
		input1.txt
		input2.txt
	jars
		package1.jar
		package2.jar
	logs
	
	archives
	
	pyFiles

SparkJob2
	main.py
	pyFiles
		scrip1.py
		script2.py
	logs
	
	archives
	
	jars
	
	files
	

راجع المقالات التالية التي تشرح كيفية تحويل البيانات بطرق أخرى: