Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

إعدادات خادم zookeeper_*

تُهيِّئ هذه الإعدادات خادم ClickHouse، وهي مُولَّدة تلقائيًا من الشيفرة المصدرية لـ ClickHouse.

zookeeper

يحتوي هذا القسم على إعدادات تتيح لـ ClickHouse التفاعل مع عنقود ZooKeeper. يستخدم ClickHouse خدمة ZooKeeper لتخزين البيانات الوصفية الخاصة بالنسخ المتماثلة عند استخدام الجداول المكررة. وإذا لم تكن الجداول المكررة مستخدمة، فيمكن حذف هذا القسم من المعلمات.

يمكن تهيئة الإعدادات التالية باستخدام الوسوم الفرعية:

الإعداد الوصف
node نقطة نهاية ZooKeeper. يمكنك تعيين عدة نقاط نهاية. مثال: <node index="1"><host>example_host</host><port>2181</port></node>. تحدد السمة index ترتيب العقد عند محاولة الاتصال بعنقود ZooKeeper.
operation_timeout_ms الحد الأقصى لمهلة العملية الواحدة، بالمللي ثانية.
session_timeout_ms الحد الأقصى لمهلة جلسة العميل، بالمللي ثانية.
root (optional) الـ znode الذي يُستخدم جذرًا لـ znodes التي يستخدمها خادم ClickHouse.
fallback_session_lifetime.min (optional) الحد الأدنى لمدة بقاء جلسة zookeeper مع عقدة fallback عند تعذر توفر العقدة primary (load-balancing). يُحدد بالثواني. القيمة الافتراضية: 3 ساعات.
fallback_session_lifetime.max (optional) الحد الأقصى لمدة بقاء جلسة zookeeper مع عقدة fallback عند تعذر توفر العقدة primary (load-balancing). يُحدد بالثواني. القيمة الافتراضية: 6 ساعات.
identity (optional) اسم المستخدم وكلمة المرور اللذان يتطلبهما ZooKeeper للوصول إلى الـ znodes المطلوبة.
use_compression (optional) يفعّل Compression في بروتوكول Keeper إذا ضُبطت القيمة على true.
use_xid_64 (optional) يفعّل معرّفات transaction ذات 64 بت. اضبطه على true لتمكين تنسيق معرّف transaction الموسّع. القيمة الافتراضية: false.
pass_opentelemetry_tracing_context (optional) يفعّل تمرير Context الخاص بـ tracing في OpenTelemetry إلى طلبات Keeper. عند التمكين، سيتم إنشاء spans للتتبّع لعمليات Keeper، مما يتيح distributed tracing عبر ClickHouse وKeeper. راجع Tracing ClickHouse Keeper Requests لمزيد من التفاصيل. القيمة الافتراضية: false.

يوجد أيضًا الإعداد zookeeper_load_balancing (optional) الذي يتيح لك اختيار خوارزمية تحديد عقدة ZooKeeper:

اسم الخوارزمية الوصف
random يختار عشوائيًا إحدى عقد ZooKeeper.
in_order يختار أول عقدة ZooKeeper، وإذا لم تكن متاحة ينتقل إلى الثانية، وهكذا.
nearest_hostname يختار عقدة ZooKeeper ذات hostname الأكثر تشابهًا مع hostname الخاص بالخادم، وتتم مقارنة hostname ببادئة الاسم.
hostname_levenshtein_distance يماثل nearest_hostname، لكنه يقارن hostname باستخدام مسافة ليفنشتاين.
first_or_random يختار أول عقدة ZooKeeper، وإذا لم تكن متاحة فيختار عشوائيًا إحدى عقد ZooKeeper المتبقية.
round_robin يختار أول عقدة ZooKeeper، وإذا حدثت إعادة اتصال يختار العقدة التالية.

