- معدل insert أعلى
- تحسين معدل نقل عمليات الدمج في الخلفية
- تحسين معدل نقل عمليات mutation
- عمليات scale-up وscale-down أسرع
- اتساق قوي أخف وزنًا لاستعلامات select
الاستبطان
system.replication_queue وsystem.replicated_fetches، إذ لا يحدث فيها أي replication للبيانات أو البيانات الوصفية. ومع ذلك، يوفّر SharedMergeTree بدائل مقابلة لهذين الجدولين.
system.virtual_parts
يُعد هذا الجدول البديل عن system.replication_queue في SharedMergeTree. وهو يخزّن معلومات عن أحدث مجموعة من الأجزاء الحالية، بالإضافة إلى الأجزاء المستقبلية قيد المعالجة، مثل عمليات الدمج وعمليات mutations والأقسام المحذوفة.
system.shared_merge_tree_fetches
يُعد هذا الجدول البديل عن system.replicated_fetches في SharedMergeTree. ويحتوي على معلومات عن عمليات الجلب الجارية حاليًا للمفاتيح الأساسية وقيم التحقّق إلى الذاكرة.
يكون SharedMergeTree مفعّلًا افتراضيًا.
بالنسبة إلى الخدمات التي تدعم محرك الجداول SharedMergeTree، لا تحتاج إلى تفعيل أي شيء يدويًا. يمكنك إنشاء الجداول بالطريقة نفسها كما في السابق، وسيُستخدم تلقائيًا محرك جداول يستند إلى SharedMergeTree ويتوافق مع المحرك المحدد في استعلام CREATE TABLE الخاص بك.
my_table باستخدام محرك الجدول SharedMergeTree.
لا تحتاج إلى تحديد ENGINE=MergeTree لأن default_table_engine=MergeTree هو الإعداد الافتراضي في ClickHouse Cloud. الاستعلام التالي مطابق للاستعلام أعلاه.
CREATE TABLE باستخدام SHOW CREATE TABLE:
الإعدادات
insert_quorum— جميع عمليات insert إلى SharedMergeTree هي quorum inserts (تُكتب إلى التخزين المشترك)، لذا لا حاجة إلى هذا الإعداد عند استخدام محرك الجدول SharedMergeTree.insert_quorum_parallel— جميع عمليات insert إلى SharedMergeTree هي quorum inserts (تُكتب إلى التخزين المشترك)، لذا لا حاجة إلى هذا الإعداد عند استخدام محرك الجدول SharedMergeTree.select_sequential_consistency— لا يتطلب quorum inserts، لكنه يفرض حملاً إضافيًا على clickhouse-keeper عند تنفيذ استعلاماتSELECT
الاتساق
insert في SharedMergeTree، لا تحتاج إلى تحديد إعدادات مثل insert_quorum أو insert_quorum_parallel. تكون عمليات الإدراج من نوع quorum inserts، ما يعني أن البيانات الوصفية ستُخزَّن في ClickHouse-Keeper، وستُكرَّر إلى ما لا يقل عن النصاب من مثيلات ClickHouse-Keeper. وسيجلب كل replica في الـ cluster لديك المعلومات الجديدة بشكل غير متزامن من ClickHouse-Keeper.
في معظم الحالات، لا ينبغي أن تحتاج إلى استخدام select_sequential_consistency أو SYSTEM SYNC REPLICA LIGHTWEIGHT. إذ إن replication غير المتزامنة تغطي معظم السيناريوهات وتتميّز بزمن latency منخفض جدًا. وفي الحالات النادرة التي تحتاج فيها فعلًا إلى منع reads المتقادمة، اتبع هذه التوصيات بالترتيب التالي حسب الأفضلية:
-
إذا كنت تنفّذ
queriesضمن session نفسها أو على العقدة نفسها لعمليات reads وعمليات الكتابة، فلا حاجة إلى استخدامselect_sequential_consistencyلأن الـ replica لديك ستكون لديها بالفعل أحدث البيانات الوصفية. -
إذا كنت تكتب إلى replica وتقرأ من أخرى، فيمكنك استخدام
SYSTEM SYNC REPLICA LIGHTWEIGHTلإجبار الـ replica على جلب البيانات الوصفية من ClickHouse-Keeper. -
استخدم
select_sequential_consistencyكإعداد ضمنqueryالخاصة بك.