<keeper_map_path_prefix>.
على سبيل المثال:
إنشاء جدول
root_path- مسار ZooKeeper الذي سيُخزَّن فيهtable_name. يجب ألا يحتوي هذا المسار على البادئة المعرّفة في الإعداد<keeper_map_path_prefix>، لأن هذه البادئة ستُضاف تلقائيًا إلىroot_path. بالإضافة إلى ذلك، تكون الصيغةauxiliary_zookeeper_cluster_name:/some/pathمدعومة أيضًا، حيث إنauxiliary_zookeeper_clusterعبارة عن عنقود ZooKeeper معرّف داخل الإعداد<auxiliary_zookeepers>. وبشكل افتراضي، يُستخدم عنقود ZooKeeper المعرّف داخل الإعداد<zookeeper>.keys_limit- عدد المفاتيح المسموح به داخل الجدول. هذا حدّ مرن، وقد ينتهي الأمر في بعض الحالات الطرفية بوجود عدد أكبر من المفاتيح داخل الجدول.primary_key_name– أي اسم عمود ضمن قائمة الأعمدة.- يجب تحديد
primary key، وهو يدعم عمودًا واحدًا فقط في المفتاح الأساسي. سيُسلسَل المفتاح الأساسي بصيغة ثنائية باعتبارهnode nameداخل ZooKeeper. - ستُسلسَل الأعمدة الأخرى غير المفتاح الأساسي بصيغة ثنائية وفق الترتيب المقابل، وتُخزَّن كقيمة للعقدة الناتجة التي يحددها المفتاح المُسلسَل.
- ستُحسَّن الاستعلامات التي تستخدم التصفية بالمفتاح
equalsأوinإلى عمليات بحث عن عدة مفاتيح منKeeper، وإلا فستُجلَب جميع القيم.
(v1, v2, v3)، داخل /keeper_map_tables/keeper_map_table/data/serialized_key في Keeper.
بالإضافة إلى ذلك، سيكون لعدد المفاتيح حد مرن قدره 4.
إذا أُنشئت عدة جداول على مسار ZooKeeper نفسه، فستظل القيم محفوظة ما دام هناك جدول واحد على الأقل يستخدمه.
ونتيجة لذلك، يمكن استخدام عبارة ON CLUSTER عند إنشاء الجدول ومشاركة البيانات بين عدة مثيلات ClickHouse.
وبالطبع، من الممكن تشغيل CREATE TABLE يدويًا باستخدام المسار نفسه على مثيلات ClickHouse غير مرتبطة للحصول على التأثير نفسه لمشاركة البيانات.
العمليات المدعومة
عمليات الإدراج
KeeperMap، إذا لم يكن المفتاح موجودًا، فسيُنشأ إدخال جديد لهذا المفتاح.
إذا كان المفتاح موجودًا وكان الإعداد keeper_map_strict_mode مضبوطًا على true، فسيُطلق استثناء، وإلا فستُستبدل القيمة الخاصة بالمفتاح.
مثال:
الحذف
DELETE أو TRUNCATE.
إذا كان المفتاح موجودًا، وكان الإعداد keeper_map_strict_mode مضبوطًا على true، فلن تنجح عمليتا جلب البيانات وحذفها إلا إذا أمكن تنفيذهما بصورة ذرية.
التحديثات
ALTER TABLE. ولا يمكن تحديث المفتاح الأساسي.
إذا كان الإعداد keeper_map_strict_mode مضبوطًا على true، فلن تنجح عمليتا جلب البيانات وتحديثها إلا إذا نُفِّذتا بصورة ذرّية.