Skip to main content
تتوفر هذه الإعدادات في system.settings، وهي مُولَّدة تلقائيًا من المصدر.

materialized_views_ignore_errors

إذا كان هذا الإعداد مُمكّنًا، فإن الاستثناءات التي يتم طرحها أثناء تمرير البيانات إلى عرض مُجسَّد تابع (في SELECT الخاص به أو في وجهة الجدول الداخلي) تُسجَّل على أنها تحذير، وتنجح عبارة INSERT. وإذا كان معطّلًا (وهو الافتراضي)، فإن هذا الاستثناء يُمرَّر وتفشل عبارة INSERT. يتحكّم هذا الإعداد في الإبلاغ عن الأخطاء فقط. فهو لا يتسبب في التراجع عن الكتابة إلى الجدول المصدر، ولا يضمن ما إذا كانت الكتلة الأصلية قد تم تثبيتها بالفعل في الجدول المصدر عند حدوث خطأ في مسار معالجة العرض التابع. وعندما يكون معطّلًا (الافتراضي)، تفشل INSERT عند حدوث خطأ في العرض — أعد المحاولة باستخدام إزالة تكرار الإدراج (insert_deduplicate, deduplicate_blocks_in_dependent_materialized_views) لتحقيق تسليم exactly-once إلى الجدول المصدر وجميع العروض التابعة. وعندما يكون مُمكّنًا، تُبلِغ INSERT عن النجاح رغم التسليم الجزئي إلى العروض التي فشلت والسلاسل اللاحقة التابعة لها؛ استخدم هذا فقط عندما يجب ألّا تتعطل عمليات الكتابة إلى الجدول المصدر بسبب مشكلات في جهة العرض (على سبيل المثال، جداول system.*_log). راجع وثائق CREATE VIEW للاطلاع على الدلالات الكاملة.

materialized_views_populate_atomically

اجعل CREATE MATERIALIZED VIEW ... POPULATE ذريًا: يُربط العرض بعمليات الإدراج الجديدة في الجدول المصدر وتُؤخذ لقطة من البيانات الحالية معًا، ضمن قفل حصري قصير على الجدول المصدر، بحيث يُسلَّم كل صف يُدرج بالتزامن مع التعبئة إلى العرض مرة واحدة بالضبط، دون تفويت أو تكرار. بعد ذلك، تقرأ التعبئة، التي قد تستغرق وقتًا طويلًا، اللقطة المثبّتة من دون الاحتفاظ بأي قفل. هذه ذرية لمسار الإدراج المحلي: لا يتسلسل القفل الحصري إلا مع عمليات الإدراج التي تحصل على قفل تخزين هذا الجدول المصدر على الخادم نفسه، لذا يغطي ضمان المرة الواحدة بالضبط عمليات الإدراج الواردة عبر هذا الخادم. وليس هذا ضمانًا على مستوى الكتلة؛ فقد تُفوَّت الصفوف المُدرجة بالتزامن مع التعبئة أو تتكرر إذا أُدرجت على نسخة متماثلة أخرى من مصدر ReplicatedMergeTree، أو عبر مسار كتابة موزع، مثل جدول Distributed أو عبر ON CLUSTER. يتطلب ذلك أن يدعم الجدول المصدر قراءة لقطة مثبّتة في نقطة زمنية محددة (عائلة MergeTree وMemory). بالنسبة إلى أي مصدر آخر (عرض أو Distributed أو Merge أو عائلة Log أو جدول ليس ضمن قاعدة بيانات Atomic)، تعود التعبئة إلى السلوك القديم غير الذري (المسجل في سجل الخادم): تُقرأ البيانات الحالية باستخدام لقطة منفصلة غير منسقة، لذا قد تُفوَّت الصفوف المُدرجة أثناء التعبئة أو تتكرر. اضبط هذا الإعداد على false لفرض السلوك القديم على جميع المصادر. ينطبق ذلك على CREATE MATERIALIZED VIEW العادي فقط؛ إذ يستخدم CREATE OR REPLACE / REPLACE دائمًا التعبئة القديمة غير الذرية، وكذلك العرض المنشأ في قاعدة بيانات Replicated (حيث يتطلب POPULATE الإعداد database_replicated_allow_heavy_create)، لأن التعبئة الفاشلة لا يمكن التراجع عنها بصورة متسقة على جميع النسخ المتماثلة هناك.

materialized_views_squash_parallel_inserts

ادمج عمليات الإدخال المتوازية الناتجة عن استعلام INSERT واحد في الجدول الوجهة للعروض المُجسَّدة لتقليل عدد الأجزاء التي يتم إنشاؤها. إذا ضُبط هذا الإعداد على false وكان parallel_view_processing مفعّلًا، فسينشئ استعلام INSERT جزءًا في الجدول الوجهة لكل max_insert_thread.
آخر تعديل في ١٤ أغسطس ٢٠٢٦