add_http_cors_header
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
any_join_distinct_right_table_keys
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
arrow_flight_request_descriptor_type
- ‘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
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
SELECT) عند إغلاق العميل للاتصال دون انتظار الاستجابة.
القيمة الافتراضية في Cloud: 1.
checksum_on_read
connection_pool_max_wait_ms
- عدد صحيح موجب.
- 0 — مهلة انتظار لا نهائية.
connections_with_failover_max_tries
convert_query_to_cnf
true، سيُحوَّل استعلام SELECT إلى الصيغة العادية الاقترانية (CNF). في بعض الحالات، قد يؤدي إعادة كتابة الاستعلام بصيغة CNF إلى تنفيذ أسرع (راجع مشكلة Github للاطلاع على الشرح).
على سبيل المثال، لاحظ كيف لا يُعدَّل استعلام SELECT التالي (وهو السلوك الافتراضي):
convert_query_to_cnf على true ونرَ ما الذي سيتغير:
WHERE أُعيدت كتابتها إلى صيغة CNF، لكن مجموعة النتائج هي نفسها تمامًا — فالمنطق البولياني لم يتغير:
count_matches_stop_at_empty_match
countMatches.
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — تُضبط أنواع البيانات في تعريفات الأعمدة على
Nullableافتراضيًا. - 0 — تُضبط أنواع البيانات في تعريفات الأعمدة على أنها غير
Nullableافتراضيًا.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
- 0 — معطّل.
- 1 — مفعّل.
defer_partition_pruning_after_final
FINAL على الجداول التي لا تكون
أعمدة مفتاح القسم فيها جزءًا من مفتاح الفرز. وهذا هو السلوك الآمن من ناحية الصحة
الذي أُدخل في 26.3: فقد يحتاج FINAL إلى إزالة تكرار الصفوف التي تشترك في
مفتاح أساسي واحد لكنها موجودة في أقسام مختلفة، وسيؤدي تقليم الأقسام إلى استبعاد
مثل هذه الصفوف بصمت من مدخلات إزالة التكرار.
عند التعطيل، يُطبَّق تقليم الأقسام حتى مع FINAL، مما يعيد سلوك ما قبل 26.3.
وقد يكون هذا أسرع بكثير للاستعلامات التي تحتوي على شروط WHERE على
عمود القسم، لكنه يكون صحيحًا فقط عندما يستحيل وجود صفوف لها المفتاح الأساسي نفسه
في أقسام مختلفة — مثل جداول سجل الأحداث التي يُحدَّد فيها عمود القسم وقت insert
ولا يتغير مطلقًا.
لا يؤثر هذا الإعداد إلا في الجداول المُقسَّمة التي لا تكون أعمدة مفتاح القسم فيها مُتضمَّنة
ضمن مفتاح الفرز؛ أما في الجداول الأخرى، فيُطبَّق تقليم الأقسام دائمًا.
القيم الممكنة:
- 0 — طبّق تقليم الأقسام قبل
FINAL(سلوك ما قبل 26.3، أسرع لكنه غير آمن في الحالة العامة). - 1 — أجّل تقليم الأقسام إلى ما بعد
FINAL(الافتراضي، آمن من ناحية الصحة).
describe_compact_output
اللهجة
discard_query_data
distinct_overflow_mode
throw: رفع استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن بيانات المصدر قد نفدت.
do_not_merge_across_partitions_select_final
dynamic_throw_on_type_mismatch
true(الافتراضي) — طرح استثناء.false— إرجاعNULLلتلك الصفوف بدلًا من ذلك.
enforce_strict_identifier_format
engine_url_skip_empty_files
- 0 — يُطلق
SELECTاستثناءً إذا كان الملف الفارغ غير متوافق مع التنسيق المطلوب. - 1 — يعيد
SELECTنتيجة فارغة للملف الفارغ.
exact_rows_before_limit
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
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
fallback_to_stale_replicas_for_distributed_queries
SELECT من distributed table تشير إلى replicated tables.
افتراضيًا، 1 (مُمكّن).
file_like_engine_default_partition_strategy
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage بدلًا من ذلك إذا كنت تريد تقييد عدد عمليات الجلب المسبق
final
- 0 - معطّل
- 1 - مُمكّن
finalize_projection_parts_synchronously
flatten_nested
- 1 — يُسطَّح عمود Nested إلى مصفوفات منفصلة.
- 0 — يبقى عمود Nested مصفوفة واحدة من قيم Tuple.
0، يمكن استخدام أي مستوى من التعشيق.
أمثلة
الاستعلام:
fsync_metadata
.sql. ويكون مفعّلًا افتراضيًا.
قد يكون من المنطقي تعطيله إذا كان لدى الخادم ملايين الجداول الصغيرة التي تُنشأ وتُحذف باستمرار.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance وgreatCircleDistance وgreatCircleAngle كلها من النوع Float64، فستُرجِع Float64 وتستخدم دقة مضاعفة في العمليات الحسابية الداخلية. في إصدارات ClickHouse السابقة، كانت هذه الدوال تُرجِع دائمًا Float32.
geotoh3_argument_order
glob_expansion_max_elements
h3togeo_lon_lat_result_order
handshake_timeout_ms
hedged_connection_timeout_ms
highlight_max_matches_per_row
- عدد صحيح موجب.
hnsw_candidate_list_size_for_search
hsts_max_age
idle_connection_timeout
- عدد صحيح موجب (0 - إغلاق فوري، بعد 0 ثانية).
inject_random_order_for_select_without_order_by
interactive_delay
intersect_default_mode
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
limit
- 0 — عدد الصفوف غير مقيّد.
- عدد صحيح موجب.
load_marks_asynchronously
1.
lock_acquire_timeout
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
multiple_joins_try_to_keep_original_names
normalize_function_names
offset
- 0 — لا يتم تخطي أي صفوف.
- عدد صحيح موجب.
paimon_target_snapshot_id
parallelize_output_from_storages
partial_result_on_first_cancel
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. عند تعيينه إلى N > 0، تُؤخذ عيّنة من نحو 1/N من الاستعلامات (استنادًا إلى معرّف الاستعلام). 0 يعني تعطيله.
prefetch_buffer_size
print_pretty_type_names
DESCRIBE وفي الدالة toTypeName().
مثال:
priority
push_external_roles_in_interserver_queries
query_metric_log_interval
collect_interval_milliseconds من إعداد query_metric_log، أو ستُستخدم القيمة الافتراضية 1000 إذا لم تكن موجودة.
لتعطيل جمع البيانات لاستعلام واحد، اضبط query_metric_log_interval على 0.
القيمة الافتراضية: -1
queue_max_wait_ms
rabbitmq_max_wait_ms
readonly
recursive_cte_max_steps_in_type_inference
getLeastSupertype تكراريًا على الطرفين غير التعاودي والتعاودي من UNION ALL حتى الوصول إلى حالة الاستقرار. اضبط القيمة على 0 لتعطيل توسيع الأنواع والاكتفاء بالأنواع من الجزء غير التعاودي فقط.
regexp_max_matches_per_row
- عدد صحيح موجب.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_read_min_bytes_for_seek
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
workload.
إذا لم تكن هناك ذاكرة كافية متاحة لعبء العمل، فسيُمنع الاستعلام من البدء وينتظر في حالة pending إلى أن يمكن تلبية الحجز.
تعني القيمة 0 عدم وجود حجز.
لا يسري هذا الإعداد إلا إذا تم إنشاء مورد MEMORY RESERVATION.
استبدال محرك الجدول من ReplicatedMergeTree إلى SharedMergeTree أثناء RESTORE.
القيمة الافتراضية في Cloud: 1.
result_overflow_mode
throw: يرفع استثناءً (الافتراضي).break: يوقف تنفيذ الاستعلام ويُرجع نتيجة جزئية، كما لو أن البيانات المصدرية قد نفدت.
Break التنفيذ إلا على
مستوى الكتلة. وهذا يعني أن عدد الصفوف المُعادة يكون أكبر من
max_result_rows، ومن مضاعفات max_block_size
ويعتمد على max_threads.
مثال
Query
Result
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 — مُمكَّن.
SELECT إلا على النسخ المتماثلة التي تحتوي على بيانات جميع استعلامات INSERT السابقة المُنفَّذة باستخدام insert_quorum. وإذا أشار العميل إلى نسخة متماثلة غير مكتملة، فسينشئ ClickHouse استثناءً. ولن يتضمن استعلام SELECT البيانات التي لم تُكتب بعد إلى نصاب النسخ المتماثلة.
عندما يكون insert_quorum_parallel مُمكَّنًا (وهو الإعداد الافتراضي)، فإن select_sequential_consistency لا يعمل. ويعود ذلك إلى أن استعلامات INSERT المتوازية قد تُكتب إلى مجموعات مختلفة من النسخ المتماثلة ضمن النصاب، لذلك لا يوجد ما يضمن أن نسخة متماثلة واحدة قد استلمت جميع عمليات الكتابة.
انظر أيضًا:
session_timezone
timeZone() وserverTimeZone() للحصول على المنطقة الزمنية للجلسة والمنطقة الزمنية للخادم.
القيم الممكنة:
- أي اسم منطقة زمنية من
system.time_zones، مثلEurope/BerlinأوUTCأوZulu
- إن
toDateTime()من دون تحديدtime zoneصراحةً، والمستخدمة في استعلامSELECTالأول، تراعي الإعدادsession_timezoneوالمنطقة الزمنية العامة. - في الاستعلام الثاني، يُحلَّل
DateTimeمنString، ويرث النوع والمنطقة الزمنية للعمود الحاليd. لذلك، لا يُراعى الإعدادsession_timezoneولا المنطقة الزمنية العامة.
set_overflow_mode
throw: رفع استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن بيانات المصدر قد نفدت.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.
- 0 — لا يتم تجاوز الأسماء المستعارة (الاستعاضة عنها) في UDFs.
sleep_after_receiving_query_ms
snappy_mode
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
max_substrings > 0 ستضمّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة.
القيم الممكنة:
0- لن تُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة.1- ستُضمَّن السلسلة المتبقية في العنصر الأخير من مصفوفة النتيجة. هذا هو سلوك الدالةsplit()في Spark والطريقة ‘string.split()’ في بايثون.
stop_refreshable_materialized_views_on_startup
SYSTEM START VIEWS أو SYSTEM START VIEW <name>. وينطبق ذلك أيضًا على طرق العرض المنشأة حديثًا. ولا يؤثر هذا في طرق العرض المادية غير القابلة للتحديث.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
throw_if_no_data_to_insert
clickhouse-client أو واجهة gRPC.
timeout_before_checking_execution_speed
min_execution_speed)،
وذلك بعد انقضاء الوقت المحدد بالثواني.
transfer_overflow_mode
throw: إثارة استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو كانت بيانات المصدر قد نفدت.
transform_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
union_default_mode
SELECT. لا يُستخدم هذا الإعداد إلا مع UNION عند عدم تحديد UNION ALL أو UNION DISTINCT صراحةً.
القيم المحتملة:
'DISTINCT'— يُخرج ClickHouse الصفوف الناتجة عن دمج الاستعلامات بعد إزالة الصفوف المكررة.'ALL'— يُخرج ClickHouse جميع الصفوف الناتجة عن دمج الاستعلامات، بما في ذلك الصفوف المكررة.''— يُنشئ ClickHouse استثناءً عند استخدامه معUNION.
unique_key_max_encoded_size
UNIQUE KEY.
unknown_packet_in_send_data
variant_throw_on_type_mismatch
true(الافتراضي) — طرح استثناء.false— إرجاعNULLلهذه الصفوف بدلًا من ذلك.