Skip to main content
تتوفّر هذه الإعدادات في system.settings، وهي مُولَّدة تلقائيًا من المصدر.

add_http_cors_header

كتابة ترويسة CORS لـ HTTP.

analyze_index_with_space_filling_curves

إذا كان فهرس جدول ما يتضمن منحنىً مالئًا للفراغ، مثل ORDER BY mortonEncode(x, y) أو ORDER BY hilbertEncode(x, y)، وكان الاستعلام يتضمن شروطًا على وسائطه، مثل x >= 10 AND x <= 20 AND y >= 20 AND y <= 30، فسيُستخدم المنحنى المالئ للفراغ في تحليل الفهرس.

analyzer_inline_views

عند تمكينه، يستبدل analyzer طرق العرض العادية (غير المُجسَّدة وغير المعلَّمة بمعلمات) بالاستعلامات الفرعية التي تعرّفها، مما يتيح تحسينات عابرة للحدود مثل دفع عبارات التصفية وتشذيب الأعمدة.

any_join_distinct_right_table_keys

يُمكّن السلوك القديم لخادم ClickHouse في عمليات ANY INNER|LEFT JOIN.
استخدم هذا الإعداد فقط للتوافق مع الإصدارات السابقة إذا كانت حالات الاستخدام لديك تعتمد على سلوك JOIN القديم.
عندما يكون السلوك القديم مُمكّنًا:
  • لا تتطابق نتائج العمليتين t1 ANY LEFT JOIN t2 وt2 ANY RIGHT JOIN t1 لأن ClickHouse يستخدم منطق ربط مفاتيح الجداول من اليسار إلى اليمين بعلاقة متعدد إلى واحد.
  • تحتوي نتائج عمليات ANY INNER JOIN على جميع صفوف الجدول الأيسر، كما هو الحال في عمليات SEMI LEFT JOIN.
عندما يكون السلوك القديم معطّلًا:
  • تتطابق نتائج العمليتين t1 ANY LEFT JOIN t2 وt2 ANY RIGHT JOIN t1 لأن ClickHouse يستخدم منطقًا يوفّر ربطًا للمفاتيح بعلاقة واحد إلى متعدد في عمليات ANY RIGHT JOIN.
  • تحتوي نتائج عمليات ANY INNER JOIN على صف واحد لكل مفتاح من الجدولين الأيسر والأيمن.
القيم الممكنة:
  • 0 — السلوك القديم معطّل.
  • 1 — السلوك القديم مُمكّن.
انظر أيضًا:

archive_adaptive_buffer_max_size_bytes