مثال على الإعداد

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- Optional. Chroot suffix. Should exist. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Optional. Zookeeper digest ACL string. -->
    <identity>user:password</identity>
    <!--<zookeeper_load_balancing>random / in_order / nearest_hostname / hostname_levenshtein_distance / first_or_random / round_robin</zookeeper_load_balancing>-->
    <zookeeper_load_balancing>random</zookeeper_load_balancing>
    <!-- Optional. Enable 64-bit transaction IDs. -->
    <use_xid_64>false</use_xid_64>
    <!-- Optional. Enable OpenTelemetry tracing context propagation. -->
    <pass_opentelemetry_tracing_context>false</pass_opentelemetry_tracing_context>
</zookeeper>

راجع أيضًا

zookeeper_log

إعدادات جدول النظام zookeeper_log.

يمكن ضبط الإعدادات التالية باستخدام الوسوم الفرعية:

يمكن تهيئة الإعدادات التالية باستخدام الوسوم الفرعية:

Setting Description Default Note
database اسم قاعدة البيانات.
table اسم جدول النظام.
engine تعريف محرك MergeTree لجدول نظام. لا يمكن استخدامه إذا كان partition_by أو order_by معرّفًا. وإذا لم يُحدَّد، فسيتم اختيار MergeTree افتراضيًا
partition_by مفتاح تقسيم مخصص لجدول نظام. إذا تم تحديد engine لجدول النظام، فيجب تحديد المَعلمة partition_by مباشرةً داخل 'engine'
ttl يحدد TTL للجدول. إذا تم تحديد engine لجدول النظام، فيجب تحديد المَعلمة ttl مباشرةً داخل 'engine'
order_by مفتاح ترتيب مخصص لجدول نظام. لا يمكن استخدامه إذا كان engine معرّفًا. إذا تم تحديد engine لجدول النظام، فيجب تحديد المَعلمة order_by مباشرةً داخل 'engine'
storage_policy اسم سياسة التخزين المراد استخدامها للجدول (اختياري). إذا تم تحديد engine لجدول النظام، فيجب تحديد المَعلمة storage_policy مباشرةً داخل 'engine'
settings مَعلمات إضافية تتحكم في سلوك MergeTree (اختياري). إذا تم تحديد engine لجدول النظام، فيجب تحديد المَعلمة settings مباشرةً داخل 'engine'
flush_interval_milliseconds الفاصل الزمني لتفريغ البيانات من المخزن المؤقت في الذاكرة إلى الجدول. 7500
max_size_rows الحد الأقصى لحجم السجلات بالأسطر. وعندما يصل عدد السجلات غير المُفرَّغة إلى max_size_rows، تُكتب السجلات إلى القرص. 1048576
reserved_size_rows حجم الذاكرة المحجوز مسبقًا للسجلات، محسوبًا بالأسطر. 8192
buffer_size_rows_flush_threshold قيمة الحد لعدد الأسطر. وإذا تم بلوغ هذا الحد، يبدأ تفريغ السجلات إلى القرص في الخلفية. max_size_rows / 2
flush_on_crash يحدد ما إذا كان ينبغي كتابة السجلات إلى القرص عند حدوث تعطل. false

بالإضافة إلى ذلك، يتحكم الإعداد التالي على مستوى الخادم في سياسة التفريغ الافتراضية لجميع جداول سجل النظام:

<default_system_log_flush_policy>
    <skip_alias_columns>true</skip_alias_columns>
</default_system_log_flush_policy>
الإعداد الوصف الافتراضي
skip_alias_columns عند ضبطه على true، تُستبعَد أعمدة ALIAS من مخططات جداول سجلات النظام. وهذا مطلوب لسجلات النظام المستندة إلى S3. false

مثال

<clickhouse>
    <zookeeper_log>
        <database>system</database>
        <table>zookeeper_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <ttl>event_date + INTERVAL 1 WEEK DELETE</ttl>
    </zookeeper_log>
</clickhouse>
Navigation