Azure Stream Analytics - الكتابة إلى جدول Delta Lake

Delta Lake هو تنسيق مفتوح يجلب الموثوقية والجودة والأداء إلى مستودعات البيانات. يسمح لك Azure Stream Analytics بكتابة البيانات المتدفقة مباشرة إلى جداول delta lake دون كتابة سطر واحد من التعليمات البرمجية.

يمكن تكوين مهمة تحليلات الدفق للكتابة من خلال موصل إخراج delta lake أصلي، إما إلى جدول Delta جديد أو تم إنشاؤه مسبقا في حساب Azure Data Lake Storage Gen2. تم تحسين هذا الموصل لاستيعاب عالي السرعة لجداول دلتا في وضع الإلحاق ويوفر أيضا دلالات مرة واحدة بالضبط، ما يضمن عدم فقدان أي بيانات أو تكرارها. يتيح لك استيعاب تدفقات البيانات في الوقت الحقيقي من Azure Event Hubs في جداول Delta إجراء تحليلات تفاعلية أو دفعية مخصصة.

تكوين Delta Lake

لكتابة البيانات في Delta Lake، تحتاج إلى الاتصال بحساب Azure Data Lake Storage Gen2. يسرد الجدول أدناه الخصائص المتعلقة بتكوين Delta Lake.

اسم الخاصية ‏‏الوصف
تنسيق تسلسل الأحداث تنسيق التسلسل لبيانات الإخراج. JSON، CSV، AVRO، Parquet مدعومة. يتم سرد Delta Lake كخيار هنا. تكون البيانات بتنسيق Parquet إذا تم تحديد Delta Lake.
اسم مسار دلتا المسار المستخدم لكتابة جدول delta lake داخل الحاوية المحددة. يتضمن اسم الجدول. مزيد من التفاصيل في القسم التالي.
عمود القسم اختياري. اسم {field} من بيانات الإخراج إلى القسم. يتم دعم عمود قسم واحد فقط. يجب أن تكون قيمة العمود من نوع السلسلة

للاطلاع على القائمة الكاملة لتكوين ADLS Gen2، راجع نظرة عامة على ALDS Gen2.

اسم مسار دلتا

يتم استخدام اسم مسار دلتا لتحديد موقع واسم جدول Delta Lake المخزن في Azure Data Lake Storage Gen2.

يمكنك اختيار استخدام مقطع مسار واحد أو أكثر لتعريف المسار إلى جدول دلتا واسم جدول دلتا. مقطع المسار هو السلسلة بين أحرف المحدد المتتالية (على سبيل المثال، الشرطة /المائلة للأمام) التي تتوافق مع اسم دليل ظاهري.

اسم المقطع أبجدي رقمي ويمكن أن يتضمن المسافات والواصلات والتسطير السفلي. يتم استخدام مقطع المسار الأخير كاسم الجدول.

تتضمن القيود المفروضة على اسم مسار دلتا القيود التالية:

  • أسماء الحقول ليست حساسة لحالة الأحرف. على سبيل المثال، لا يمكن للخدمة التمييز بين العمود ID و id.
  • لا يسمح بأي اسم ديناميكي {field}. على سبيل المثال، يتم التعامل مع {ID} كنص {ID}.
  • لا يمكن أن يتجاوز عدد مقاطع المسار التي تتضمن الاسم 254 مقطعا.

الأمثلة

أمثلة لاسم مسار دلتا:

  • مثال 1: WestUS/CA/factory1/device-table
  • مثال 2: اختبار/عرض توضيحي
  • مثال 3: mytable

مثال على ملفات الإخراج:

  1. ضمن الحاوية المختارة، سيكون WestEurope/CA/factory1 مسار الدليل واسم مجلد جدول دلتا هو جدول الجهاز.
  2. ضمن الحاوية المختارة، سيكون Test مسار الدليل وسيعرض اسم مجلد جدول دلتا.
  3. ضمن الحاوية المختارة، سيكون اسم مجلد جدول دلتا mytable.

