هذه الإعدادات متاحة في system.settings، وهي مولَّدة تلقائيًا من الشيفرة المصدرية.
distributed_aggregation_memory_efficient
ما إذا كان وضع التوفير في الذاكرة للتجميع الموزّع مفعّلًا.
distributed_connections_pool_size
الحد الأقصى لعدد الاتصالات المتزامنة مع الخوادم البعيدة لأغراض المعالجة الموزعة لجميع الاستعلامات إلى جدول Distributed واحد. نوصي بتعيين قيمة لا تقل عن عدد الخوادم في العنقود.
distributed_foreground_insert
الأسماء البديلة: insert_distributed_sync
يُفعّل أو يعطّل إدراج البيانات المتزامن في جدول Distributed.
بشكل افتراضي، عند إدراج البيانات في جدول Distributed، يرسل خادم ClickHouse البيانات إلى عُقد العنقود في وضع الخلفية. وعند تعيين distributed_foreground_insert=1، تُعالَج البيانات بشكل متزامن، ولا تنجح عملية INSERT إلا بعد حفظ جميع البيانات على جميع الشظايا (وعلى نسخة متماثلة واحدة على الأقل لكل شظية إذا كانت internal_replication تساوي true).
القيم الممكنة:
0— تُدرَج البيانات في وضع الخلفية.1— تُدرَج البيانات في الوضع المتزامن.
القيمة الافتراضية في Cloud: 1.
انظر أيضًا
distributed_group_by_no_merge
لا تدمج حالات التجميع من خوادم مختلفة في المعالجة الموزعة للاستعلامات. يمكن استخدام هذا الإعداد عندما يكون من المؤكد وجود مفاتيح مختلفة على الشظايا المختلفة.
القيم الممكنة:
0— معطّل (تتم المعالجة النهائية للاستعلام على العقدة البادئة).1- لا تدمج حالات التجميع من خوادم مختلفة في المعالجة الموزعة للاستعلامات (تتم معالجة الاستعلام بالكامل على الشظية، وتقتصر مهمة العقدة البادئة على تمرير البيانات)، ويمكن استخدامه عندما يكون من المؤكد وجود مفاتيح مختلفة على الشظايا المختلفة.2- مثل1، ولكنه يطبّقORDER BYوLIMITعلى العقدة البادئة (وهذا غير ممكن عندما تتم معالجة الاستعلام بالكامل على العقدة البعيدة، كما فيdistributed_group_by_no_merge=1) ويمكن استخدامه للاستعلامات التي تحتوي علىORDER BYو/أوLIMIT.
مثال
SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock
┌SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock
┌distributed_insert_skip_read_only_replicas
سجل الإصدارات
| الإصدار | القيمة الافتراضية | التعليق |
|---|---|---|
| 24.3 | 0 | إذا كانت القيمة true، فسيتخطى INSERT إلى Distributed النسخ المتماثلة المخصصة للقراءة فقط |
يتيح تخطي النسخ المتماثلة المخصصة للقراءة فقط في استعلامات INSERT إلى Distributed.
القيم الممكنة:
- 0 — سيعمل INSERT كالمعتاد، وإذا وصل إلى نسخة متماثلة مخصصة للقراءة فقط فسيفشل
- 1 — ستتخطى العقدة البادئة النسخ المتماثلة المخصصة للقراءة فقط قبل إرسال البيانات إلى الشظايا.
distributed_product_mode
يغيّر هذا الإعداد سلوك الاستعلامات الفرعية الموزعة.
يطبّق ClickHouse هذا الإعداد عندما يحتوي الاستعلام على ناتج جداول موزعة، أي عندما يتضمن الاستعلام على جدول موزع استعلامًا فرعيًا غير GLOBAL لجدول موزع.
القيود:
- يُطبَّق فقط على الاستعلامات الفرعية من نوع IN وJOIN.
- فقط إذا كان قسم FROM يستخدم جدولًا موزعًا يحتوي على أكثر من شظية واحدة.
- إذا كان الاستعلام الفرعي يتعلق بجدول موزع يحتوي على أكثر من شظية واحدة.
- لا يُستخدم مع دالة remote الجدولية.
القيم الممكنة:
deny— القيمة الافتراضية. يمنع استخدام هذه الأنواع من الاستعلامات الفرعية (ويُرجع الاستثناء "Double-distributed in/JOIN subqueries is denied").local— يستبدل قاعدة البيانات والجدول في الاستعلام الفرعي بالنظيرين المحليين لخادم الوجهة (الشظية)، مع الإبقاء علىIN/JOINالعادي.global— يستبدل استعلامIN/JOINبـGLOBAL IN/GLOBAL JOIN.allow— يسمح باستخدام هذه الأنواع من الاستعلامات الفرعية.
distributed_push_down_limit
يُفعّل أو يُعطّل تطبيق LIMIT على كل شظية على حدة.
يتيح ذلك تجنّب ما يلي:
- إرسال صفوف إضافية عبر الشبكة؛
- معالجة الصفوف التي تتجاوز الحد على العقدة البادئة.
بدءًا من الإصدار 21.9، لم يعد بالإمكان الحصول على نتائج غير دقيقة، لأن distributed_push_down_limit لا يغيّر تنفيذ الاستعلام إلا إذا تحقق شرط واحد على الأقل من الشروط التالية:
- distributed_group_by_no_merge > 0.
- الاستعلام لا يحتوي على
GROUP BY/DISTINCT/LIMIT BY، لكنه يحتوي علىORDER BY/LIMIT. - الاستعلام يحتوي على
GROUP BY/DISTINCT/LIMIT BYمعORDER BY/LIMIT، و:- يكون optimize_skip_unused_shards مفعّلًا.
- يكون optimize_distributed_group_by_sharding_key مفعّلًا.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
انظر أيضًا: