مشاركة عبر


تكوين فواصل مشغل Structured Streaming

يعالج Apache Spark Structured Streaming البيانات بشكل متزايد؛ يسمح لك التحكم في الفاصل الزمني للمشغل لمعالجة الدفعات باستخدام Structured Streaming لأحمال العمل بما في ذلك المعالجة في الوقت الفعلي تقريبا، أو تحديث قواعد البيانات كل 5 دقائق أو مرة واحدة في الساعة، أو معالجة الدفعات لجميع البيانات الجديدة ليوم أو أسبوع.

نظرا لأن Databricks Auto Loader يستخدم Structured Streaming لتحميل البيانات، فإن فهم كيفية عمل المشغلات يوفر لك أكبر قدر من المرونة للتحكم في التكاليف مع استيعاب البيانات بالتردد المطلوب.

تحديد فواصل المشغل المستندة إلى الوقت

يشير الدفق المنظم إلى فواصل المشغل المستندة إلى الوقت على أنها "دفعات صغيرة للفاصل الزمني الثابت". processingTime باستخدام الكلمة الأساسية ، حدد مدة زمنية كسلسلة، مثل .trigger(processingTime='10 seconds').

عند تحديد فاصل trigger زمني صغير جدا (أقل من عشرات الثوان)، قد يقوم النظام بإجراء عمليات فحص غير ضرورية لمعرفة ما إذا كانت البيانات الجديدة قد وصلت. تكوين وقت المعالجة لموازنة متطلبات زمن الانتقال ومعدل وصول البيانات إلى المصدر.

تكوين معالجة الدفعات التزايدية

هام

في Databricks Runtime 11.3 LTS وما فوق، Trigger.Once يتم إهمال الإعداد. توصي Databricks باستخدامها Trigger.AvailableNow لجميع أحمال عمل معالجة الدفعات المتزايدة.

يستهلك خيار المشغل المتوفر الآن جميع السجلات المتوفرة كدفعة تزايدية مع القدرة على تكوين حجم الدفعة مع خيارات مثل maxBytesPerTrigger (تختلف خيارات تغيير الحجم حسب مصدر البيانات).

يدعم Azure Databricks استخدام Trigger.AvailableNow لمعالجة الدفعات المتزايدة من العديد من مصادر الدفق المنظم. يتضمن الجدول التالي الحد الأدنى من إصدار وقت تشغيل Databricks المدعوم المطلوب لكل مصدر بيانات:

المصدر الحد الأدنى لإصدار وقت تشغيل Databricks
مصادر الملفات (JSON وParquet وما إلى ذلك) 9.1 LTS
Delta Lake 10.4 LTS
محمل تلقائي 10.4 LTS
Apache Kafka 10.4 LTS
Kinesis 13.1

ما هو الفاصل الزمني الافتراضي للمشغل؟

الإعدادات الافتراضية المتدفقة المنظمة إلى دفعات صغيرة ذات فاصل زمني ثابت تبلغ 500 مللي ثانية. توصي Databricks دائما بتحديد مخصص trigger لتقليل التكاليف المرتبطة بالتحقق مما إذا كانت البيانات الجديدة قد وصلت ومعالجة دفعات غير كبيرة الحجم.

تغيير فواصل المشغل بين عمليات التشغيل

يمكنك تغيير الفاصل الزمني للمشغل بين عمليات التشغيل أثناء استخدام نفس نقطة التحقق.

إذا توقفت مهمة Structured Streaming أثناء معالجة دفعة صغيرة، يجب أن تكتمل هذه الدفعة الصغيرة قبل تطبيق الفاصل الزمني للمشغل الجديد. على هذا النحو، قد تلاحظ معالجة دفعة صغيرة مع الإعدادات المحددة مسبقا بعد تغيير الفاصل الزمني للمشغل.

عند الانتقال من الفاصل الزمني المستند إلى الوقت إلى استخدام AvailableNow، قد يؤدي ذلك إلى معالجة دفعة صغيرة قبل معالجة جميع السجلات المتوفرة كدفعة تزايدية.

عند الانتقال من AvailableNow فاصل زمني إلى فاصل زمني، قد يؤدي ذلك إلى متابعة معالجة جميع السجلات التي كانت متوفرة عند تشغيل المهمة الأخيرة AvailableNow . هذا هو السلوك المتوقع.

إشعار

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

ما هو وضع المعالجة المستمرة؟

يدعم Apache Spark فاصلا زمنيا إضافيا لمشغل يعرف باسم المعالجة المستمرة. تم تصنيف هذا الوضع على أنه تجريبي منذ Spark 2.3؛ راجع فريق حساب Azure Databricks للتأكد من فهم المقايضات لنموذج المعالجة هذا.

لاحظ أن وضع المعالجة المستمر هذا لا يرتبط على الإطلاق بالمعالجة المستمرة كما هو مطبق في Delta Live Tables.