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
parallel_view_processing مفعّلًا، فسينشئ استعلام INSERT جزءًا في الجدول الوجهة لكل max_insert_thread.