يحدّد الحجم الأقصى للمخزن المؤقت المتكيّف المستخدم عند الكتابة إلى ملفات الأرشيف (على سبيل المثال، أرشيفات tar

arrow_flight_request_descriptor_type

نوع الواصف المستخدم لطلبات Arrow Flight. يرسل ‏‘path’ اسم مجموعة البيانات كواصف path. ويرسل ‏‘command’ استعلام SQL كواصف command (وهو مطلوب لـ Dremio). القيم الممكنة:
  • ‘path’ — استخدم FlightDescriptor::Path (الافتراضي، ويعمل مع معظم خوادم Arrow Flight)
  • ‘command’ — استخدم FlightDescriptor::Command مع استعلام SELECT (مطلوب لـ Dremio)

backup_slow_all_threads_after_retryable_s3_error

عند ضبطه على true، يتم إبطاء جميع الخيوط التي تنفّذ طلبات S3 إلى نقطة نهاية النسخة الاحتياطية نفسها إذا واجه أي طلب S3 واحد خطأ S3 قابلاً لإعادة المحاولة، مثل ‘Slow Down’. وعند ضبطه على false، يتعامل كل خيط مع التراجع بين محاولات طلبات S3 بشكل مستقل عن الخيوط الأخرى.

cache_warmer_threads

لا يكون لهذا الإعداد تأثير إلا في ClickHouse Cloud. عدد الخيوط الخلفية المخصّصة لتنزيل أجزاء البيانات الجديدة استباقيًا إلى ذاكرة التخزين المؤقت لنظام الملفات عند تمكين cache_populated_by_fetch. استخدم القيمة صفر للتعطيل.

calculate_text_stack_trace

احسب تتبّع المكدس النصي عند حدوث استثناءات أثناء تنفيذ الاستعلام. هذا هو السلوك الافتراضي. ويتطلب ذلك عمليات بحث عن الرموز، ما قد يبطئ اختبارات التشويش عند تنفيذ عدد كبير جدًا من الاستعلامات الخاطئة. وفي الحالات العادية، ينبغي ألا تعطّل هذا الخيار.

cancel_http_readonly_queries_on_client_close

يلغي استعلامات HTTP للقراءة فقط (مثل SELECT) عند إغلاق العميل للاتصال دون انتظار الاستجابة. القيمة الافتراضية في Cloud: 1.

checksum_on_read

تحقّق من قيم التحقّق عند القراءة. يكون هذا الإعداد مفعّلًا افتراضيًا، ويجب أن يظل مفعّلًا دائمًا في بيئة الإنتاج. لا يُرجى توقّع أي فائدة من تعطيل هذا الإعداد. وقد يُستخدم فقط لأغراض التجربة واختبارات الأداء. لا ينطبق هذا الإعداد إلا على الجداول من عائلة MergeTree. أمّا في محركات الجداول الأخرى، وعند تلقّي البيانات عبر الشبكة، فيُجرى دائمًا التحقّق من قيم التحقّق.

connection_pool_max_wait_ms

زمن الانتظار بالمللي ثانية للحصول على اتصال عندما يكون مجمّع الاتصالات ممتلئًا. القيم الممكنة:
  • عدد صحيح موجب.
  • 0 — مهلة انتظار لا نهائية.

connections_with_failover_max_tries

الحد الأقصى لعدد محاولات الاتصال بكل نسخة متماثلة لمحرك الجدول Distributed.

convert_query_to_cnf

عند ضبطه على true، سيُحوَّل استعلام SELECT إلى الصيغة العادية الاقترانية (CNF). في بعض الحالات، قد يؤدي إعادة كتابة الاستعلام بصيغة CNF إلى تنفيذ أسرع (راجع مشكلة Github للاطلاع على الشرح). على سبيل المثال، لاحظ كيف لا يُعدَّل استعلام SELECT التالي (وهو السلوك الافتراضي):
الناتج هو:
لنضبط convert_query_to_cnf على true ونرَ ما الذي سيتغير:
لاحظ أن عبارة WHERE أُعيدت كتابتها إلى صيغة CNF، لكن مجموعة النتائج هي نفسها تمامًا — فالمنطق البولياني لم يتغير:
القيم الممكنة: true, false

count_matches_stop_at_empty_match

يتوقف العدّ بمجرد أن يطابق النمط طولًا صفريًا في الدالة countMatches.

cross_to_inner_join_rewrite

استخدم INNER JOIN بدلًا من الربط بالفاصلة/‏CROSS JOIN إذا كانت هناك تعبيرات ربط في قسم WHERE. القيم: 0 - بدون إعادة كتابة، 1 - طبّق ذلك عند الإمكان على الربط بالفاصلة/‏CROSS JOIN، 2 - افرض إعادة كتابة جميع عمليات الربط بالفاصلة، وCROSS JOIN عند الإمكان

data_type_default_nullable

يسمح بأن تكون أنواع البيانات في تعريفات الأعمدة التي لا تتضمن مُعدِّلات صريحة NULL or NOT NULL من النوع Nullable. القيم الممكنة:
  • 1 — تُضبط أنواع البيانات في تعريفات الأعمدة على Nullable افتراضيًا.
  • 0 — تُضبط أنواع البيانات في تعريفات الأعمدة على أنها غير Nullable افتراضيًا.

decimal_check_overflow

التحقق من تجاوز السعة في عمليات الحساب/المقارنة العشرية

deduplicate_blocks_in_dependent_materialized_views

يُفعِّل أو يعطِّل التحقق من إزالة التكرار للعروض المادية التي تتلقى البيانات من جداول Replicated*. القيم الممكنة:
  • 0 — معطّل.
  • 1 — مفعّل.
عند التمكين، يُجري ClickHouse إزالة التكرار للكتل في العروض المادية التي تعتمد على جداول Replicated*. يفيد هذا الإعداد في ضمان عدم احتواء العروض المادية على بيانات مكررة عند إعادة محاولة عملية الإدراج بسبب حدوث فشل. انظر أيضًا

defer_partition_pruning_after_final

عند التمكين (وهو الإعداد الافتراضي)، يتم تخطّي تقليم الأقسام في استعلامات FINAL على الجداول التي لا تكون أعمدة مفتاح القسم فيها جزءًا من مفتاح الفرز. وهذا هو السلوك الآمن من ناحية الصحة الذي أُدخل في 26.3: فقد يحتاج FINAL إلى إزالة تكرار الصفوف التي تشترك في مفتاح أساسي واحد لكنها موجودة في أقسام مختلفة، وسيؤدي تقليم الأقسام إلى استبعاد مثل هذه الصفوف بصمت من مدخلات إزالة التكرار. عند التعطيل، يُطبَّق تقليم الأقسام حتى مع FINAL، مما يعيد سلوك ما قبل 26.3. وقد يكون هذا أسرع بكثير للاستعلامات التي تحتوي على شروط WHERE على عمود القسم، لكنه يكون صحيحًا فقط عندما يستحيل وجود صفوف لها المفتاح الأساسي نفسه في أقسام مختلفة — مثل جداول سجل الأحداث التي يُحدَّد فيها عمود القسم وقت insert ولا يتغير مطلقًا. لا يؤثر هذا الإعداد إلا في الجداول المُقسَّمة التي لا تكون أعمدة مفتاح القسم فيها مُتضمَّنة ضمن مفتاح الفرز؛ أما في الجداول الأخرى، فيُطبَّق تقليم الأقسام دائمًا. القيم الممكنة:
  • 0 — طبّق تقليم الأقسام قبل FINAL (سلوك ما قبل 26.3، أسرع لكنه غير آمن في الحالة العامة).
  • 1 — أجّل تقليم الأقسام إلى ما بعد FINAL (الافتراضي، آمن من ناحية الصحة).

describe_compact_output

إذا كانت القيمة true، فأدرِج فقط أسماء الأعمدة وأنواعها في نتيجة الاستعلام DESCRIBE

اللهجة

اللهجة التي ستُستخدم لتحليل الاستعلام

discard_query_data

إذا كان مُمكّنًا، يتجاوز الخادم إرسال صفوف نتيجة الاستعلام إلى العميل. ومع ذلك، يظل الاستعلام يُنفَّذ ويُسجَّل بالكامل على الخادم، كما يواصل العميل تلقي الحزم الأخرى. يُستخدم لحركة المرور الظلية، واختبارات الأداء، والتشويش. ليس له أي تأثير على الاستعلامات الثانوية. يؤثر فقط في بروتوكول TCP الأصلي.

distinct_overflow_mode

يحدّد ما يحدث عند تجاوز كمية البيانات أحد الحدود. القيم الممكنة:
  • throw: رفع استثناء (الافتراضي).
  • break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن بيانات المصدر قد نفدت.

do_not_merge_across_partitions_select_final

حسّن أداء استعلامات FINAL بتجنّب عمليات الدمج عبر أقسام مختلفة. عند تفعيل هذا الإعداد، لن تُدمَج الأجزاء من أقسام مختلفة معًا أثناء استعلامات SELECT FINAL. وبدلًا من ذلك، سيقتصر الدمج على الأجزاء داخل كل قسم على حدة. ويمكن أن يحسّن ذلك أداء الاستعلام بشكل كبير عند العمل مع الجداول المُقسّمة.

dynamic_throw_on_type_mismatch

عند تطبيق دالة على عمود Dynamic باستخدام التنفيذ الافتراضي، يحدد هذا الإعداد ما يحدث للصفوف التي يكون نوعها الفعلي غير متوافق مع الدالة:
  • true (الافتراضي) — طرح استثناء.
  • false — إرجاع NULL لتلك الصفوف بدلًا من ذلك.

enforce_strict_identifier_format

عند تمكينه، يُسمح فقط بالمعرّفات التي تحتوي على أحرف وأرقام وشرطات سفلية.

engine_url_skip_empty_files

يفعّل أو يعطّل تخطي الملفات الفارغة في الجداول التي تستخدم محرك URL. القيم الممكنة:
  • 0 — يُطلق SELECT استثناءً إذا كان الملف الفارغ غير متوافق مع التنسيق المطلوب.
  • 1 — يعيد SELECT نتيجة فارغة للملف الفارغ.

exact_rows_before_limit

عند تفعيل هذا الإعداد، سيقدّم ClickHouse قيمة دقيقة لإحصائية rows_before_limit_at_least، ولكن سيكون ذلك على حساب ضرورة قراءة البيانات التي تسبق الحد بالكامل

except_default_mode

يضبط الوضع الافتراضي في استعلام EXCEPT. القيم الممكنة: سلسلة فارغة، ‘ALL’، ‘DISTINCT’. إذا كانت فارغة، فسيؤدي الاستعلام من دون وضع إلى إطلاق استثناء.

exclude_materialize_skip_indexes_on_insert

يستثني فهارس التخطي المحددة من بنائها وتخزينها أثناء عمليات INSERT. وستظل فهارس التخطي المستثناة تُبنى وتُخزَّن أثناء عمليات الدمج أو من خلال استعلام MATERIALIZE INDEX صريح. لا يكون له أي تأثير إذا كانت materialize_skip_indexes_on_insert مضبوطة على false. مثال:

execute_exists_as_scalar_subquery

نفِّذ استعلامات EXISTS الفرعية غير المرتبطة باعتبارها استعلامات فرعية ذات القيمة المفردة. وكما هو الحال في الاستعلامات الفرعية ذات القيمة المفردة، تُستخدم الذاكرة المؤقتة ويُطبَّق طيّ الثوابت على النتيجة. القيمة الافتراضية في Cloud: 0.

explain_query_plan_default

التنسيق الافتراضي الذي يستخدمه EXPLAIN PLAN. القيم الممكنة:
  • pretty (الافتراضي منذ 26.7) — تكون actions وcompact وpretty مضبوطة افتراضيًا على true، ما ينتج مخططًا موجزًا ومنسقًا ومشروحًا بالإجراءات.
  • legacy — المخرجات المستخدمة قبل 26.7.
يؤدي تحديد الخيارات actions أو compact أو pretty صراحةً في تعليمة EXPLAIN (على سبيل المثال، EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...) دائمًا إلى تجاوز هذا الإعداد. يحتفظ EXPLAIN PLAN مع json = 1 أو distributed = 1 بالقيم الافتراضية القديمة (قبل 26.7) بغض النظر عن هذا الإعداد، ما لم يتم ضبط actions أو compact أو pretty صراحةً. ولا يمكن لمخرجات pretty تمثيل نتائج JSON أو المخططات الموزعة لكل shard، لذا لا تُعرض هذه الأوضاع بشكل صحيح إلا بصيغة legacy.

extract_key_value_pairs_max_pairs_per_row

الأسماء البديلة: extract_kvp_max_pairs_per_row الحد الأقصى لعدد الأزواج التي يمكن أن تُنتجها الدالة extractKeyValuePairs. يُستخدم كإجراء احترازي لمنع استهلاك قدر كبير جدًا من الذاكرة.

extremes

ما إذا كان سيتم احتساب القيم القصوى (القيم الصغرى والكبرى في أعمدة نتيجة استعلام). يقبل 0 أو 1. القيمة الافتراضية هي 0 (معطّل). لمزيد من المعلومات، راجع قسم “القيم القصوى”.

fallback_to_stale_replicas_for_distributed_queries

يفرض توجيه الاستعلام إلى نسخة متماثلة قديمة إذا لم تكن البيانات المحدَّثة متاحة. راجع Replication. يختار ClickHouse أكثر النسخ المتماثلة القديمة صلةً بالجدول. يُستخدم عند تنفيذ SELECT من distributed table تشير إلى replicated tables. افتراضيًا، 1 (مُمكّن).

file_like_engine_default_partition_strategy

استراتيجية التقسيم الافتراضية للمحركات المشابهة للملفات.

filesystem_prefetches_limit

الحد الأقصى لعمليات الجلب المسبق. يشير الصفر إلى عدم وجود حد. ويُوصى باستخدام الإعداد filesystem_prefetches_max_memory_usage بدلًا من ذلك إذا كنت تريد تقييد عدد عمليات الجلب المسبق

final

يطبّق المُعدِّل FINAL تلقائيًا على جميع الجداول في الاستعلام التي يمكن تطبيق FINAL عليها، بما في ذلك الجداول المنضمّة والجداول في الاستعلامات الفرعية والجداول الموزعة. القيم الممكنة:
  • 0 - معطّل
  • 1 - مُمكّن
مثال:

finalize_projection_parts_synchronously

عند تمكين هذا الإعداد، تُنهى أجزاء الإسقاط بشكل متزامن أثناء INSERT، مما يقلل استخدام الذاكرة عند الذروة، ولكن على حساب تقليل توازي الرفع إلى S3. افتراضيًا، يظل تدفق المخرجات لكل إسقاط نشطًا إلى أن يُنهى الجزء بالكامل (بما في ذلك جميع الإسقاطات)، مما يتيح تداخل عمليات الرفع إلى S3، لكنه يزيد استخدام الذاكرة عند الذروة بما يتناسب مع عدد الإسقاطات. لا يؤثر هذا الإعداد إلا في مسار INSERT؛ أما الدمج وعمليات mutation فتُنهي الإسقاطات بشكل متزامن بالفعل.

flatten_nested

يضبط تنسيق البيانات لأعمدة Nested. القيم الممكنة:
  • 1 — يُسطَّح عمود Nested إلى مصفوفات منفصلة.
  • 0 — يبقى عمود Nested مصفوفة واحدة من قيم Tuple.
الاستخدام إذا ضُبط هذا الإعداد على 0، يمكن استخدام أي مستوى من التعشيق. أمثلة الاستعلام:
النتيجة:
الاستعلام:
النتيجة:

fsync_metadata

يؤدي إلى تمكين fsync أو تعطيله عند كتابة ملفات .sql. ويكون مفعّلًا افتراضيًا. قد يكون من المنطقي تعطيله إذا كان لدى الخادم ملايين الجداول الصغيرة التي تُنشأ وتُحذف باستمرار.

functions_h3_default_if_invalid

إذا كانت القيمة false، فستُصدر دوال h3، مثل h3CellAreaM2، استثناءً إذا كان الإدخال غير صالح. وإذا كانت القيمة true، فستُرجع 0 أو القيمة الافتراضية.

geo_distance_returns_float64_on_float64_arguments

إذا كانت الوسيطات الأربع للدوال geoDistance وgreatCircleDistance وgreatCircleAngle كلها من النوع Float64، فستُرجِع Float64 وتستخدم دقة مضاعفة في العمليات الحسابية الداخلية. في إصدارات ClickHouse السابقة، كانت هذه الدوال تُرجِع دائمًا Float32.

geotoh3_argument_order

تقبل الدالة ‘geoToH3’ ‎(lon, lat)‎ إذا ضُبطت على ‘lon_lat’، و‎(lat, lon)‎ إذا ضُبطت على ‘lat_lon’.

glob_expansion_max_elements

الحد الأقصى لعدد العناوين المسموح بها (مثل وحدات التخزين الخارجية ودوال الجداول وغيرها).

h3togeo_lon_lat_result_order

تعيد الدالة ‘h3ToGeo’ القيمة ‎(lon, lat) إذا كانت القيمة true، وإلا فتُعيد ‎(lat, lon).

handshake_timeout_ms

مهلة الانتظار بالمللي ثانية لاستلام حزمة Hello من النسخ المتماثلة أثناء المصافحة.

hedged_connection_timeout_ms

مهلة الاتصال لإنشاء اتصال مع نسخة متماثلة لطلبات Hedged

highlight_max_matches_per_row

يحدد الحد الأقصى لعدد المطابقات المبرزة في كل صف في الدالة highlight. استخدمه للحماية من الإفراط في استخدام الذاكرة عند إبراز الأنماط كثيرة التكرار في النصوص الكبيرة. القيم الممكنة:
  • عدد صحيح موجب.
حجم قائمة المرشحين الديناميكية عند البحث في فهرس تشابه المتجهات، ويُعرف أيضًا باسم ‘ef_search’.

hsts_max_age

مدة انتهاء صلاحية HSTS. تعني القيمة 0 تعطيل HSTS.

idle_connection_timeout

مهلة إغلاق اتصالات TCP الخاملة بعد عدد الثواني المحدد. القيم الممكنة:
  • عدد صحيح موجب (0 - إغلاق فوري، بعد 0 ثانية).

inject_random_order_for_select_without_order_by

إذا كان مُمكّنًا، فسيُدرج ‘ORDER BY rand()’ في استعلامات SELECT التي لا تحتوي على بند ORDER BY. يُطبَّق هذا فقط عندما يكون عمق الاستعلام الفرعي = 0. ولا تتأثر الاستعلامات الفرعية ولا INSERT INTO … SELECT. إذا كان التركيب على المستوى الأعلى هو UNION، فسيُدرج ‘ORDER BY rand()’ في جميع الفروع بشكل مستقل. هذا مفيد فقط لأغراض الاختبار والتطوير (إذ إن غياب ORDER BY يُعدّ مصدرًا لنتائج استعلام غير حتمية).

interactive_delay

الفاصل الزمني بالميكروثانية للتحقق مما إذا كان تنفيذ الطلب قد أُلغي وإرسال معلومات التقدّم.

intersect_default_mode

يُعيّن الوضع الافتراضي في استعلام INTERSECT. القيم الممكنة: سلسلة فارغة، ‘ALL’، ‘DISTINCT’. إذا كانت القيمة فارغة، فسيؤدي الاستعلام بدون وضع إلى إثارة استثناء.

least_greatest_legacy_null_behavior

إذا كان هذا الإعداد ممكّنًا، فستُرجِع الدالتان ‘least’ و ‘greatest’ القيمة NULL إذا كانت إحدى وسيطاتهما NULL.

legacy_column_name_of_tuple_literal

أدرِج أسماء جميع عناصر قيم Tuple الحرفية الكبيرة في أسماء الأعمدة بدلًا من hash. هذا الإعداد موجود فقط لأسباب التوافق. من المنطقي ضبطه على ‘true’ أثناء إجراء تحديث متدرّج للعنقود من إصدار أقل من 21.7 إلى إصدار أعلى.

limit

يحدّد الحد الأقصى لعدد الصفوف التي يمكن الحصول عليها من نتيجة الاستعلام. ويعدّل القيمة التي تحددها عبارة LIMIT، بحيث لا يمكن أن يتجاوز الحد المحدد في الاستعلام الحد الذي يفرضه هذا الإعداد. القيم الممكنة:
  • 0 — عدد الصفوف غير مقيّد.
  • عدد صحيح موجب.

load_marks_asynchronously

تحميل علامات MergeTree بصورة غير متزامنة القيمة الافتراضية في Cloud: 1.

lock_acquire_timeout

يحدّد عدد الثواني التي ينتظرها طلب القفل قبل أن يفشل. تُستخدم مهلة القفل للحماية من حالات التوقف المتبادل أثناء تنفيذ عمليات القراءة والكتابة على الجداول. وعند انتهاء المهلة وفشل طلب القفل، يرفع خادم ClickHouse الاستثناء “Locking attempt timed out! Possible deadlock avoided. Client should retry.” مع رمز الخطأ DEADLOCK_AVOIDED. القيم الممكنة:
  • عدد صحيح موجب (بالثواني).
  • 0 — لا توجد مهلة للقفل.

low_priority_query_wait_time_ms

عند استخدام آلية تحديد أولويات الاستعلامات (راجع الإعداد priority)، تنتظر الاستعلامات منخفضة الأولوية حتى تنتهي الاستعلامات ذات الأولوية الأعلى. يحدّد هذا الإعداد مدة هذا الانتظار.

make_distributed_plan

إنشاء خطة استعلام موزعة.

merge_table_max_tables_to_look_for_schema_inference

عند إنشاء جدول Merge من دون مخطط صريح، أو عند استخدام دالة الجدول merge، يُستنتج المخطط باعتباره اتحادًا لما لا يزيد على العدد المحدد من الجداول المطابقة. إذا كان عدد الجداول أكبر من ذلك، فسيُستنتج المخطط من أول عدد محدد من الجداول.

mongodb_throw_on_unsupported_query

إذا كان هذا الخيار مُمكّنًا، فستُرجِع جداول MongoDB خطأً عند تعذّر إنشاء استعلام MongoDB. وإلا، فسيقرأ ClickHouse الجدول بالكامل ويعالجه محليًا. لا ينطبق هذا الخيار عند تعيين ‘allow_experimental_analyzer=0’.

multiple_joins_try_to_keep_original_names

لا تُضِف أسماءً مستعارة إلى قائمة التعبيرات على المستوى الأعلى عند إعادة كتابة عمليات الربط المتعددة

normalize_function_names

تطبيع أسماء الدوال إلى صيغها القياسية

offset

يحدّد عدد الصفوف التي يجب تخطيها قبل البدء في إرجاع الصفوف من الاستعلام. ويُعدّل قيمة الإزاحة المحددة بواسطة عبارة OFFSET، بحيث تُجمع هاتان القيمتان. القيم الممكنة:
  • 0 — لا يتم تخطي أي صفوف.
  • عدد صحيح موجب.
مثال جدول الإدخال:
الاستعلام:
النتيجة:

paimon_target_snapshot_id

قراءة لقطة مستهدفة على مستوى الاستعلام لوضع Paimon التزايدي. عند القيمة >0، سيجلب القارئ فقط دلتا للـ snapshot_id المحدد دون تقديم المؤشر المائي المعتمد. القيمة الافتراضية: -1 (معطّل)

parallelize_output_from_storages

موازاة المخرجات في خطوة القراءة من وحدات التخزين. يتيح هذا إجراء معالجة الاستعلامات بالتوازي مباشرةً بعد القراءة من وحدة التخزين، إذا أمكن ذلك

partial_result_on_first_cancel

يسمح بإرجاع نتيجة جزئية للاستعلام بعد الإلغاء.

per_part_index_stats

يسجّل إحصاءات الفهرس لكل جزء

poll_interval

يُعلّق التنفيذ في حلقة انتظار الاستعلام على الخادم لعدد الثواني المحدد.

polyglot_dialect

لهجة SQL المصدر لمحوّل polyglot (مثل: ‘sqlite’ و’mysql’ و’postgresql’ و’snowflake’ و’duckdb’).

postgresql_fault_injection_probability

الاحتمال التقريبي لفشل استعلامات PostgreSQL الداخلية (المستخدمة في النسخ المتماثل). القيمة الصالحة ضمن النطاق [0.0f, 1.0f]

predicate_statistics_sample_rate

يجمع إحصاءات انتقائية عبارات الشرط في system.predicate_statistics_log. عند تعيينه إلى N > 0، تُؤخذ عيّنة من نحو 1/N من الاستعلامات (استنادًا إلى معرّف الاستعلام). 0 يعني تعطيله.

prefetch_buffer_size

الحد الأقصى لحجم مخزن الجلب المسبق المؤقت المستخدم للقراءة من نظام الملفات. تُقيَّد القيم التي تتجاوز 256 MiB عند 256 MiB، لأن مخزن القراءة المؤقت لا يحتاج مطلقًا إلى حجم أكبر. يسمح بعرض أسماء الأنواع المتداخلة بعمق بصورة منسقة مع مسافات بادئة في query DESCRIBE وفي الدالة toTypeName(). مثال:

priority

priority الاستعلام. 1 هي الأعلى، وكلما زادت القيمة انخفضت priority؛ 0 يعني عدم استخدام الأولويات.

push_external_roles_in_interserver_queries

تمكين تمرير أدوار المستخدم من العقدة المُرسِلة إلى العُقد الأخرى أثناء تنفيذ استعلام.

query_metric_log_interval

الفاصل الزمني، بالمللي ثانية، الذي تُجمع عنده بيانات query_metric_log لكل استعلام على حدة. إذا ضُبطت هذه القيمة على أي قيمة سالبة، فستأخذ قيمة collect_interval_milliseconds من إعداد query_metric_log، أو ستُستخدم القيمة الافتراضية 1000 إذا لم تكن موجودة. لتعطيل جمع البيانات لاستعلام واحد، اضبط query_metric_log_interval على 0. القيمة الافتراضية: -1

queue_max_wait_ms

مدة الانتظار في قائمة انتظار الطلبات، إذا تجاوز عدد الطلبات المتزامنة الحد الأقصى.

rabbitmq_max_wait_ms

مدة الانتظار لقراءة البيانات من RabbitMQ قبل إعادة المحاولة.

readonly

0 - لا توجد أي قيود على وضع القراءة فقط. 1 - يُسمح فقط بطلبات القراءة، وكذلك بتغيير الإعدادات المسموح بها صراحةً. 2 - يُسمح فقط بطلبات القراءة، وكذلك بتغيير الإعدادات، باستثناء الإعداد ‘readonly’.

recursive_cte_max_steps_in_type_inference

الحد الأقصى لعدد التكرارات لاستنتاج أنواع الأعمدة في تعبيرات الجدول الشائعة التعاودية. تُحدَّد أنواع الأعمدة عبر تطبيق getLeastSupertype تكراريًا على الطرفين غير التعاودي والتعاودي من UNION ALL حتى الوصول إلى حالة الاستقرار. اضبط القيمة على 0 لتعطيل توسيع الأنواع والاكتفاء بالأنواع من الجزء غير التعاودي فقط.

regexp_max_matches_per_row

يحدّد الحد الأقصى لعدد المطابقات لتعبير نمطي واحد في كل صف. استخدمه للحماية من الاستهلاك المفرط للذاكرة عند استخدام تعبير نمطي جشع في الدالة extractAllGroupsHorizontal. القيم الممكنة:
  • عدد صحيح موجب.

reject_expensive_hyperscan_regexps

استبعِد الأنماط التي يُحتمل أن يكون تقييمها مكلفًا باستخدام hyperscan (بسبب التضخم في حالات NFA)

remerge_sort_lowered_memory_bytes_ratio

إذا لم ينخفض استهلاك الذاكرة بعد إعادة الدمج بهذه النسبة، فسيتم تعطيل إعادة الدمج.

remote_read_min_bytes_for_seek

الحد الأدنى من البايتات المطلوب للقراءة عن بُعد (URL، S3) لإجراء seek بدلًا من القراءة مع ignore.

rename_files_after_processing

  • النوع: String
  • القيمة الافتراضية: سلسلة فارغة
يتيح هذا الإعداد تحديد نمط لإعادة تسمية الملفات التي تعالجها دالة الجدول file. عند تعيين هذا الخيار، ستُعاد تسمية جميع الملفات التي تقرؤها دالة الجدول file وفقًا للنمط المحدد باستخدام العناصر النائبة، وذلك فقط إذا تمت معالجة الملفات بنجاح.

العناصر النائبة

  • %a — اسم الملف الأصلي كاملًا (على سبيل المثال، “sample.csv”).
  • %f — اسم الملف الأصلي بدون امتداد (على سبيل المثال، “sample”).
  • %e — امتداد الملف الأصلي متضمّنًا النقطة (على سبيل المثال، “.csv”).
  • %t — الطابع الزمني (بالميكروثانية).
  • %% — علامة النسبة المئوية (”%”).

مثال

  • الخيار: --rename_files_after_processing="processed_%f_%t%e"
  • الاستعلام: SELECT * FROM file('sample.csv')
إذا تمت قراءة sample.csv بنجاح، فسيُعاد تسمية الملف إلى processed_sample_1683473210851438.csv

replication_wait_for_inactive_replica_timeout

يحدّد مدة الانتظار (بالثواني) حتى تنفّذ النسخ المتماثلة غير النشطة استعلامات ALTER أو OPTIMIZE أو TRUNCATE. القيم الممكنة:
  • 0 — عدم الانتظار.
  • عدد صحيح سالب — الانتظار لمدة غير محدودة.
  • عدد صحيح موجب — عدد الثواني المطلوب انتظارها.

reserve_memory

يُستخدم هذا الإعداد في جدولة أعباء العمل. وهو الحد الأدنى من RAM المحجوزة لاستخدامها لتشغيل استعلام على خادم واحد. ويُجرى الحجز عبر التسلسل الهرمي لـ WORKLOAD باستخدام قيمة إعداد الاستعلام workload. إذا لم تكن هناك ذاكرة كافية متاحة لعبء العمل، فسيُمنع الاستعلام من البدء وينتظر في حالة pending إلى أن يمكن تلبية الحجز. تعني القيمة 0 عدم وجود حجز. لا يسري هذا الإعداد إلا إذا تم إنشاء مورد MEMORY RESERVATION.

restore_replicated_merge_tree_to_shared_merge_tree

استبدال محرك الجدول من ReplicatedMergeTree إلى SharedMergeTree أثناء RESTORE. القيمة الافتراضية في Cloud: 1.

result_overflow_mode

يحدّد ما يجب فعله إذا تجاوز حجم النتيجة أحد الحدود. القيم الممكنة:
  • throw: يرفع استثناءً (الافتراضي).
  • break: يوقف تنفيذ الاستعلام ويُرجع نتيجة جزئية، كما لو أن البيانات المصدرية قد نفدت.
يشبه استخدام ‘break’ استخدام LIMIT. ولا يوقف Break التنفيذ إلا على مستوى الكتلة. وهذا يعني أن عدد الصفوف المُعادة يكون أكبر من max_result_rows، ومن مضاعفات max_block_size ويعتمد على max_threads. مثال
Query
Result

rows_before_aggregation

عند التمكين، يوفّر ClickHouse قيمة دقيقة لإحصائية rows_before_aggregation، التي تمثل عدد الصفوف المقروءة قبل التجمي

secondary_indices_enable_bulk_filtering

يُفعِّل خوارزمية التصفية المجمّعة للفهارس. ومن المتوقع أن تكون أفضل دائمًا، لكن هذا الإعداد متاح لأغراض التوافق والتحكم.

select_sequential_consistency

يختلف سلوك هذا الإعداد بين SharedMergeTree وReplicatedMergeTree. راجع SharedMergeTree consistency لمزيد من المعلومات حول سلوك select_sequential_consistency في SharedMergeTree.
يمكّن أو يعطّل الاتساق التسلسلي لاستعلامات SELECT. ويتطلب ذلك تعطيل insert_quorum_parallel (وهو مُمكَّن افتراضيًا). القيم الممكنة:
  • 0 — معطّل.
  • 1 — مُمكَّن.
الاستخدام عند تمكين الاتساق التسلسلي، لا يسمح ClickHouse للعميل بتنفيذ استعلام SELECT إلا على النسخ المتماثلة التي تحتوي على بيانات جميع استعلامات INSERT السابقة المُنفَّذة باستخدام insert_quorum. وإذا أشار العميل إلى نسخة متماثلة غير مكتملة، فسينشئ ClickHouse استثناءً. ولن يتضمن استعلام SELECT البيانات التي لم تُكتب بعد إلى نصاب النسخ المتماثلة. عندما يكون insert_quorum_parallel مُمكَّنًا (وهو الإعداد الافتراضي)، فإن select_sequential_consistency لا يعمل. ويعود ذلك إلى أن استعلامات INSERT المتوازية قد تُكتب إلى مجموعات مختلفة من النسخ المتماثلة ضمن النصاب، لذلك لا يوجد ما يضمن أن نسخة متماثلة واحدة قد استلمت جميع عمليات الكتابة. انظر أيضًا:

session_timezone

يضبط المنطقة الزمنية الضمنية للجلسة الحالية أو للاستعلام الحالي. المنطقة الزمنية الضمنية هي المنطقة الزمنية المُطبَّقة على القيم من النوع DateTime/DateTime64 التي لا تكون لها منطقة زمنية محددة صراحةً. يتقدّم هذا الإعداد على المنطقة الزمنية الضمنية المضبوطة عمومًا (على مستوى الخادم). تعني القيمة ” (سلسلة فارغة) أن المنطقة الزمنية الضمنية للجلسة الحالية أو للاستعلام الحالي تساوي المنطقة الزمنية للخادم. يمكنك استخدام الدالتين timeZone() وserverTimeZone() للحصول على المنطقة الزمنية للجلسة والمنطقة الزمنية للخادم. القيم الممكنة:
  • أي اسم منطقة زمنية من system.time_zones، مثل Europe/Berlin أو UTC أو Zulu
أمثلة:
عيّن المنطقة الزمنية للجلسة ‘America/Denver’ لقيمة DateTime الداخلية من دون تحديد المنطقة الزمنية صراحةً:
ليست كل الدوال التي تُحلِّل DateTime/DateTime64 تراعي session_timezone. وقد يؤدي ذلك إلى أخطاء خفية. راجع المثال والشرح التاليين.
يحدث هذا بسبب اختلاف مسارات التحليل:
  • إن toDateTime() من دون تحديد time zone صراحةً، والمستخدمة في استعلام SELECT الأول، تراعي الإعداد session_timezone والمنطقة الزمنية العامة.
  • في الاستعلام الثاني، يُحلَّل DateTime من String، ويرث النوع والمنطقة الزمنية للعمود الحالي d. لذلك، لا يُراعى الإعداد session_timezone ولا المنطقة الزمنية العامة.
انظر أيضًا

set_overflow_mode

يحدد ما يحدث عندما تتجاوز كمية البيانات أحد الحدود. القيم الممكنة:
  • throw: رفع استثناء (الافتراضي).
  • break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن بيانات المصدر قد نفدت.

single_join_prefer_left_table

عند وجود JOIN واحدة، وفي حال التباس المعرّف، فَضِّل الجدول الأيسر

skip_redundant_aliases_in_udf

لا تُستخدم الأسماء المستعارة الزائدة (ولا يُستعاض بها) في الدوال المعرّفة من قبل المستخدم، وذلك لتبسيط استخدامها. القيم الممكنة:
  • 1 — يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.
  • 0 — لا يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.
مثال الفرق بين حالتي التمكين والتعطيل: الاستعلام:
النتيجة:
الاستعلام:
النتيجة:

sleep_after_receiving_query_ms

مدة الانتظار بعد استلام الاستعلام في TCPHandler

snappy_mode

يتحكم هذا الإعداد في تنسيق wire المستخدم لضغط snappy لمسارات إدخال/إخراج الملفات العامة مثل file وurl. ويستخدم HTTP Content-Encoding: snappy دائمًا تنسيق framing ويتجاهل هذا الإعداد. لاحظ أن تنسيق كتل snappy الخام الناتج عن استدعاء واحد لـ snappy::Compress (على سبيل المثال، حمولات بروتوكول Prometheus البعيد التي يتعامل معها SnappyBasicReadBuffer) هو تنسيق wire منفصل وخاص بالبروتوكول، ولا يتحكم فيه هذا الإعداد. القيم الممكنة:
  • basic — تنسيق كتل Hadoop snappy. متوافق مع الملفات التي يقرأها Hadoop ويكتبها. يدعم القراءة والكتابة.
  • framed — تنسيق framing لـ Snappy، وهو تنسيق البث القياسي الذي تحدده Google. يدعم القراءة والكتابة.

sort_overflow_mode

يحدّد ما يحدث إذا تجاوز عدد الصفوف المستلَمة قبل الفرز أحد الحدود القصوى. القيم الممكنة:
  • throw: إثارة استثناء.
  • break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية.

splitby_max_substrings_includes_remaining_string

يتحكم هذا الإعداد في ما إذا كانت الدالة splitBy*() التي تستخدم الوسيط max_substrings > 0 ستضمّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة. القيم الممكنة:
  • 0 - لن تُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة.
  • 1 - ستُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة. هذا هو سلوك الدالة split() في Spark والطريقة ‘string.split()’ في بايثون.

stop_refreshable_materialized_views_on_startup

عند بدء تشغيل الخادم، يمنع جدولة طرق العرض المادية القابلة للتحديث، كما لو تم استخدام SYSTEM STOP VIEWS. ويمكنك تشغيلها يدويًا بعد ذلك باستخدام SYSTEM START VIEWS أو SYSTEM START VIEW <name>. وينطبق ذلك أيضًا على طرق العرض المنشأة حديثًا. ولا يؤثر هذا في طرق العرض المادية غير القابلة للتحديث.

tcp_keep_alive_timeout

الوقت بالثواني الذي يجب أن يبقى فيه الاتصال خاملاً قبل أن يبدأ TCP في إرسال مجسّات keepalive

temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds

مدة الانتظار لقفل ذاكرة التخزين المؤقت لنظام الملفات عند حجز مساحة للبيانات المؤقتة

throw_if_no_data_to_insert

يسمح بعمليات INSERT الفارغة أو يمنعها، وهو مفعّل افتراضيًا (ويؤدي إلى ظهور خطأ عند تنفيذ عملية insert فارغة). لا ينطبق هذا إلا على عمليات INSERT التي تستخدم clickhouse-client أو واجهة gRPC.

timeout_before_checking_execution_speed

يتحقق من أن سرعة التنفيذ ليست منخفضة جدًا (أي لا تقل عن min_execution_speed)، وذلك بعد انقضاء الوقت المحدد بالثواني.

transfer_overflow_mode

تحدد ما يحدث عند تجاوز كمية البيانات أحد الحدود. القيم الممكنة:
  • throw: إثارة استثناء (الافتراضي).
  • break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو كانت بيانات المصدر قد نفدت.

transform_null_in

يُمكّن اعتبار قيم NULL متساوية عند استخدام عامل التشغيل IN. بشكل افتراضي، لا يمكن مقارنة قيم NULL لأن NULL تعني قيمة غير معرّفة. لذلك، يجب أن تُرجع المقارنة expr = NULL دائمًا false. ومع هذا الإعداد، تُرجع NULL = NULL القيمة true مع عامل التشغيل IN. القيم الممكنة:
  • 0 — تُرجع مقارنة قيم NULL في عامل التشغيل IN القيمة false.
  • 1 — تُرجع مقارنة قيم NULL في عامل التشغيل IN القيمة true.
مثال لنأخذ الجدول null_in:
الاستعلام:
النتيجة:
الاستعلام:
النتيجة:
انظر أيضًا

traverse_shadow_remote_data_paths

اجتز البيانات المجمّدة (دليل الظل) بالإضافة إلى بيانات الجدول الفعلية عند تنفيذ استعلام على system.remote_data_paths

union_default_mode

يحدد وضعًا لدمج نتائج استعلام SELECT. لا يُستخدم هذا الإعداد إلا مع UNION عند عدم تحديد UNION ALL أو UNION DISTINCT صراحةً. القيم المحتملة:
  • 'DISTINCT' — يُخرج ClickHouse الصفوف الناتجة عن دمج الاستعلامات بعد إزالة الصفوف المكررة.
  • 'ALL' — يُخرج ClickHouse جميع الصفوف الناتجة عن دمج الاستعلامات، بما في ذلك الصفوف المكررة.
  • '' — يُنشئ ClickHouse استثناءً عند استخدامه مع UNION.
راجع الأمثلة في UNION.

unique_key_max_encoded_size

الحد الأقصى للحجم (بالبايت) للترميز الثنائي الذي يحافظ على الترتيب لصف واحد من UNIQUE KEY.

unknown_packet_in_send_data

أرسل حزمة غير معروفة بدلًا من حزمة البيانات رقم N

variant_throw_on_type_mismatch

عند تطبيق دالة على عمود Variant باستخدام التنفيذ الافتراضي، يحدد هذا الإعداد ما يحدث للصفوف التي يكون نوعها الفعلي غير متوافق مع الدالة:
  • true (الافتراضي) — طرح استثناء.
  • false — إرجاع NULL لهذه الصفوف بدلًا من ذلك.

wait_changes_become_visible_after_commit_mode

انتظر حتى تصبح التغييرات التي تم تثبيتها مرئية فعليًا في أحدث لقطة

عبء العمل

اسم عبء العمل المُستخدَم للوصول إلى الموارد

write_full_path_in_iceberg_metadata

يكتب المسارات الكاملة (بما في ذلك s3://) في ملفات البيانات الوصفية لـ Iceberg.

zstd_window_log_max

يسمح لك بتحديد القيمة القصوى لـ window log في ZSTD (لن يُستخدم مع عائلة MergeTree)
آخر تعديل في ٢٤ يوليو ٢٠٢٦