تُهيِّئ هذه الإعدادات خادم 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>