إنشاء جدول جديد

إذا لم يكن هناك جدول Delta Lake بنفس الاسم وفي الموقع المحدد بواسطة اسم Delta Path، بشكل افتراضي، يقوم Azure Stream Analytics بإنشاء جدول دلتا جديد. يتم إنشاء هذا الجدول الجديد بالتكوين التالي:

الكتابة إلى الجدول

إذا كان هناك بالفعل جدول Delta Lake موجود بنفس الاسم وفي الموقع المحدد بواسطة اسم Delta Path، بشكل افتراضي، يكتب Azure Stream Analytics سجلات جديدة إلى الجدول الموجود.

التسليم مرة واحدة بالضبط

يمكن سجل المعاملات Delta Lake من ضمان المعالجة مرة واحدة بالضبط. يوفر Azure Stream Analytics أيضا تسليما مرة واحدة بالضبط عند إخراج البيانات إلى Azure Data Lake Storage Gen2 أثناء تشغيل مهمة واحدة.

فرض المخطط

يعني فرض المخطط أن جميع عمليات الكتابة الجديدة إلى جدول يتم فرضها لتكون متوافقة مع مخطط الجدول الهدف في وقت الكتابة، لضمان جودة البيانات.

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

إذا لم يكن هناك تقاطع بين مخطط جدول دلتا ومخطط سجل مهمة الدفق، فإنه يعتبر مثيلا لفشل تحويل المخطط. هذه ليست الحالة الوحيدة التي سيتم اعتبارها فشلا في تحويل المخطط.

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

نقاط التحقق من سجل دلتا

تنشئ مهمة Stream Analytics نقاط تفتيش Delta Log بشكل دوري بتنسيق V1. نقاط التحقق من Delta Log هي لقطات من جدول Delta وعادة ما تحتوي على اسم ملف البيانات الذي تم إنشاؤه بواسطة مهمة Stream Analytics. إذا كان عدد ملفات البيانات كبيرا، فإنه يؤدي إلى نقاط تحقق كبيرة، والتي يمكن أن تسبب مشكلات في الذاكرة في وظيفة Stream Analytics.

القيود

  • مفتاح القسم الديناميكي (تحديد اسم عمود مخطط السجل في مسار دلتا) غير مدعوم.
  • أعمدة الأقسام المتعددة غير مدعومة. إذا كانت هناك عدة أعمدة أقسام مطلوبة، فإن التوصية هي استخدام مفتاح مركب في الاستعلام ثم تحديده كعمود القسم.
    • يمكن إنشاء مفتاح مركب في الاستعلام على سبيل المثال: "SELECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input]".
  • الكتابة إلى Delta Lake ملحقة فقط.
  • لا يتوفر إيداع المخطط في اختبار الاستعلام.
  • لا يتم تنفيذ ضغط الملفات الصغيرة بواسطة Stream Analytics.
  • يتم إنشاء جميع ملفات البيانات دون ضغط.
  • النوعان "التاريخ" و"العشري" غير معتمدين.
  • تفشل الكتابة إلى الجداول الموجودة من Writer Version 7 أو أعلى مع ميزات الكاتب.
  • عندما تكتب وظيفة Stream Analytics دفعة من البيانات إلى Delta Lake، يمكنها إنشاء إجراء إضافة ملف متعدد. عندما يكون هناك عدد كبير جدا من إجراءات إضافة ملف تم إنشاؤها لدفعة واحدة، يمكن أن تكون مهمة Stream Analytics عالقة.
    • يتم تحديد عدد إجراءات إضافة ملف التي تم إنشاؤها بواسطة العديد من العوامل:
    • لتقليل عدد إجراءات إضافة ملف التي تم إنشاؤها لدفعة، يمكن اتخاذ الخطوات التالية:
  • يمكن لمهام Stream Analytics قراءة وكتابة جزء واحد فقط من نقاط التحقق V1. نقاط التحقق متعددة الأجزاء وتنسيق نقطة التحقق V2 غير مدعومة.

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