Azure Stream Analytics: الكتابة إلى جدول Delta Lake
Delta Lake هو تنسيق مفتوح يجلب الموثوقية والجودة والأداء إلى مستودعات البيانات. يمكنك استخدام Azure Stream Analytics لكتابة البيانات المتدفقة مباشرة إلى جداول Delta Lake دون كتابة سطر واحد من التعليمات البرمجية.
يمكن تكوين مهمة Stream Analytics للكتابة من خلال موصل إخراج Delta Lake أصلي، إما إلى جدول Delta جديد أو تم إنشاؤه مسبقا في حساب Azure Data Lake Storage Gen2. تم تحسين هذا الموصل لاستيعاب جداول Delta بسرعة عالية في وضع الإلحاق. كما يوفر دلالات لمرة واحدة بالضبط، ما يضمن عدم فقدان أي بيانات أو تكرارها. يتيح لك استيعاب تدفقات البيانات في الوقت الحقيقي من Azure Event Hubs في جداول Delta إجراء تحليلات تفاعلية أو دفعية مخصصة.
تكوين Delta Lake
لكتابة البيانات في Delta Lake، تحتاج إلى الاتصال بحساب Data Lake Storage Gen2. يسرد الجدول التالي الخصائص المتعلقة بتكوين Delta Lake.
اسم الخاصية | الوصف |
---|---|
تنسيق تسلسل الأحداث | تنسيق التسلسل لبيانات الإخراج. يتم دعم JSON وCSV وAvro وParquet. يتم سرد Delta Lake كخيار هنا. تكون البيانات بتنسيق Parquet إذا تم تحديد Delta Lake. |
اسم مسار دلتا | المسار المستخدم لكتابة جدول Delta Lake داخل الحاوية المحددة. يتضمن اسم الجدول. يوجد مزيد من المعلومات في القسم التالي. |
عمود القسم | اختياري. {field} الاسم من بيانات الإخراج إلى القسم. يتم دعم عمود قسم واحد فقط. يجب أن تكون قيمة العمود من string النوع. |
للاطلاع على القائمة الكاملة لتكوين Data Lake Storage Gen2، راجع نظرة عامة على Azure Data Lake Storage Gen2.
اسم مسار دلتا
يتم استخدام اسم مسار Delta لتحديد موقع واسم جدول Delta Lake المخزن في Data Lake Storage Gen2.
يمكنك استخدام مقطع مسار واحد أو أكثر لتعريف المسار إلى جدول Delta واسم جدول Delta. مقطع المسار هو السلسلة بين أحرف المحدد المتتالية (على سبيل المثال، الشرطة /
المائلة للأمام) التي تتوافق مع اسم دليل ظاهري.
اسم المقطع أبجدي رقمي ويمكن أن يتضمن المسافات والواصلات والتسطير السفلي. يتم استخدام مقطع المسار الأخير كاسم الجدول.
تتضمن القيود المفروضة على اسم مسار Delta ما يلي:
- أسماء الحقول ليست حساسة لحالة الأحرف. على سبيل المثال، لا يمكن للخدمة التمييز بين العمود
ID
وid
. - لا يسمح بأي اسم ديناميكي
{field}
. على سبيل المثال،{ID}
يتم التعامل معه كنص {ID}. - لا يمكن أن يتجاوز عدد مقاطع المسار التي تتضمن الاسم 254 مقطعا.
الأمثلة
أمثلة لاسم مسار Delta:
- مثال 1:
WestUS/CA/factory1/device-table
- مثال 2:
Test/demo
- مثال 3:
mytable
مثال على ملفات الإخراج:
- ضمن الحاوية المختارة، يكون مسار الدليل واسم
WestEurope/CA/factory1
مجلد جدول Delta هو جدول الجهاز. - ضمن الحاوية المختارة، يكون مسار الدليل واسم
Test
مجلد جدول Delta هو العرض التوضيحي. - ضمن الحاوية المختارة، يكون اسم مجلد جدول Delta هو mytable.
إنشاء جدول جديد
إذا لم يكن هناك جدول Delta Lake بنفس الاسم وفي الموقع المحدد بواسطة اسم مسار Delta، بشكل افتراضي، ينشئ Stream Analytics جدول Delta جديدا. يتم إنشاء هذا الجدول الجديد بالتكوين التالي:
- إصدار الكاتب 2.
- إصدار القارئ 1.
- الجدول ملحق فقط.
- يتم إنشاء مخطط الجدول مع مخطط السجل الأول الذي تمت مصادفته.
الكتابة إلى الجدول
إذا كان جدول Delta Lake موجودا بالفعل بنفس الاسم وفي الموقع المحدد بواسطة اسم مسار Delta، بشكل افتراضي، يكتب Stream Analytics سجلات جديدة إلى الجدول الموجود.
التسليم مرة واحدة بالضبط
يمكن سجل المعاملات Delta Lake من ضمان المعالجة مرة واحدة بالضبط. يوفر Stream Analytics أيضا تسليما مرة واحدة بالضبط عند إخراج البيانات إلى Data Lake Storage Gen2 أثناء تشغيل مهمة واحدة.
فرض المخطط
يعني فرض المخطط أن جميع عمليات الكتابة الجديدة إلى جدول يتم فرضها لتكون متوافقة مع مخطط الجدول الهدف في وقت الكتابة لضمان جودة البيانات.
يتم عرض كافة سجلات بيانات الإخراج على مخطط الجدول الموجود. إذا تمت كتابة الإخراج إلى جدول Delta جديد، يتم إنشاء مخطط الجدول مع السجل الأول. إذا كانت البيانات الواردة تحتوي على عمود إضافي واحد مقارنة بمخطط الجدول الموجود، فستكتب في الجدول بدون العمود الإضافي. إذا كانت البيانات الواردة تفتقد عمودا واحدا مقارنة بمخطط الجدول الموجود، تتم كتابتها في الجدول مع كون العمود فارغا.
إذا لم يكن هناك تقاطع بين مخطط جدول Delta ومخطط سجل مهمة الدفق، فإنه يعتبر مثيلا لفشل تحويل المخطط. هذه ليست الحالة الوحيدة التي تعتبر فشل تحويل المخطط.
عند فشل تحويل المخطط، يتبع سلوك الوظيفة نهج معالجة أخطاء بيانات الإخراج التي تم تكوينها على مستوى الوظيفة.
نقاط التحقق من سجل دلتا
تنشئ مهمة Stream Analytics نقاط فحص سجل Delta بشكل دوري بتنسيق V1. نقاط التحقق من سجل دلتا هي لقطات لجدول Delta وعادة ما تحتوي على اسم ملف البيانات الذي تم إنشاؤه بواسطة مهمة Stream Analytics. إذا كان عدد ملفات البيانات كبيرا، فإنه يؤدي إلى نقاط تحقق كبيرة، والتي يمكن أن تسبب مشكلات في الذاكرة في مهمة Stream Analytics.
القيود
- مفتاح القسم الديناميكي (تحديد اسم عمود مخطط السجل في مسار Delta) غير مدعوم.
- أعمدة الأقسام المتعددة غير مدعومة. إذا كنت تريد أعمدة أقسام متعددة، نوصي باستخدام مفتاح مركب في الاستعلام ثم تحديده كعمود القسم.
- يمكن إنشاء مفتاح مركب في الاستعلام. مثال على ذلك
"SELECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input]"
.
- يمكن إنشاء مفتاح مركب في الاستعلام. مثال على ذلك
- الكتابة إلى Delta Lake ملحقة فقط.
- لا يتوفر إيداع المخطط في اختبار الاستعلام.
- لا يتم تنفيذ ضغط الملفات الصغيرة بواسطة Stream Analytics.
- يتم إنشاء جميع ملفات البيانات دون ضغط.
- النوعان "التاريخ" و"العشري" غير معتمدين.
- تفشل الكتابة إلى الجداول الموجودة من Writer Version 7 أو أعلى مع ميزات الكاتب.
- مثال: فشل الكتابة إلى الجداول الموجودة مع تمكين متجهات الحذف .
- الاستثناءات هنا هي changeDataFeed وإلحاق ميزات WriterOnly.
- عندما تكتب وظيفة Stream Analytics دفعة من البيانات إلى Delta Lake، يمكنها إنشاء إجراءات إضافة ملف متعددة. عندما يكون هناك عدد كبير جدا من إجراءات إضافة ملف تم إنشاؤها لدفعة واحدة، يمكن أن تكون مهمة Stream Analytics عالقة.
- يتم تحديد عدد إجراءات إضافة ملف التي تم إنشاؤها بواسطة العديد من العوامل:
- حجم الدفعة. يتم تحديده بواسطة حجم البيانات ومعلمات الدفعات الحد الأدنى للصفوف والحد الأقصى للوقت.
- العلاقة الأساسية لقيم عمود القسم للدفعة.
- لتقليل عدد إجراءات إضافة ملف التي تم إنشاؤها لدفعة:
- تقليل تكوينات الدفعات الحد الأدنى للصفوف والحد الأقصى للوقت.
- تقليل العلاقة الأساسية لقيم عمود القسم عن طريق تعديل بيانات الإدخال أو اختيار عمود قسم مختلف.
- يتم تحديد عدد إجراءات إضافة ملف التي تم إنشاؤها بواسطة العديد من العوامل:
- يمكن لمهام Stream Analytics قراءة وكتابة نقاط التحقق V1 لجزء واحد فقط. نقاط التحقق متعددة الأقسام وتنسيق نقطة التحقق V2 غير مدعومة.