فهم الاختلافات بين تنسيقات بيانات U-SQL وSpark

هام

تم إيقاف Azure Data Lake Analytics في 29 فبراير 2024. تعرف على المزيد من خلال هذا الإعلان.

بالنسبة لتحليلات البيانات، يمكن لمؤسستك استخدام Azure Synapse Analytics أو Microsoft Fabric.

إذا كنت ترغب في استخدام Azure Databricks أو Azure HDInsight Spark، نوصي بترحيل بياناتك من Azure Data Lake Storage Gen1 إلى Azure Data Lake Storage Gen2.

بالإضافة إلى نقل ملفاتك، ستحتاج أيضا إلى جعل بياناتك، المخزنة في جداول U-SQL، قابلة للوصول إلى Spark.

نقل البيانات المخزنة في ملفات Azure Data Lake Storage Gen1

يمكن نقل البيانات المخزنة في الملفات بطرق مختلفة:

نوصي بمراجعة المقالة ترقية حلول تحليلات البيانات الضخمة من Azure Data Lake Storage Gen1 إلى Azure Data Lake Storage Gen2

نقل البيانات المخزنة في جداول U-SQL

لا يفهم Spark جداول U-SQL. إذا كانت لديك بيانات مخزنة في جداول U-SQL، فستشغل مهمة U-SQL تستخرج بيانات الجدول وتحفظها بتنسيق يفهمه Spark. التنسيق الأنسب هو إنشاء مجموعة من ملفات Parquet باتباع تخطيط مجلد Hive metastore.

يمكن تحقيق الإخراج في U-SQL باستخدام مخرج Parquet المضمن واستخدام تقسيم الإخراج الديناميكي مع مجموعات الملفات لإنشاء مجلدات الأقسام. معالجة المزيد من الملفات أكثر من أي وقت مضى واستخدام Parquet يوفر مثالا على كيفية إنشاء مثل هذه البيانات الاستهلاكية Spark.

بعد هذا التحويل، يمكنك نسخ البيانات كما هو موضح في الفصل نقل البيانات المخزنة في ملفات Azure Data Lake Storage Gen1.

تحذيرات

  • دلالات البيانات عند نسخ الملفات، ستحدث النسخة على مستوى البايت. لذلك يجب أن تظهر نفس البيانات في حساب Azure Data Lake Storage Gen2. ومع ذلك، قد يفسر Spark بعض الأحرف بشكل مختلف. على سبيل المثال، قد يستخدم افتراضيا مختلفا لمحدد صف في ملف CSV. علاوة على ذلك، إذا كنت تقوم بنسخ البيانات المحرفة (من الجداول)، فقد يكون ل Parquet وSpark دقة ومقياس مختلفان لبعض القيم المحرفة (على سبيل المثال، عائمة) وقد يتعاملان مع القيم الخالية بشكل مختلف. على سبيل المثال، يحتوي U-SQL على دلالات C# للقيم الخالية، بينما يحتوي Spark على منطق ثلاثي القيم للقيم الخالية.

  • توفر جداول U-SQL لتنظيم البيانات (التقسيم) تقسيما على مستويين. المستوى الخارجي (PARTITIONED BY) حسب القيمة ويتم تعيينه في الغالب إلى نظام تقسيم Apache Hive/Spark باستخدام التسلسلات الهرمية للمجلدات. ستحتاج إلى التأكد من تعيين القيم الخالية إلى المجلد الصحيح. يقدم المستوى الداخلي (DISTRIBUTED BY) في U-SQL أربعة أنظمة توزيع: الترتيب الدوري والنطاق والتجزئة والتجزئة المباشرة. تدعم جداول Hive/Spark تقسيم القيمة أو تقسيم التجزئة فقط، باستخدام دالة تجزئة مختلفة عن U-SQL. عند إخراج بيانات جدول U-SQL، من المحتمل أنك ستتمكن فقط من تعيين تقسيم القيمة ل Spark وقد تحتاج إلى إجراء مزيد من الضبط لتخطيط البيانات اعتمادا على استعلامات Spark النهائية.

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