add_http_cors_header
additional_result_filter
SELECT.
لا يُطبَّق هذا الإعداد على أي استعلام فرعي.
مثال
additional_table_filters
aggregate_function_input_format
state— سلسلة ثنائية تحتوي على الحالة المُسلسلة (الافتراضي). وهذا هو السلوك الافتراضي، حيث يُتوقع أن تكون قيم AggregateFunction بيانات ثنائية.value— يتوقع التنسيق قيمة واحدة لوسيطة الدالة التجميعية، أو في حال وجود عدة وسائط، Tuple منها. سيُفك تسلسلها باستخدام IDataType أو DataTypeTuple المقابل، ثم تُجمَّع لتكوين الحالة.array— يتوقع التنسيق Array من القيم، كما هو موضح في الخيارvalueأعلاه. وستُجمَّع جميع عناصر Array لتكوين الحالة.
aggregate_function_input_format = 'value':
aggregate_function_input_format = 'array':
value وarray أبطأ من تنسيق state الافتراضي، لأنهما يتطلبان إنشاء القيم وتجميعها أثناء عملية الإدراج.
aggregate_functions_null_for_empty
- 0 — معطّل.
- 1 — مفعّل.
aggregate_functions_null_for_empty = 0 ستكون النتيجة:
aggregate_functions_null_for_empty = 1 فستكون النتيجة:
aggregation_in_order_max_block_bytes
aggregation_memory_efficient_merge_threads
max_threads.
ai_function_credentials
provider وendpoint وmodel وapi_key الاختياري وغيرها). عند تركها فارغة، يُرفَع استثناء.
ai_function_embedding_max_batch_size
aiEmbed. تُجمَّع النصوص في دفعات بهذا الحجم لتقليل العبء الزائد الناتج عن استدعاءات واجهة برمجة تطبيقات. على سبيل المثال، ينتج عن 500 نصًا فريدًا مع حجم دفعة قدره 100 عدد 5 طلبات HTTP.
ai_function_max_api_calls_per_query
ai_function_max_input_tokens_per_query
usage في استجابتهم (OpenAI وAnthropic وvLLM). أمّا المزوّدون الذين لا يرسلون معلومات استخدام الرموز (وأبرزهم HuggingFace TEI)، فيجعلون العداد يبقى عند 0 — استخدم ai_function_max_api_calls_per_query بدلًا من ذلك لتقييد مثل هذه الاستدعاءات.
ai_function_max_output_tokens_per_query
usage في استجابتهم (OpenAI وAnthropic وvLLM). ولا ينطبق على دوال embedding (وخاصة aiEmbed)، لأنها لا تُنتج أي رموز إخراج مطلقًا.
ai_function_max_retries
ai_function_retry_initial_delay_ms.
ai_function_request_timeout_sec
ai_function_max_retries.
ai_function_retry_initial_delay_ms
ai_function_throw_on_error
ai_function_throw_on_quota_exceeded
ai_function_max_input_tokens_per_query أو ai_function_max_output_tokens_per_query أو ai_function_max_api_calls_per_query) يُجهِض الاستعلام مع إطلاق استثناء. وإذا كانت القيمة false، فستتلقى الصفوف المتبقية القيمة الافتراضية لنوع العمود (سلسلة فارغة لنوع String).
allow_aggregate_partitions_independently
allow_archive_path_syntax
<archive> :: <file> إذا كان للأرشيف الامتداد الصحيح.
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
Progress لم يتم تحديثه خلال مهلة receive_data_timeout)؛ وإلا فإننا نعطّل تغيير النسخة المتماثلة بعد أول مرة نحرز فيها تقدمًا.
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_deprecated_database_ordinary
allow_deprecated_error_prone_window_functions
allow_deprecated_snowflake_conversion_functions
snowflakeToDateTime و snowflakeToDateTime64 و dateTimeToSnowflake و dateTime64ToSnowflake مهجورة ومُعطَّلة افتراضيًا.
يُرجى استخدام الدوال snowflakeIDToDateTime و snowflakeIDToDateTime64 و dateTimeToSnowflakeID و dateTime64ToSnowflakeID بدلًا منها.
لإعادة تفعيل الدوال المهجورة (على سبيل المثال، خلال فترة انتقالية)، يُرجى ضبط هذا الإعداد على true.
allow_deprecated_syntax_for_merge_tree
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_experimental_ai_functions
aiGenerateContent). تُجري هذه الوظائف استدعاءات HTTP خارجية إلى مزوّدي خدمات الذكاء الاصطناعي.
allow_experimental_analyzer
enable_analyzer
السماح باستخدام محلل الاستعلامات الجديد.
allow_experimental_cleanup_old_data_files_compaction
allow_experimental_codecs
allow_experimental_database_glue_catalog
allow_database_glue_catalog
السماح باستخدام محرك قاعدة البيانات التجريبي DataLakeCatalog مع catalog_type = ‘glue’
القيمة الافتراضية في Cloud: 1.
allow_experimental_database_hms_catalog
allow_experimental_database_iceberg
allow_database_iceberg
السماح باستخدام محرك قاعدة البيانات التجريبي DataLakeCatalog مع catalog_type = ‘iceberg’
القيمة الافتراضية في Cloud: 1.
allow_experimental_database_materialized_postgresql
allow_experimental_database_paimon_rest_catalog
catalog_type = 'paimon_rest'
allow_experimental_database_unity_catalog
allow_database_unity_catalog
السماح باستخدام محرك قاعدة البيانات التجريبي DataLakeCatalog مع catalog_type = ‘unity’
القيمة الافتراضية في Cloud: 1.
allow_experimental_delta_kernel_rs
allow_experimental_delta_lake_writes
allow_experimental_expire_snapshots
ALTER TABLE ... EXECUTE expire_snapshots.
allow_experimental_funnel_functions
allow_experimental_geo_types_in_iceberg
geometry وgeography على أنها من النوع Geometry (Variant) في ClickHouse.
allow_experimental_hash_functions
allow_experimental_iceberg_compaction
allow_experimental_join_right_table_sorting
join_to_sort_minimum_perkey_rows وjoin_to_sort_maximum_table_rows، يُعاد ترتيب الجدول الأيمن حسب المفتاح لتحسين الأداء في عمليات ربط تجزئة من نوع left أو inner.
allow_experimental_json_lazy_type_hints
allow_experimental_kafka_offsets_storage_in_keeper
allow_experimental_kusto_dialect
allow_experimental_materialized_postgresql_table
allow_experimental_nlp_functions
allow_experimental_nullable_tuple_type
enable_nullable_tuple_type
يسمح بإنشاء أعمدة Nullable من النوع Tuple في الجداول.
لا يتحكم هذا الإعداد في ما إذا كان يمكن أن تكون الأعمدة الفرعية المستخرجة من Tuple من النوع Nullable (على سبيل المثال، من أعمدة Dynamic أو Variant أو JSON أو Tuple).
استخدم allow_nullable_tuple_in_extracted_subcolumns للتحكم في ما إذا كان يمكن أن تكون الأعمدة الفرعية المستخرجة من Tuple من النوع Nullable.
allow_experimental_object_storage_queue_hive_partitioning
allow_experimental_paimon_storage_engine
allow_experimental_parallel_reading_from_replicas
enable_parallel_replicas
استخدم ما يصل إلى max_parallel_replicas من النسخ المتماثلة من كل شريحة لتنفيذ استعلام SELECT. تُنفَّذ القراءة بالتوازي ويُنسَّق ذلك ديناميكيًا. 0 - معطّل، 1 - مفعّل، ويُعطَّل بصمت في حال الفشل، 2 - مفعّل، مع طرح استثناء في حال الفشل
allow_experimental_polyglot_dialect
allow_experimental_prql_dialect
allow_experimental_text_index_lazy_apply
allow_experimental_time_series_aggregate_functions
allow_experimental_ts_to_grid_aggregate_function
دوال timeSeries* التجميعية التجريبية لإعادة أخذ عينات السلاسل الزمنية على غرار Prometheus، وحساب المعدل، وdelta.
allow_experimental_time_series_table
- 0 — محرك الجدول TimeSeries معطّل.
- 1 — محرك الجدول TimeSeries مفعّل.
allow_experimental_unique_key
UNIQUE KEY في محركات عائلة MergeTree.
allow_experimental_window_view
allow_experimental_ytsaurus_dictionary_source
allow_experimental_ytsaurus_table_engine
allow_experimental_ytsaurus_table_function
allow_fuzz_query_functions
fuzzQuery التي تُجري تعديلات عشوائية على AST الخاصة بسلسلة الاستعلام.
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader التي تتيح الحصول على قيمة ترويسة من ترويسات طلب HTTP الحالي. وهي غير مُمكّنة افتراضيًا لأسباب أمنية، لأن بعض الترويسات، مثل Cookie، قد تحتوي على معلومات حساسة. لاحظ أن الترويسات X-ClickHouse-* وAuthentication تكون مقيّدة دائمًا، ولا يمكن الحصول عليها باستخدام هذه الدالة.
allow_hyperscan
allow_iceberg_remove_orphan_files
ALTER TABLE ... EXECUTE remove_orphan_files() لجداول Iceberg.
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
يسمح بتنفيذ استعلامات insert في Iceberg.
allow_introspection_functions
- 1 — دوال فحص البنية الداخلية مفعّلة.
- 0 — دوال فحص البنية الداخلية معطّلة.
- أداة أخذ العينات لتحليل أداء الاستعلامات
- جدول النظام trace_log
allow_key_condition_coalesce_rewrite
WHERE/PREWHERE التي تتضمن coalesce أو ifNull. من دون هذا الإعداد، تكون هذه الشروط غير قابلة للتحليل من ناحية الفهرس ولا تؤدي إلى التقليص، لذلك تظل granules التي لا يمكن أن تطابق مقروءة. يؤثر ذلك فقط في granules التي تُقرأ؛ أما نتيجة الاستعلام فتبقى بلا تغيير، لأن الصفوف تظل تُرشَّح بواسطة الشرط الأصلي.
يُعاد كتابة شكلين من الشروط المرشِّحة قبل تحليل الفهرس:
- تتحول المقارنة مع
coalesce/ifNull، مثلcoalesce(a, b) = 5، إلى فصل منطقي بحيث يتمكن الفهرس على كل argument من التقليص:a = 5 OR (a IS NULL AND b = 5)، مع التوسعة لتشمل المزيد من المُعامِلات. - إذا استُخدم
coalesce/ifNullمع ثابت افتراضي ذي قيمة كاذبة (صفر) مباشرةً كشرط، مثلifNull(a = 5, 0)أوcoalesce(a = 5, 0)، فيُكشف إلى شرطه الداخليa = 5. وتؤدي مثل هذه wrappers إلى اختزال النتيجة ثلاثية القيم للشرط الداخلي إلى قيمة منطقية محددة (أي تحويلNULLإلىfalse).
allow_limit_by_partitions_independently
LIMIT BY لكل قسم باستخدام خيوط تنفيذ منفصلة عندما يكون تعبير القسم دالة حتمية لأعمدة LIMIT BY.
allow_materialized_view_with_bad_select
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nondeterministic_mutations
dictGet.
ونظرًا إلى أن القواميس قد تكون، على سبيل المثال، غير متزامنة بين العُقد، فإن mutations التي تسحب منها قيمًا تكون غير مسموح بها على الجداول المكررة افتراضيًا. ويؤدي تمكين هذا الإعداد إلى السماح بهذا السلوك، ما يجعل المستخدم مسؤولًا عن التأكد من أن البيانات المستخدمة متزامنة عبر جميع العُقد.
مثال
allow_nondeterministic_optimize_skip_unused_shards
rand أو dictGet، إذ إن الأخيرة لها بعض القيود المتعلقة بالتحديثات) في مفتاح التجزئة.
القيم الممكنة:
- 0 — غير مسموح.
- 1 — مسموح.
allow_nullable_tuple_in_extracted_subcolumns
Tuple(...) على أنه Nullable(Tuple(...)).
false: يُرجعTuple(...)ويستخدم قيم tuple الافتراضية للصفوف التي يكون فيها العمود الفرعي مفقودًا.true: يُرجعNullable(Tuple(...))ويستخدمNULLللصفوف التي يكون فيها العمود الفرعي مفقودًا.
Nullable(Tuple(...)) في الجداول؛ إذ يتحكم في ذلك enable_nullable_tuple_type.
يستخدم ClickHouse القيمة الخاصة بهذا الإعداد التي تُحمَّل عند بدء تشغيل الخادم.
لا تؤدي التغييرات التي تُجرى باستخدام SET أو SETTINGS على مستوى query إلى تغيير سلوك الأعمدة الفرعية المستخرجة.
لتغيير سلوك الأعمدة الفرعية المستخرجة، حدّث allow_nullable_tuple_in_extracted_subcolumns في إعدادات profile عند بدء التشغيل (على سبيل المثال، users.xml) ثم أعد تشغيل الخادم.
allow_prefetched_read_pool_for_local_filesystem
allow_prefetched_read_pool_for_remote_filesystem
allow_push_predicate_ast_for_distributed_subqueries
allow_push_predicate_when_subquery_contains_with
allow_rank_dense_rank_arguments
RANK وDENSE_RANK للحفاظ على التوافق مع الإصدارات السابقة.
وفقًا لمعيار SQL، فإن RANK وDENSE_RANK لا تقبلان أي وسائط — إذ ترتّبان الصفوف استنادًا فقط إلى النافذة
OVER (ORDER BY ...). وفي إصدارات ClickHouse السابقة لـ 26.5، كانت الاستعلامات مثل
RANK(x) OVER (...) تُقبل بصمت مع تجاهل الوسيط، مما كان يسبّب التباسًا لدى المستخدمين
(إذ كان الوسيط الظاهر يوحي بأنه يؤثر في الترتيب، لكنه في الواقع لا يفعل ذلك).
عندما يكون هذا الإعداد false (وهو الإعداد الافتراضي)، فإن RANK وDENSE_RANK ترفضان أي وسائط
وتُطلقان NUMBER_OF_ARGUMENTS_DOESNT_MATCH. وعند ضبطه على true، يُستعاد السلوك القديم المتساهل
— إذ تُتجاهل الوسائط بصمت، بما يتوافق مع السلوك المتّبع قبل 26.5.
allow_reorder_prewhere_conditions
allow_settings_after_format_in_insert
SETTINGS بعد FORMAT في استعلامات INSERT أم لا. لا يُنصح باستخدام هذا الإعداد، لأن ذلك قد يؤدي إلى تفسير جزء من SETTINGS على أنه قيم.
مثال:
allow_settings_after_format_in_insert:
- 0 — ممنوع.
- 1 — مسموح.
استخدم هذا الإعداد فقط للحفاظ على التوافق مع الإصدارات السابقة إذا كانت حالات الاستخدام لديك تعتمد على الصياغة القديمة.
allow_simdjson
allow_special_serialization_kinds_in_output_formats
allow_statistics
allow_experimental_statistics
يسمح بتعريف إحصاءات للأعمدة وإدارة الإحصاءات.
allow_statistics_optimize
allow_statistic_optimize
يسمح باستخدام الإحصاءات لتحسين الاستعلامات
allow_suspicious_codecs
allow_suspicious_fixed_string_types
allow_suspicious_indices
allow_suspicious_low_cardinality_types
FixedString(8_bytes_or_less).
يكون استخدام LowCardinality مع القيم الثابتة الصغيرة غير فعّال عادةً، لأن ClickHouse يخزّن فهرسًا رقميًا لكل صف. ونتيجة لذلك:
- قد يزداد استخدام مساحة القرص.
- قد يرتفع استهلاك RAM، بحسب حجم القاموس.
- قد تعمل بعض الدوال ببطء أكبر بسبب عمليات الترميز وفك الترميز الإضافية.
- 1 — لا يكون استخدام
LowCardinalityمقيّدًا. - 0 — يكون استخدام
LowCardinalityمقيّدًا.
allow_suspicious_primary_key
PRIMARY KEY/ORDER BY المريبَين في MergeTree (أي SimpleAggregateFunction).
allow_suspicious_ttl_expressions
allow_suspicious_types_in_group_by
allow_suspicious_types_in_order_by
allow_suspicious_variant_types
allow_unrestricted_reads_from_keeper
alter_move_to_space_execute_async
alter_partition_verbose_result
- 0 — تعطيل العرض التفصيلي.
- 1 — تفعيل العرض التفصيلي.
alter_sync
replication_alter_partitions_sync
يتيح لك تحديد سلوك الانتظار للعمليات التي ستُنفَّذ على النسخ المتماثلة بواسطة استعلامات ALTER أو OPTIMIZE أو TRUNCATE.
القيم الممكنة:
0— لا تنتظر.1— انتظر التنفيذ على النسخة الحالية.2— انتظر جميع النسخ المتماثلة.3- انتظر النسخ المتماثلة النشطة فقط.
0.
ينطبق
alter_sync على جداول Replicated وSharedMergeTree فقط، ولا يكون له أي تأثير عند تعديل الجداول غير Replicated أو Shared.alter_update_mode
ALTER التي تحتوي على أوامر UPDATE.
القيم الممكنة:
heavy- نفّذ mutation عادية.lightweight- نفّذ lightweight update إذا أمكن، وإلا فنفّذ mutation عادية.lightweight_force- نفّذ lightweight update إذا أمكن، وإلا فاستخدمthrow.
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_compatibility_allow_compound_identifiers_in_unflatten_nested
SELECT a.b.c FROM table ARRAY JOIN a، ولا يُدرج SELECT a FROM table العمود a.b.c في ناتج Nested a.
analyzer_compatibility_join_using_top_level_identifier
SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) سيتم تنفيذ عملية join وفقًا لـ t1.a + 1 = t2.b بدلًا من t1.b = t2.b).
analyzer_compatibility_prefer_alias_over_subcolumn
b.id إما إلى العمود id في جدول يحمل الاسم المستعار b أو إلى عمود فرعي b.id من نوع Tuple تابع لعمود آخر، فامنح الأفضلية لتفسير بادئة الاسم المستعار (أي العمود id في b). افتراضيًا، يفضّل analyzer الجديد العمود الفرعي. فعِّل هذا الإعداد لمطابقة آلية التحليل في analyzer القديم.
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 — السلوك القديم مفعّل.
apply_deleted_mask
apply_mutations_on_fly
apply_patch_parts
apply_patch_parts_join_cache_buckets
apply_prewhere_after_final
apply_row_policy_after_final
- 0 — تُطبَّق سياسة الصفوف وPREWHERE قبل FINAL (افتراضيًا).
- 1 — تُطبَّق سياسة الصفوف وPREWHERE بعد FINAL.
apply_settings_from_server
users.xml أو استعلامات مثل ALTER USER)، وليس من خلال العميل (وسيطات سطر أوامر العميل، أو استعلام SET، أو قسم SETTINGS في استعلام SELECT). ويمكن تغييره من خلال العميل إلى false، لكن لا يمكن تغييره إلى true (لأن الخادم لن يرسل الإعدادات إذا كان profile المستخدم يحتوي على apply_settings_from_server = false).
لاحظ أنه في البداية (24.12) كان هناك إعداد على مستوى الخادم (send_settings_to_client)، لكنه استُبدل لاحقًا بهذا الإعداد على جهة العميل لتحسين سهولة الاستخدام.
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
'path' اسم مجموعة البيانات كواصف من نوع path. ويرسل 'command' استعلام SQL كواصف من نوع command (وهو مطلوب لـ Dremio).
القيم الممكنة:
- ‘path’ — استخدم FlightDescriptor::Path (الافتراضي، ويعمل مع معظم خوادم Arrow Flight)
- ‘command’ — استخدم FlightDescriptor::Command مع استعلام SELECT (مطلوب لـ Dremio)
ast_fuzzer_any_query
ast_fuzzer_runs) على تشويش استعلامات القراءة فقط (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). وعندما تكون القيمة true، يتم تشويش جميع أنواع الاستعلامات، بما في ذلك DDL و INSERT.
ast_fuzzer_runs
- 0: معطّل (افتراضي).
- قيمة بين 0 و1 (على نحو حصري): احتمال تشغيل استعلام عشوائي واحد.
- قيمة >= 1: عدد الاستعلامات العشوائية التي تُشغَّل لكل استعلام عادي.
asterisk_include_alias_columns
SELECT *).
القيم الممكنة:
- 0 - معطّل
- 1 - مُمكّن
asterisk_include_materialized_columns
SELECT *).
القيم الممكنة:
- 0 - معطّل
- 1 - مُمكّن
asterisk_include_virtual_columns
SELECT *).
القيم الممكنة:
- 0 - معطّل
- 1 - مُمكّن
async_insert
async_insert_busy_timeout_decrease_rate
async_insert_busy_timeout_increase_rate
async_insert_busy_timeout_max_ms
async_insert_busy_timeout_ms
الحد الأقصى للوقت الذي يجب انتظاره قبل تفريغ البيانات المجمّعة لكل query، وذلك منذ وصول أول البيانات.
قيمة Cloud الافتراضية: 1000 (1s).
async_insert_busy_timeout_min_ms
async_insert_deduplicate
async_insert_max_data_size
104857600 (100 MiB).
async_insert_max_query_number
async_insert_deduplicate هي 1.
async_insert_poll_timeout_ms
async_insert_use_adaptive_busy_timeout
async_query_sending_for_remote
async_socket_for_remote
automatic_parallel_replicas_min_bytes_per_replica
automatic_parallel_replicas_mode=1). وتعني القيمة 0 عدم وجود عتبة.
يُقدَّر العدد الإجمالي للبايتات المطلوب قراءتها استنادًا إلى الإحصاءات المُجمَّعة.
automatic_parallel_replicas_mode
enable_analyzer = 1 وenable_parallel_replicas != 0 وparallel_replicas_local_plan = 1 مع تحديد cluster_for_parallel_replicas.
0 - معطّل، 1 - مفعّل، 2 - يكون جمع الإحصاءات فقط مفعّلًا (ويكون التبديل إلى التنفيذ باستخدام النسخ المتماثلة المتوازية معطّلًا).
azure_allow_parallel_part_upload
azure_check_objects_after_upload
azure_connect_timeout_ms
azure_create_new_file_on_insert
azure_ignore_file_doesnt_exist
- 1 — يعيد
SELECTنتيجة فارغة. - 0 — يثير
SELECTاستثناءً.
azure_list_object_keys_size
azure_max_blocks_in_multipart_upload
azure_max_get_burst
azure_max_get_rps
azure_max_get_rps
azure_max_inflight_parts_for_one_file
azure_max_put_burst
azure_max_put_rps
azure_max_put_rps
azure_max_redirects
azure_max_single_part_copy_size
azure_max_single_part_upload_size
azure_max_single_read_retries
azure_max_unexpected_write_error_retries
azure_max_upload_part_size
azure_min_upload_part_size
azure_request_timeout_ms
azure_sdk_max_retries
azure_sdk_retry_initial_backoff_ms
azure_sdk_retry_max_backoff_ms
azure_skip_empty_files
- 0 — يُطلق
SELECTاستثناءً إذا كان الملف الفارغ غير متوافق مع التنسيق المطلوب. - 1 — يعيد
SELECTنتيجة فارغة للملف الفارغ.
azure_strict_upload_part_size
azure_throw_on_zero_files_match
- 1 — يُطلق
SELECTاستثناءً. - 0 — يعيد
SELECTنتيجة فارغة.
azure_truncate_on_insert
azure_upload_part_size_multiply_factor
azure_upload_part_size_multiply_parts_count_threshold
azure_use_adaptive_timeouts
true، تُجرى أول محاولتين لجميع طلبات Azure باستخدام مهلات إرسال واستقبال منخفضة.
عند ضبطها على false، تُجرى جميع المحاولات باستخدام مهلات متطابقة.
backup_restore_batch_size_for_keeper_multi
multi إلى [Zoo]Keeper أثناء النسخ الاحتياطي أو الاستعادة
backup_restore_batch_size_for_keeper_multiread
backup_restore_failure_after_host_disconnected_for_seconds
backup_restore_finish_timeout_after_error_sec
backup_restore_keeper_fault_injection_probability
backup_restore_keeper_fault_injection_seed
backup_restore_keeper_max_retries
backup_restore_keeper_max_retries_while_handling_error
backup_restore_keeper_max_retries_while_initializing
backup_restore_keeper_retry_initial_backoff_ms
backup_restore_keeper_retry_max_backoff_ms
60000.
backup_restore_keeper_value_max_size
backup_restore_s3_retry_attempts
backup_restore_s3_retry_initial_backoff_ms
backup_restore_s3_retry_max_backoff_ms
backup_restore_s3_retry_jitter_factor
backup_restore_s3_retry_max_backoff_ms. يجب أن تكون قيمته ضمن النطاق [0.0, 1.0]
backup_restore_s3_retry_max_backoff_ms
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.
cast_ipv4_ipv6_default_on_conversion_error
cast_keep_nullable
Nullable في عمليات CAST.
عند تمكين هذا الإعداد وكان وسيط الدالة CAST من النوع Nullable، تُحوَّل النتيجة أيضًا إلى النوع Nullable. وعند تعطيل هذا الإعداد، تكون النتيجة دائمًا من نوع الوجهة المحدد تمامًا.
القيم الممكنة:
- 0 — تكون نتيجة
CASTمن نوع الوجهة المحدد تمامًا. - 1 — إذا كان نوع الوسيط هو
Nullable، فتُحوَّل نتيجةCASTإلىNullable(DestinationDataType).
Nullable على نوع بيانات الوجهة:
- دالة CAST
cast_string_to_date_time_mode
-
'best_effort'— يفعّل التحليل الموسّع. يمكن لـ ClickHouse تحليل التنسيق الأساسيYYYY-MM-DD HH:MM:SSوجميع تنسيقات التاريخ والوقت وفق ISO 8601. على سبيل المثال،'2018-06-08T01:02:03.000Z'. -
'best_effort_us'— مشابه لـbest_effort(راجع الفرق في parseDateTimeBestEffortUS -
'basic'— يستخدم المحلّل الأساسي. لا يمكن لـ ClickHouse تحليل إلا التنسيق الأساسيYYYY-MM-DD HH:MM:SSأوYYYY-MM-DD. على سبيل المثال،2019-08-20 10:18:56أو2019-08-20.
cast_string_to_dynamic_use_inference
cast_string_to_variant_use_inference
check_named_collection_dependencies
check_query_single_value_result
MergeTree.
القيم الممكنة:
- 0 — يعرض الاستعلام حالة التحقق لكل جزء بيانات على حدة في الجدول.
- 1 — يعرض الاستعلام الحالة العامة للتحقق من الجدول.
check_referential_table_dependencies
check_table_dependencies
checksum_on_read
cloud_mode
1.
cloud_mode_database_engine
2.
cloud_mode_engine
- 0 - السماح بكل شيء
- 1 - إعادة كتابة DDLs لاستخدام *ReplicatedMergeTree
- 2 - إعادة كتابة DDLs لاستخدام SharedMergeTree
- 3 - إعادة كتابة DDLs لاستخدام SharedMergeTree إلا عند تحديد قرص بعيد بشكل صريح
- 4 - مثل 3، مع استخدام Alias بدلًا من Distributed أيضًا (سيشير جدول Alias إلى الجدول الوجهة لجدول Distributed، لذا سيستخدم الجدول المحلي المقابل)
2.
cluster_for_parallel_replicas
default.
cluster_function_process_archive_on_multiple_nodes
true، فسيؤدي ذلك إلى تحسين أداء معالجة الأرشيفات في دوال العنقود. ينبغي تعيينه إلى false لضمان التوافق وتجنب الأخطاء أثناء الترقية إلى 25.7+ إذا كنت تستخدم دوال العنقود مع الأرشيفات على الإصدارات الأقدم.
cluster_table_function_buckets_batch_size
bucket. ويواصل النظام تجميع البيانات حتى يصل إلى هذا الحجم على الأقل. وقد يكون الحجم الفعلي أكبر قليلًا ليتوافق مع حدود البيانات.
cluster_table_function_split_granularity
CLUSTER TABLE FUNCTION.
يحدّد هذا الإعداد مستوى تفصيل توزيع العمل عبر العنقود:
file— تعالج كل مهمة ملفًا كاملًا.bucket— تُنشأ المهام لكل كتلة بيانات داخلية داخل الملف (على سبيل المثال، مجموعات الصفوف في Parquet).
bucket) إلى تحسين التوازي عند العمل على عدد صغير من الملفات الكبيرة.
فعلى سبيل المثال، إذا كان ملف Parquet يحتوي على عدة مجموعات صفوف، فإن تفعيل مستوى bucket يتيح معالجة كل مجموعة بشكل مستقل بواسطة عمّال مختلفين.
collect_hash_table_stats_during_aggregation
collect_hash_table_stats_during_joins
compatibility
compatibility ClickHouse يستخدم الإعدادات الافتراضية لإصدار سابق من ClickHouse، على أن يُحدَّد ذلك الإصدار السابق من خلال هذا الإعداد.
إذا كانت بعض الإعدادات مضبوطة على قيم غير افتراضية، فستظل هذه القيم مُعتمدة (ولا يؤثر الإعداد compatibility إلا في الإعدادات التي لم تُعدَّل).
يأخذ هذا الإعداد رقم إصدار ClickHouse كسلسلة نصية، مثل 22.3 و22.8. وتعني القيمة الفارغة أن هذا الإعداد معطّل.
يكون معطّلًا افتراضيًا.
في ClickHouse Cloud، يجب أن يضبط فريق ClickHouse Cloud Support إعداد compatibility الافتراضي على مستوى الخدمة. يُرجى فتح طلب دعم ليتم ضبطه.
ومع ذلك، يمكن تجاوز إعداد compatibility على مستوى المستخدم أو الدور أو profile أو query أو session باستخدام آليات إعدادات ClickHouse القياسية، مثل
SET compatibility = '22.3' داخل session أو SETTINGS compatibility = '22.3' داخل query.compatibility_ignore_auto_increment_in_create_table
compatibility_ignore_collation_in_create_table
compatibility_s3_presigned_url_query_in_path
compile_aggregate_expressions
- 0 — يُجرى التجميع دون ترجمة فورية (JIT).
- 1 — يُجرى التجميع باستخدام الترجمة الفورية (JIT).
compile_expressions
compile_sort_description
connect_timeout
connect_timeout_with_failover_ms
connect_timeout_with_failover_secure_ms
connection_pool_max_wait_ms
- عدد صحيح موجب.
- 0 — مهلة غير محدودة.
connections_with_failover_max_tries
convert_query_to_cnf
true، سيُحوَّل استعلام SELECT إلى الصيغة العادية الاقترانية (CNF). في بعض الحالات، قد يؤدّي إعادة كتابة الاستعلام بهذه الصيغة إلى تنفيذ أسرع (راجِع issue على GitHub للاطلاع على الشرح).
على سبيل المثال، لاحظ كيف لا يجري تعديل استعلام SELECT التالي (وهذا هو السلوك الافتراضي):
convert_query_to_cnf على true ونرَ ما الذي سيتغيّر:
WHERE أُعيدت كتابتها بصيغة CNF، لكن مجموعة النتائج متطابقة تمامًا - والمنطق البولياني لم يتغير:
right، ما يعني أن الخطة بعد فك الارتباط ستتضمن عمليات RIGHT JOIN مع إدخال الاستعلام الفرعي على الجانب الأيمن.
القيم الممكنة:
left- ستنتج عملية فك الارتباط عمليات LEFT JOIN، وسيظهر جدول الإدخال على الجانب الأيسر.right- ستنتج عملية فك الارتباط عمليات RIGHT JOIN، وسيظهر جدول الإدخال على الجانب الأيمن.
count_distinct_implementation
uniq* يجب استخدامه لتنفيذ صيغة COUNT(DISTINCT …).
القيم الممكنة:
count_distinct_optimization
count_matches_stop_at_empty_match
countMatches.
create_if_not_exists
IF NOT EXISTS لعبارة CREATE افتراضيًا. إذا تم تحديد هذا الإعداد أو IF NOT EXISTS وكان هناك جدول بالاسم المحدد موجودًا بالفعل، فلن يتم طرح أي استثناء.
create_index_ignore_unique
create_replicated_merge_tree_fault_injection_probability
create_table_empty_primary_key_by_default
cross_join_min_bytes_to_compress
cross_join_min_rows_to_compress
cross_to_inner_join_rewrite
inner join بدلًا من comma/cross join إذا كانت هناك تعبيرات ربط في قسم WHERE. القيم: 0 - بلا إعادة كتابة، 1 - يُطبَّق عند الإمكان على comma/cross، 2 - فرض إعادة كتابة جميع عمليات comma join، وcross join عند الإمكان
data_type_default_nullable
- 1 — تُضبط أنواع البيانات في تعريفات الأعمدة على
Nullableافتراضيًا. - 0 — تُضبط أنواع البيانات في تعريفات الأعمدة على أنها غير
Nullableافتراضيًا.
database_atomic_wait_for_drop_and_detach_synchronously
SYNC إلى جميع استعلامات DROP وDETACH.
القيم الممكنة:
- 0 — ستُنفَّذ الاستعلامات مع تأخير.
- 1 — ستُنفَّذ الاستعلامات من دون تأخير.
database_datalake_require_metadata_access
database_replicated_allow_explicit_uuid
database_replicated_allow_heavy_create
database_replicated_allow_only_replicated_engine
1.
database_replicated_allow_replicated_engine_arguments
database_replicated_always_detach_permanently
database_replicated_enforce_synchronous_settings
database_replicated_initial_query_timeout_sec
- عدد صحيح موجب.
- 0 — غير محدود.
UNDROP TABLE.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
deduplicate_insert
INSERT INTO (لجداول Replicated*).
ويتجاوز هذا الإعداد كلاً من insert_deduplicate وasync_insert_deduplicate.
ولهذا الإعداد ثلاث قيم ممكنة:
- disable — تكون إزالة التكرار معطّلة لعبارة
INSERT INTO. - enable — تكون إزالة التكرار مفعّلة لعبارة
INSERT INTO. - backward_compatible_choice — تُفعَّل إزالة التكرار إذا كان
insert_deduplicateأوasync_insert_deduplicateمفعّلًا لنوعinsertالمحدد.
deduplicate_insert_select
INSERT SELECT (لجداول Replicated*).
ويتجاوز insert_deduplicate و deduplicate_insert في استعلامات INSERT SELECT.
ولهذا الإعداد أربع قيم ممكنة:
- disable — يتم تعطيل إزالة التكرار لاستعلام
INSERT SELECT. - force_enable — يتم تمكين إزالة التكرار لاستعلام
INSERT SELECT. إذا لم تكن نتيجة SELECT مستقرة، يتم إطلاق استثناء. - enable_when_possible — يتم تمكين إزالة التكرار إذا كان
insert_deduplicateمُمكّنًا وكانت نتيجة SELECT مستقرة، وإلا يتم تعطيله. - enable_even_for_bad_queries - يتم تمكين إزالة التكرار إذا كان
insert_deduplicateمُمكّنًا. وإذا لم تكن نتيجة SELECT مستقرة، يُسجَّل تحذير، لكن يُنفَّذ الاستعلام مع إزالة التكرار. هذا الخيار مخصّص للتوافق مع الإصدارات السابقة. يُنصح باستخدام خيارات أخرى بدلًا منه لأنه قد يؤدي إلى نتائج غير متوقعة.
default_materialized_view_sql_security
DEFINER.
default_max_bytes_in_join
max_bytes_in_join.
default_normal_view_sql_security
SQL SECURITY عند إنشاء normal view. المزيد حول SQL security.
القيمة الافتراضية هي INVOKER.
default_table_engine
ENGINE في عبارة CREATE.
القيم الممكنة:
- سلسلة تمثل أي اسم صالح لمحرّك جدول
SharedMergeTree.
مثال
استعلام:
Engine محرك الجدول Log:
الاستعلام:
default_temporary_table_engine
Engine محرك الجدول Log:
الاستعلام:
default_view_definer
DEFINER الافتراضي عند إنشاء عرض. المزيد عن SQL security.
القيمة الافتراضية هي CURRENT_USER.
defer_partition_pruning_after_final
FINAL على الجداول التي لا تكون
أعمدة مفتاح partition فيها جزءًا من مفتاح الفرز. وهذا هو السلوك الآمن من ناحية الصحة
الذي قُدِّم في 26.3: إذ قد يحتاج FINAL إلى إزالة تكرار الصفوف التي تشترك في
المفتاح الأساسي لكنها موجودة في partitions مختلفة، كما أن partition pruning قد يستبعد
مثل هذه الصفوف بصمت من مدخلات إزالة التكرار.
عند تعطيله، يُطبَّق partition pruning حتى مع FINAL، مما يعيد
سلوك ما قبل 26.3. ويمكن أن يكون هذا أسرع بكثير للاستعلامات التي تحتوي على
شروط WHERE على عمود partition، لكنه يكون صحيحًا فقط عندما يتعذر وجود صفوف لها المفتاح الأساسي نفسه
في partitions مختلفة — مثلًا، جداول سجلات الأحداث التي يُضبط فيها عمود partition وقت الإدراج
ولا يتغير أبدًا.
لا يؤثر هذا الإعداد إلا في الجداول المُقسَّمة التي لا تكون أعمدة مفتاح partition فيها متضمَّنة
ضمن مفتاح الفرز؛ أما بالنسبة إلى الجداول الأخرى فيُطبَّق partition pruning دائمًا.
القيم الممكنة:
- 0 — تطبيق partition pruning قبل
FINAL(سلوك ما قبل 26.3، أسرع لكنه غير آمن في الحالة العامة). - 1 — تأجيل partition pruning إلى ما بعد
FINAL(الافتراضي، آمن من ناحية الصحة).
delta_lake_enable_engine_predicate
delta_lake_enable_expression_visitor_logging
delta_lake_insert_max_bytes_in_data_file
delta_lake_insert_max_rows_in_data_file
delta_lake_log_metadata
delta_lake_reload_schema_for_consistency
delta_lake_snapshot_end_version
delta_lake_snapshot_start_version
delta_lake_snapshot_version
delta_lake_throw_on_engine_predicate_error
describe_compact_output
describe_include_subcolumns
- 0 — لا تُضمَّن الأعمدة الفرعية في استعلامات
DESCRIBE. - 1 — تُضمَّن الأعمدة الفرعية في استعلامات
DESCRIBE.
describe_include_virtual_columns
الصيغة
dictionary_use_async_executor
dictionary_validate_primary_key_type
distinct_overflow_mode
throw: طرح استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية، كما لو كانت البيانات المصدر قد نفدت.
distributed_aggregation_memory_efficient
distributed_background_insert_batch
distributed_directory_monitor_batch_inserts
يُمكّن أو يعطّل إرسال البيانات المُدرجة على دفعات.
عند تمكين الإرسال على دفعات، يحاول محرك الجداول Distributed إرسال عدة ملفات من البيانات المُدرجة في عملية واحدة بدلًا من إرسالها كلًّا على حدة. ويُحسّن الإرسال على دفعات أداء العنقود من خلال الاستفادة بشكل أفضل من موارد الخادم والشبكة.
القيم الممكنة:
- 1 — مُمكَّن.
- 0 — مُعطَّل.
distributed_background_insert_max_sleep_time_ms
distributed_directory_monitor_max_sleep_time_ms
أقصى فاصل زمني لإرسال البيانات بواسطة محرك الجدول Distributed. يحدّ من الزيادة الأُسّية للفاصل الزمني المضبوط في إعداد distributed_background_insert_sleep_time_ms.
القيم الممكنة:
- عدد صحيح موجب من المللي ثانية.
distributed_background_insert_sleep_time_ms
distributed_directory_monitor_sleep_time_ms
الفاصل الزمني الأساسي الذي يستخدمه محرك الجدول Distributed لإرسال البيانات. ويزداد الفاصل الزمني الفعلي أُسِّيًا عند حدوث أخطاء.
القيم الممكنة:
- عدد صحيح موجب من المللي ثانية.
distributed_background_insert_split_batch_on_failure
distributed_directory_monitor_split_batch_on_failure
يُمكّن/يعطّل تقسيم الدُفعات عند حدوث فشل.
قد يفشل أحيانًا إرسال دفعة معيّنة إلى الشظية البعيدة بسبب مسار معالجة معقّد لاحقًا (مثل MATERIALIZED VIEW مع GROUP BY) نتيجة الخطأ Memory limit exceeded أو أخطاء مشابهة. في هذه الحالة، لن تفيد إعادة المحاولة (وقد يؤدي ذلك إلى تعطيل عمليات الإرسال الموزّعة لهذا الجدول)، لكن إرسال ملفات تلك الدفعة واحدًا تلو الآخر قد ينجح في تنفيذ INSERT.
لذلك، فإن ضبط هذا الإعداد على 1 سيعطّل التجميع لهذه الدُفعات (أي سيعطّل مؤقتًا distributed_background_insert_batch للدُفعات الفاشلة).
القيم الممكنة:
- 1 — مُمكّن.
- 0 — معطّل.
يؤثر هذا الإعداد أيضًا في الدُفعات التالفة (التي قد تظهر بسبب توقّف غير طبيعي لـ server (الجهاز)، مع عدم استخدام
fsync_after_insert/fsync_directories لمحرك الجداول Distributed).يجب ألا تعتمد على التقسيم التلقائي للدُفعات، لأن ذلك قد يضر بالأداء.
distributed_background_insert_timeout
insert_distributed_timeout
المهلة الزمنية لاستعلام الإدراج إلى Distributed. لا يُستخدم هذا الإعداد إلا عند تمكين insert_distributed_sync. وتعني القيمة صفر عدم وجود مهلة.
distributed_cache_alignment
distributed_cache_bypass_connection_pool
distributed_cache_connect_backoff_max_ms
distributed_cache_connect_backoff_min_ms
distributed_cache_connect_max_tries
distributed_cache_connect_timeout_ms
distributed_cache_credentials_refresh_period_seconds
distributed_cache_data_packet_ack_window
distributed_cache_discard_connection_if_unread_data
distributed_cache_fetch_metrics_only_from_current_az
distributed_cache_file_cache_name
distributed_cache_log_mode
distributed_cache_max_unacked_inflight_packets
distributed_cache_min_bytes_for_seek
distributed_cache_pool_behaviour_on_limit
distributed_cache_prefer_bigger_buffer_size
distributed_cache_read_only_from_current_az
distributed_cache_read_request_max_tries
distributed_cache_receive_response_wait_milliseconds
distributed_cache_receive_timeout_milliseconds
20000.
distributed_cache_receive_timeout_ms
distributed_cache_send_timeout_ms
distributed_cache_tcp_keep_alive_timeout_ms
distributed_cache_throw_on_error
distributed_cache_use_clients_cache_for_read
distributed_cache_use_clients_cache_for_write
distributed_cache_wait_connection_from_pool_milliseconds
distributed_cache_pool_behaviour_on_limit مضبوطة على wait
distributed_cache_write_request_max_tries
distributed_connections_pool_size
distributed_ddl_entry_format_version
6.
distributed_ddl_output_mode
throw— يعيد مجموعة النتائج مع حالة تنفيذ الاستعلام على جميع المضيفين التي اكتمل عليها الاستعلام. إذا فشل الاستعلام على بعض المضيفين، فستُعاد إثارة أول استثناء. وإذا لم يكتمل الاستعلام بعد على بعض المضيفين وتم تجاوز distributed_ddl_task_timeout، فسيَطرح الاستثناءTIMEOUT_EXCEEDED.none— مشابه لـthrow، لكن استعلام DDL الموزّع لا يعيد أي مجموعة نتائج.null_status_on_timeout— يعيدNULLكحالة تنفيذ في بعض صفوف مجموعة النتائج بدلًا من طرحTIMEOUT_EXCEEDEDإذا لم يكتمل الاستعلام على المضيفين المعنيين.never_throw— لا يطرحTIMEOUT_EXCEEDEDولا يعيد طرح الاستثناءات إذا فشل الاستعلام على بعض المضيفين.none_only_active- مشابه لـnone، لكنه لا ينتظر النسخ المتماثلة غير النشطة لقاعدة البياناتReplicated. ملاحظة: مع هذا الوضع، يستحيل معرفة أن الاستعلام لم يُنفَّذ على بعض النسخ المتماثلة وسيُنفَّذ في الخلفية.null_status_on_timeout_only_active— مشابه لـnull_status_on_timeout، لكنه لا ينتظر النسخ المتماثلة غير النشطة لقاعدة البياناتReplicatedthrow_only_active— مشابه لـthrow، لكنه لا ينتظر النسخ المتماثلة غير النشطة لقاعدة البياناتReplicated
none_only_active.
distributed_ddl_task_timeout
- عدد صحيح موجب.
- 0 — وضع غير متزامن.
- عدد صحيح سالب — مهلة غير محدودة.
distributed_foreground_insert
insert_distributed_sync
يُمكّن أو يعطّل الإدراج المتزامن للبيانات في جدول Distributed.
بشكل افتراضي، عند إدراج البيانات في جدول Distributed، يرسل خادم ClickHouse البيانات إلى عُقد العنقود في وضع الخلفية. وعند ضبط distributed_foreground_insert=1، تُعالَج البيانات بشكل متزامن، ولا تنجح عملية INSERT إلا بعد حفظ جميع البيانات على جميع الشظايا (مع وجود نسخة متماثلة واحدة على الأقل لكل شظية إذا كانت قيمة internal_replication هي true).
القيم الممكنة:
0— تُدرَج البيانات في وضع الخلفية.1— تُدرَج البيانات في الوضع المتزامن.
1.
انظر أيضًا
distributed_group_by_no_merge
0— معطّل (تتم المعالجة النهائية للاستعلام على العقدة البادئة).1- لا تدمج حالات التجميع من خوادم مختلفة أثناء المعالجة الموزعة للاستعلامات (تتم معالجة الاستعلام بالكامل على الجزء، وتقوم العقدة البادئة فقط بتمرير البيانات)، ويمكن استخدامه عندما يكون من المؤكد أن المفاتيح تختلف بين الأجزاء المختلفة.2- مثل1، ولكن يطبّقORDER BYوLIMITعلى العقدة البادئة (وهذا غير ممكن عندما تتم معالجة الاستعلام بالكامل على العقدة البعيدة، كما فيdistributed_group_by_no_merge=1) (ويمكن استخدامه مع الاستعلامات التي تتضمنORDER BYو/أوLIMIT).
distributed_index_analysis
cluster_for_parallel_replicas.
انظر أيضًا
- distributed_index_analysis_for_non_shared_merge_tree
- distributed_index_analysis_min_parts_to_activate
- distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_only_on_coordinator
IN (SELECT ...))،
لأنه لولا ذلك لكانت كل نسخة متماثلة تابعة تُفعّل تحليل الفهرس الموزّع الخاص بها بشكل مستقل،
لكنه يجعل تحليل الفهرس الموزّع أقل كفاءة إذا استُخدمت جداول كبيرة في الاستعلامات الفرعية.
distributed_insert_skip_read_only_replicas
- 0 — سيعمل INSERT كالمعتاد، وإذا وُجِّه إلى نسخة متماثلة للقراءة فقط فسيفشل
- 1 — ستتجاوز العقدة المبادِرة النسخ المتماثلة المخصّصة للقراءة فقط قبل إرسال البيانات إلى الشظايا.
distributed_plan_default_reader_bucket_count
distributed_plan_default_shuffle_join_bucket_count
distributed_plan_execute_locally
distributed_plan_force_exchange_kind
- ” - لا تفرض أي نوع من عوامل Exchange، واترك المُحسِّن يختار،
- ‘Persisted’ - استخدم ملفات مؤقتة في تخزين الكائنات،
- ‘Streaming’ - بثّ بيانات Exchange عبر الشبكة.
distributed_plan_force_shuffle_aggregation
distributed_plan_max_rows_to_broadcast
distributed_plan_optimize_exchanges
distributed_plan_prefer_replicas_over_workers
distributed_product_mode
- يُطبَّق فقط على الاستعلامات الفرعية من نوع IN وJOIN.
- فقط إذا كان قسم FROM يستخدم جدولًا موزعًا يحتوي على أكثر من شظية واحدة.
- إذا كان الاستعلام الفرعي يتناول جدولًا موزعًا يحتوي على أكثر من شظية واحدة.
- لا يُستخدم مع دالة remote الجدولية.
deny— القيمة الافتراضية. يمنع استخدام هذه الأنواع من الاستعلامات الفرعية (ويُرجع الاستثناء “Double-distributed in/JOIN subqueries is denied”).local— يستبدل قاعدة البيانات والجدول في الاستعلام الفرعي بالنظيرين المحليين على خادم الوجهة (شظية)، مع الإبقاء علىIN/JOINالعاديَّين.global— يستبدل استعلامIN/JOINبـGLOBAL IN/GLOBAL JOIN.allow— يسمح باستخدام هذه الأنواع من الاستعلامات الفرعية.
distributed_push_down_limit
- إرسال صفوف إضافية عبر الشبكة؛
- معالجة الصفوف التي تتجاوز الحد على العقدة المُبادِئة.
distributed_push_down_limit لا يغيّر تنفيذ الاستعلام إلا إذا تحقق شرط واحد على الأقل من الشروط التالية:
- distributed_group_by_no_merge > 0.
- لا يحتوي الاستعلام على
GROUP BY/DISTINCT/LIMIT BY، لكنه يحتوي علىORDER BY/LIMIT. - يحتوي الاستعلام على
GROUP BY/DISTINCT/LIMIT BYمعORDER BY/LIMIT، و:- يكون optimize_skip_unused_shards مُمكّنًا.
- يكون optimize_distributed_group_by_sharding_key مُمكّنًا.
- 0 — معطّل.
- 1 — مُمكّن.
- distributed_group_by_no_merge
- optimize_skip_unused_shards
- optimize_distributed_group_by_sharding_key
distributed_replica_error_cap
- النوع: عدد صحيح غير موقّع
- القيمة الافتراضية: 1000
- load_balancing
- محرك الجدول Distributed
- distributed_replica_error_half_life
- distributed_replica_max_ignored_errors
distributed_replica_error_half_life
- النوع: ثوانٍ
- القيمة الافتراضية: 60 ثانية
distributed_replica_error_half_life إلى ثانية واحدة، فستُعتبر هذه النسخة المتماثلة سليمة بعد 3 ثوانٍ من وقوع آخر خطأ.
انظر أيضًا:
- load_balancing
- محرك الجدول Distributed
- distributed_replica_error_cap
- distributed_replica_max_ignored_errors
distributed_replica_max_ignored_errors
- النوع: عدد صحيح غير موقّع
- القيمة الافتراضية: 0
load_balancing).
انظر أيضًا:
- load_balancing
- محرك الجدول Distributed
- distributed_replica_error_cap
- distributed_replica_error_half_life
do_not_merge_across_partitions_select_final
dynamic_disk_allow_from_env
from_env في تكوين القرص الديناميكي (أي في وسائط الدالة disk()).
وهو معطّل افتراضيًا لمنع المستخدمين من قراءة متغيرات بيئة اعتباطية عند تعريف تخزين الجدول.”
dynamic_disk_allow_from_zk
from_zk في تكوين القرص الديناميكي (أي في وسيطات الدالة disk()).
معطّل افتراضيًا.
dynamic_disk_allow_include
include في تكوين القرص الديناميكي (أي في وسيطات الدالة disk()).
وهو معطّل افتراضيًا.
dynamic_throw_on_type_mismatch
true(الافتراضي) — طرح استثناء.false— إرجاعNULLلهذه الصفوف بدلًا من ذلك.
empty_result_for_aggregation_by_constant_keys_on_empty_set
empty_result_for_aggregation_by_empty_set
enable_adaptive_memory_spill_scheduler
enable_add_distinct_to_in_subqueries
DISTINCT في الاستعلامات الفرعية IN. هذا إعداد ينطوي على مفاضلة: إذ يمكن أن يؤدي تفعيله إلى تقليل حجم الجداول المؤقتة المنقولة في الاستعلامات الفرعية الموزعة IN بشكل كبير، وتسريع نقل البيانات بين الشظايا بشكل ملحوظ، وذلك من خلال ضمان إرسال القيم الفريدة فقط.
ومع ذلك، فإن تفعيل هذا الإعداد يضيف عبئًا إضافيًا على عمليات الدمج في كل عقدة، إذ يجب تنفيذ إزالة التكرار (DISTINCT). استخدم هذا الإعداد عندما يكون نقل البيانات عبر الشبكة هو عنق الزجاجة ويكون العبء الإضافي لعمليات الدمج مقبولًا.
enable_automatic_decision_for_merging_across_partitions_for_final
enable_blob_storage_log
enable_blob_storage_log_for_read_operations
enable_blob_storage_log.
enable_early_constant_folding
enable_extended_results_for_datetime_functions
Date32 بنطاق ممتد (مقارنةً بالنوع Date)
أو من النوع DateTime64 بنطاق ممتد (مقارنةً بالنوع DateTime).
القيم الممكنة:
0— تُرجع الدوالDateأوDateTimeلجميع أنواع الوسائط.1— تُرجع الدوالDate32أوDateTime64عند استخدام وسائط من النوعDate32أوDateTime64، وتُرجعDateأوDateTimeبخلاف ذلك.
| Function | enable_extended_results_for_datetime_functions = 0 | enable_extended_results_for_datetime_functions = 1 |
|---|---|---|
toStartOfYear | يعيد Date أو DateTime | يُرجع Date/DateTime عند إدخال Date/DateTimeيُرجع Date32/DateTime64 عند إدخال Date32/DateTime64 |
toStartOfISOYear | تُرجِع Date أو DateTime | يعيد Date/DateTime عند إدخال Date/DateTimeيعيد Date32/DateTime64 عند إدخال Date32/DateTime64 |
toStartOfQuarter | تُرجِع Date أو DateTime | تعيد Date/DateTime عند إدخال Date/DateTimeتعيد Date32/DateTime64 عند إدخال Date32/DateTime64 |
toStartOfMonth | يُرجع Date أو DateTime | تعيد Date/DateTime عند إدخال Date/DateTimeتعيد Date32/DateTime64 عند إدخال Date32/DateTime64 |
toStartOfWeek | تُرجِع Date أو DateTime | يعيد Date/DateTime عند تمرير قيمة من النوع Date/DateTimeيعيد Date32/DateTime64 عند تمرير قيمة من النوع Date32/DateTime64 |
toLastDayOfWeek | يُرجع Date أو DateTime | تُرجِع Date/DateTime عند إدخال Date/DateTimeتُرجِع Date32/DateTime64 عند إدخال Date32/DateTime64 |
toLastDayOfMonth | تُرجِع Date أو DateTime | يعيد Date/DateTime عند إدخال Date/DateTimeيعيد Date32/DateTime64 عند إدخال Date32/DateTime64 |
toMonday | يُرجِع Date أو DateTime | تعيد Date/DateTime عند إدخال Date/DateTimeتعيد Date32/DateTime64 عند إدخال Date32/DateTime64 |
toStartOfDay | يعيد DateTimeملاحظة: تكون النتائج غير صحيحة للقيم خارج النطاق 1970-2149 | يعيد DateTime عند إدخال Date/DateTimeويعيد DateTime64 عند إدخال Date32/DateTime64 |
toStartOfHour | يعيد DateTimeملاحظة: تكون النتائج غير صحيحة للقيم خارج نطاق 1970-2149. | يعيد DateTime عند إدخال Date/DateTimeويعيد DateTime64 عند إدخال Date32/DateTime64 |
toStartOfFifteenMinutes | يعيد DateTimeملاحظة: تكون النتائج غير صحيحة للقيم خارج النطاق 1970-2149 | تعيد DateTime عند إدخال Date/DateTimeوتعيد DateTime64 عند إدخال Date32/DateTime64 |
toStartOfTenMinutes | يُرجع DateTimeملاحظة: نتائج غير صحيحة للقيم الواقعة خارج النطاق 1970-2149 | يُرجع DateTime عند إدخال Date/DateTimeويُرجع DateTime64 عند إدخال Date32/DateTime64 |
toStartOfFiveMinutes | يعيد DateTimeملاحظة: تكون النتائج غير صحيحة للقيم خارج النطاق 1970-2149 | تُرجِع DateTime لمدخلات Date/DateTimeوتُرجِع DateTime64 لمدخلات Date32/DateTime64 |
toStartOfMinute | يعيد DateTimeملاحظة: قد تكون النتائج غير صحيحة للقيم خارج النطاق 1970-2149 | يعيد DateTime عند إدخال Date/DateTimeويعيد DateTime64 عند إدخال Date32/DateTime64 |
timeSlot | يعيد DateTimeملاحظة: تكون النتائج غير صحيحة للقيم الواقعة خارج النطاق 1970-2149 | يعيد DateTime عند إدخال Date/DateTimeيعيد DateTime64 عند إدخال Date32/DateTime64 |
enable_filesystem_cache
enable_filesystem_cache_log
enable_filesystem_cache_on_write_operations
write-through. إذا ضُبطت القيمة على false، فسيتم تعطيل ذاكرة التخزين المؤقت write-through لعمليات الكتابة. وإذا ضُبطت على true، فسيتم تفعيل ذاكرة التخزين المؤقت write-through طالما أن cache_on_write_operations مفعّل في قسم disk configuration الخاص بـ cache disk ضمن config الخادم.
راجع “استخدام ذاكرة التخزين المؤقت المحلية” لمزيد من التفاصيل.
القيمة الافتراضية في Cloud: 1.
enable_filesystem_read_prefetches_log
system.filesystem prefetch_log أثناء تنفيذ الاستعلام. يجب استخدامه للاختبار أو debugging فقط، ولا يُنصح بتفعيله افتراضيًا
enable_full_text_index
allow_experimental_full_text_index
إذا ضُبط هذا الإعداد على true، فسيُسمح باستخدام الفهرس النصي.
enable_global_with_statement
enable_hdfs_pread
pread لملفات HDFS. ويُستخدم hdfsPread افتراضيًا. وإذا تم تعطيله، فسيُستخدم hdfsRead وhdfsSeek لقراءة ملفات HDFS.
enable_http_compression
- 0 — معطّل.
- 1 — مفعّل.
enable_identifier_resolve_cache
enable_job_stack_trace
enable_join_fixed_hash_table_conversion
enable_join_runtime_filters
enable_join_transitive_predicates
A.x = B.x و B.x = C.x، فستُضاف عبارة شرطية مُولَّدة A.x = C.x
لكي يتمكن مُحسِّن ترتيب الربط من النظر في خطط مباشرة من النوع (A JOIN C).
enable_lazy_columns_replication
enable_lightweight_delete
allow_experimental_lightweight_delete
تمكين طفرات DELETE خفيفة الوزن لجداول MergeTree.
enable_lightweight_update
allow_experimental_lightweight_update
يسمح باستخدام التحديثات الخفيفة.
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_optimize_predicate_expression
SELECT.
قد يؤدي تمرير شروط التصفية إلى تقليل حركة مرور الشبكة بشكل كبير في الاستعلامات الموزعة.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
SELECT count() FROM test_table WHERE date = '2018-10-10'SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'
enable_optimize_predicate_expression = 1، فسيكون زمن تنفيذ هذين الاستعلامين متساويًا لأن ClickHouse يطبّق WHERE على الاستعلام الفرعي أثناء معالجته.
إذا كانت القيمة enable_optimize_predicate_expression = 0، فسيكون زمن تنفيذ الاستعلام الثاني أطول بكثير لأن عبارة WHERE تُطبَّق على جميع البيانات بعد اكتمال الاستعلام الفرعي.
enable_optimize_predicate_expression_to_final_subquery
enable_order_by_all
ORDER BY ALL، راجع ORDER BY.
القيم الممكنة:
- 0 — تعطيل ORDER BY ALL.
- 1 — تمكين ORDER BY ALL.
enable_parallel_blocks_marshalling
enable_parsing_to_custom_serialization
enable_positional_arguments
- 0 — لا يتم دعم الوسائط الموضعية.
- 1 — يتم دعم الوسائط الموضعية: يمكن استخدام أرقام الأعمدة بدلًا من أسماء الأعمدة.
enable_positional_arguments_for_projections
هذا إعداد متقدم، ولا ينبغي تغييره إذا كنت لا تزال في بداية استخدام ClickHouse.
- 0 — الوسائط الموضعية غير مدعومة.
- 1 — الوسائط الموضعية مدعومة: يمكن استخدام أرقام الأعمدة بدلًا من أسماء الأعمدة.
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficient) بإخراج المجموعات دون التقيّد بالترتيب.
قد يؤدي ذلك إلى تحسين الأداء عندما تكون أحجام مجموعات التجميع غير متوازنة، إذ يتيح لنسخة متماثلة إرسال المجموعات ذات المعرّفات الأعلى إلى العقدة المُبادِرة بينما لا تزال تعالج بعض المجموعات الكبيرة ذات المعرّفات الأقل.
أما الجانب السلبي فهو احتمال زيادة استخدام الذاكرة.
enable_reads_from_query_cache
SELECT من ذاكرة التخزين المؤقت للاستعلامات.
القيم الممكنة:
- 0 - معطّل
- 1 - مفعّل
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY المجزأ الذي يوزّع الصفوف على الخيوط باستخدام hash لمفتاح التجميع، بحيث يجمّع كل خيط مجموعة فرعية مستقلة من المفاتيح من دون مرحلة دمج.
يكون ذلك فعّالًا للمفاتيح ذات الكاردينالية العالية مع البيانات الموزعة بالتساوي، لكنه قد يتأثر سلبًا عند وجود توزيعات شديدة الانحراف للمفاتيح أو استعلامات تتضمن عددًا قليلًا جدًا من المفاتيح المميزة.
القيم الممكنة:
- 0 — تحسين التجميع المجزأ معطّل.
- 1 — تحسين التجميع المجزأ مفعّل.
يؤدي تمكين هذا الإعداد إلى تعطيل التحسين الذي يزيل أجزاء البيانات غير الضرورية من اللقطات بعد اكتمال مرحلة التخطيط.
ونتيجةً لذلك، قد تحتفظ الاستعلامات طويلة التشغيل بأجزاء قديمة طوال مدتها، مما يؤخر تنظيف الأجزاء ويزيد الضغط على التخزين.ينطبق هذا الإعداد حاليًا فقط على الجداول التابعة لعائلة MergeTree.
- 0 - معطّل
- 1 - مُمكّن
enable_sharing_sets_for_mutations
enable_software_prefetch_in_aggregation
enable_software_prefetch_in_join
enable_streaming_queries
SELECT ... FROM t STREAM [CURSOR '{...}'].
عند إيقافه، يُرفض أي تعبير جدول يستخدم المعدِّل STREAM
في مرحلة بناء الخطة. هذا هو الإعداد العام الذي يتحكم في ميزة
الاستعلامات المتدفقة؛ وقد تُقيَّد إمكانات إضافية
بإعدادات خاصة بها.
enable_time_time64_type
allow_experimental_time_time64_type
يسمح بإنشاء نوعَي البيانات Time وTime64.
enable_unaligned_array_join
enable_url_encoding
uri في جداول محرك URL.
يكون معطّلًا افتراضيًا.
enable_vertical_final
enable_writes_to_query_cache
SELECT في ذاكرة التخزين المؤقت للاستعلامات.
القيم الممكنة:
- 0 - معطّل
- 1 - مفعّل
enforce_strict_identifier_format
engine_file_allow_create_multiple_files
JSON، ORC، Parquet، إلخ). عند التمكين، يُنشأ ملف جديد مع كل عملية insert باسم يتبع هذا pattern:
data.Parquet -> data.1.Parquet -> data.2.Parquet، وهكذا.
القيم الممكنة:
- 0 — تقوم query
INSERTبإلحاق data جديدة بنهاية الملف. - 1 — تقوم query
INSERTبإنشاء ملف جديد.
engine_file_empty_if_not_exists
- 0 —
SELECTيرفع استثناءً. - 1 —
SELECTيعيد نتيجة فارغة.
engine_file_skip_empty_files
- 0 — يُطلق
SELECTاستثناءً إذا كان الملف الفارغ غير متوافق مع التنسيق المطلوب. - 1 — يعيد
SELECTنتيجة فارغة عند وجود ملف فارغ.
engine_file_truncate_on_insert
- 0 — يُلحق استعلام
INSERTالبيانات الجديدة بنهاية الملف. - 1 — يستبدل استعلام
INSERTالمحتوى الحالي للملف بالبيانات الجديدة.
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
EXISTS غير المرتبطة كاستعلامات فرعية قيمية. وكما في الاستعلامات الفرعية القيمية، تُستخدَم ذاكرة التخزين المؤقت ويُطبَّق طيّ الثوابت على النتيجة.
القيمة الافتراضية في Cloud: 0.
external_storage_connect_timeout_sec
external_storage_max_read_bytes
external_storage_max_read_rows
external_storage_rw_timeout_sec
external_table_functions_use_nulls
- 0 — تستخدم الدالة الجدولية الأعمدة Nullable بشكل صريح.
- 1 — تستخدم الدالة الجدولية الأعمدة Nullable بشكل ضمني.
0، فلن تُنشئ الدالة الجدولية أعمدة Nullable، وستُدرِج القيم الافتراضية بدلًا من NULL. وينطبق ذلك أيضًا على قيم NULL داخل المصفوفات.
external_table_strict_query
extract_key_value_pairs_max_pairs_per_row
extract_kvp_max_pairs_per_row
الحد الأقصى لعدد الأزواج التي يمكن أن تُنتجها الدالة extractKeyValuePairs. يُستخدم كإجراء احترازي لتجنّب استهلاك قدر كبير جدًا من الذاكرة.
extremes
fallback_to_stale_replicas_for_distributed_queries
SELECT من جدول موزّع يشير إلى جداول متماثلة.
القيمة الافتراضية: 1 (مُمكّن).
file_like_engine_default_partition_strategy
filesystem_cache_allow_background_download
filesystem_cache_boundary_alignment
filesystem_cache_enable_background_download_during_fetch
filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage
filesystem_cache_max_download_size
filesystem_cache_name
filesystem_cache_prefer_bigger_buffer_size
filesystem_cache_reserve_space_wait_lock_timeout_milliseconds
filesystem_cache_segments_batch_size
filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit
skip_download_if_exceeds_query_cache
تخطّي التنزيل من نظام الملفات البعيد إذا تجاوز حجم ذاكرة التخزين المؤقت للاستعلامات
filesystem_prefetch_max_memory_usage
filesystem_prefetch_step_bytes
auto — أي سيُستنتج تلقائيًا حجم خطوة الجلب المسبق الأمثل تقريبًا، لكنه قد لا يكون الأفضل تمامًا. قد تختلف القيمة الفعلية بسبب الإعداد filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetch_step_marks
auto، أي سيُحدَّد تلقائيًا حجم خطوة الجلب المسبق الأنسب تقريبًا، لكنه قد لا يكون الأفضل بنسبة 100%. وقد تختلف القيمة الفعلية بسبب الإعداد filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage بدلاً من ذلك إذا كنت تريد تقييد عدد عمليات الجلب المسبق
final
- 0 - معطّل
- 1 - مُمكّن
finalize_projection_parts_synchronously
flatten_nested
- 1 — يُسطَّح عمود Nested إلى مصفوفات منفصلة.
- 0 — يبقى عمود Nested كمصفوفة واحدة من Tuple.
0، يمكن استخدام أي مستوى من التداخل.
أمثلة
الاستعلام:
force_aggregate_partitions_independently
force_aggregation_in_order
force_data_skipping_indices
force_grouping_standard_compatibility
force_index_by_date
force_index_by_date=1، يتحقّق ClickHouse مما إذا كان الاستعلام يتضمّن شرطًا على مفتاح التاريخ يمكن استخدامه لتقييد نطاقات البيانات. وإذا لم يكن هناك شرط مناسب، فإنه يُطلق استثناءً. ومع ذلك، فهو لا يتحقّق مما إذا كان هذا الشرط يقلّل كمية البيانات المطلوب قراءتها. على سبيل المثال، يُعدّ الشرط Date != ' 2000-01-01 ' مقبولًا حتى عندما يطابق جميع البيانات في الجدول (أي إن تشغيل الاستعلام يتطلّب فحصًا كاملًا). لمزيد من المعلومات حول نطاقات البيانات في جداول MergeTree، راجع MergeTree.
force_optimize_projection
SELECT عند تمكين تحسين الإسقاطات (راجع الإعداد optimize_use_projections).
القيم الممكنة:
- 0 — تحسين الإسقاطات ليس إلزاميًا.
- 1 — تحسين الإسقاطات إلزامي.
force_optimize_projection_name
- سلسلة نصية: اسم الإسقاط المستخدم في الاستعلام
force_optimize_skip_unused_shards
- 0 — معطّل. لا يرفع ClickHouse استثناءً.
- 1 — مُمكّن. يُعطَّل تنفيذ الاستعلام فقط إذا كان للجدول مفتاح تقسيم إلى شاردات.
- 2 — مُمكّن. يُعطَّل تنفيذ الاستعلام سواء أكان مفتاح التقسيم إلى شاردات معرّفًا للجدول أم لا.
force_optimize_skip_unused_shards_nesting
force_optimize_skip_unused_shards — وبالتالي لا يزال يتطلب تفعيل force_optimize_skip_unused_shards — وذلك بحسب مستوى التداخل في الاستعلام الموزع (أي في الحالة التي يكون لديك فيها جدول Distributed يستعلم من جدول Distributed آخر).
القيم الممكنة:
- 0 - معطّل، ويعمل
force_optimize_skip_unused_shardsدائمًا. - 1 — يفعّل
force_optimize_skip_unused_shardsللمستوى الأول فقط. - 2 — يفعّل
force_optimize_skip_unused_shardsحتى المستوى الثاني.
force_primary_key
force_primary_key=1، يتحقق ClickHouse مما إذا كان الاستعلام يحتوي على شرط للمفتاح الأساسي يمكن استخدامه لتقييد نطاقات البيانات. وإذا لم يكن هناك شرط مناسب، فإنه يُصدر استثناءً. ومع ذلك، لا يتحقق مما إذا كان هذا الشرط يقلّل كمية البيانات المطلوب قراءتها. لمزيد من المعلومات حول نطاقات البيانات في جداول MergeTree، راجع MergeTree.
force_remove_data_recursively_on_drop
formatdatetime_e_with_space_padding
formatdatetime_f_prints_scale_number_of_digits
formatdatetime_f_prints_single_zero
formatdatetime_format_without_leading_zeros
formatDateTime الأشهر والساعات من دون أصفار بادئة.
formatdatetime_parsedatetime_m_is_month_name
fsync_metadata
.sql. وهو مُفعَّل افتراضيًا.
من المنطقي تعطيله إذا كان لدى الخادم ملايين الجداول الصغيرة التي تُنشأ وتُحذف باستمرار.
function_base58_max_input_size
base58Encode وbase58Decode وtryBase58Decode. يكون تحويل base58 العام تربيعيًا بالنسبة إلى طول الإدخال، لذلك قد تستغرق قيمة كبيرة واحدة وقتًا طويلًا جدًا في التنفيذ. صُمم base58 للبيانات القصيرة (المفاتيح، وقيم التجزئة، والعناوين)، لذا فإن القيمة الافتراضية البالغة 10 كيلوبايت تُعد عتبة أمان سخية. تُطلق base58Encode وbase58Decode الخطأ TOO_LARGE_STRING_SIZE عند الإدخالات الأكبر، بينما تُرجع tryBase58Decode سلسلة فارغة. تؤدي القيمة 0 إلى تعطيل هذا القيد (وكان هذا هو السلوك قبل تقديم هذا الإعداد). ولا تتأثر دوال base32 وbase64 الخطية.
function_date_trunc_return_type_behavior
dateTrunc.
القيم الممكنة:
- 0 - عندما تكون الوسيطة الثانية
DateTime64/Date32، يكون نوع الإرجاعDateTime64/Date32بغضّ النظر عن وحدة الوقت في الوسيطة الأولى. - 1 - بالنسبة إلى
Date32، تكون النتيجة دائمًاDate. وبالنسبة إلىDateTime64، تكون النتيجةDateTimeلوحدات الوقتsecondوما أعلى.
function_implementation
function_json_value_return_type_allow_complex
- true — يُسمح به.
- false — لا يُسمح به.
function_json_value_return_type_allow_nullable
NULL عندما لا تكون هناك قيمة موجودة للدالة JSON_VALUE.
- true — السماح.
- false — عدم السماح.
function_locate_has_mysql_compatible_argument_order
- 0 — تقبل الدالة
locateالوسيطات(haystack, needle[, start_pos]). - 1 — تقبل الدالة
locateالوسيطات(needle, haystack, [, start_pos])(سلوك متوافق مع MySQL)
function_range_max_elements_in_block
- عدد صحيح موجب.
function_sleep_max_microseconds_per_block
sleep بالسكون خلالها لكل block. وإذا استدعاها مستخدم بقيمة أكبر، فسيؤدي ذلك إلى استثناء. وهذا حد أمان.
سلوك function_visible_width_behavior
visibleWidth. 0 - يحسب عدد code points فقط؛ 1 - يحسب المحارف ذات العرض الصفري والمحارف المُركَّبة بشكل صحيح، ويحسب المحارف كاملة العرض على أنها محرفان، ويقدّر عرض tab، ويحسب محارف الحذف.
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
grace_hash_join_initial_buckets
grace_hash_join_max_buckets
group_by_overflow_mode
throw: إثارة استثناءbreak: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئيةany: متابعة التجميع للمفاتيح التي دخلت إلى المجموعة، لكن من دون إضافة مفاتيح جديدة إليها.
any تشغيل تقريب لـ GROUP BY. وتعتمد جودة
هذا التقريب على الطبيعة الإحصائية للبيانات.
group_by_two_level_threshold
group_by_two_level_threshold_bytes
group_by_use_nulls
ROLLUP أو CUBE أو GROUPING SETS، قد لا تُستخدم بعض مفاتيح التجميع في إنشاء بعض صفوف النتائج.
وتُملأ أعمدة هذه المفاتيح في الصفوف المقابلة إما بالقيمة الافتراضية أو بـ NULL وفقًا لهذا الإعداد.
القيم الممكنة:
- 0 — تُستخدم القيمة الافتراضية لنوع مفتاح التجميع لملء القيم المفقودة.
- 1 — ينفّذ ClickHouse
GROUP BYبالطريقة نفسها التي ينص عليها معيار SQL. وتُحوَّل أنواع مفاتيح التجميع إلى Nullable. وتُملأ أعمدة مفاتيح التجميع المقابلة بـ NULL في الصفوف التي لم تُستخدم فيها هذه المفاتيح.
h3togeo_lon_lat_result_order
handshake_timeout_ms
hdfs_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz، وهكذا.
القيم الممكنة:
- 0 — يُلحِق استعلام
INSERTالبيانات الجديدة بنهاية الملف. - 1 — ينشئ استعلام
INSERTملفًا جديدًا.
hdfs_ignore_file_doesnt_exist
- 1 — يعيد
SELECTنتيجة فارغة. - 0 — يُثير
SELECTاستثناءً.
hdfs_replication
hdfs_skip_empty_files
- 0 — يُطلق
SELECTاستثناءً إذا لم يكن الملف الفارغ متوافقًا مع التنسيق المطلوب. - 1 — يعرض
SELECTنتيجة فارغة لملف فارغ.
hdfs_throw_on_zero_files_match
- 1 —
SELECTيُثير استثناءً. - 0 —
SELECTيعيد نتيجة فارغة.
hdfs_truncate_on_insert
- 0 — يُلحِق استعلام
INSERTالبيانات الجديدة بنهاية الملف. - 1 — يستبدل استعلام
INSERTالمحتوى الحالي للملف بالبيانات الجديدة.
hedged_connection_timeout_ms
highlight_max_matches_per_row
- عدد صحيح موجب.
hnsw_candidate_list_size_for_search
hsts_max_age
http_connection_timeout
- أي عدد صحيح موجب.
- 0 - مُعطَّل (مهلة لا نهائية).
http_headers_progress_interval_ms
http_headers_read_timeout
http_make_head_request
http_make_head_request تنفيذ طلب HEAD أثناء قراءة البيانات عبر HTTP لاسترجاع معلومات عن الملف المطلوب قراءته، مثل حجمه. ونظرًا إلى أنه مفعّل افتراضيًا، فقد يكون من المستحسن تعطيل هذا الإعداد في الحالات التي لا يدعم فيها الخادم طلبات HEAD.
http_max_field_name_size
http_max_field_value_size
http_max_fields
http_max_multipart_form_data_size
http_max_request_header_size
http_max_request_param_data_size
http_max_tries
http_max_uri_size
- عدد صحيح موجب.
http_native_compression_disable_checksumming_on_decompress
gzip أو deflate).
لمزيد من المعلومات، راجع وصف واجهة HTTP.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
http_receive_timeout
- أي عدد صحيح موجب.
- 0 - معطّل (مهلة غير محدودة).
http_response_buffer_size
http_response_headers
SET http_response_headers = '{"Content-Type": "image/png"}'
http_retry_initial_backoff_ms
http_retry_max_backoff_ms
http_send_timeout
- أي عدد صحيح موجب.
- 0 - معطّل (مهلة لا نهائية).
ينطبق هذا فقط على ملف تعريف
default. يلزم إعادة تشغيل الخادم لكي تدخل التغييرات حيّز التنفيذ.http_skip_not_found_url_for_globs
http_wait_end_of_query
http_write_exception_in_output_format
http_zlib_compression_level
iceberg_compaction_data_cleanup
iceberg_compaction_delay_bias
iceberg_data_file_size_lower_threshold_compaction
iceberg_data_file_size_upper_threshold_compaction
iceberg_delete_data_on_drop
iceberg_expire_default_max_ref_age_ms
history.expire.max-ref-age-ms التي يستخدمها expire_snapshots عند عدم وجود هذه الخاصية.
iceberg_expire_default_max_snapshot_age_ms
history.expire.max-snapshot-age-ms التي يستخدمها expire_snapshots عند عدم وجود هذه الخاصية.
iceberg_expire_default_min_snapshots_to_keep
history.expire.min-snapshots-to-keep التي يستخدمها expire_snapshots عند عدم وجود هذه الخاصية.
iceberg_insert_max_bytes_in_data_file
iceberg_insert_max_partitions
iceberg_insert_max_rows_in_data_file
iceberg_max_number_datafiles_to_compact
iceberg_metadata_compression_method
.metadata.json.
iceberg_metadata_log_level
system.iceberg_metadata_log.
وعادةً ما يمكن تعديل هذا الإعداد لأغراض استكشاف الأخطاء وإصلاحها.
القيم الممكنة:
- none - لا يوجد سجل للبيانات الوصفية.
- metadata - ملف
metadata.jsonالجذر. - manifest_list_metadata - كل ما سبق + البيانات الوصفية من
manifest listبتنسيق avro المطابقة لـ لقطة. - manifest_list_entry - كل ما سبق + إدخالات
manifest listبتنسيق avro. - manifest_file_metadata - كل ما سبق + البيانات الوصفية من
manifest filesبتنسيق avro التي تم اجتيازها. - manifest_file_entry - كل ما سبق + إدخالات
manifest filesبتنسيق avro التي تم اجتيازها.
iceberg_metadata_staleness_ms
iceberg_orphan_files_older_than_seconds
iceberg_snapshot_id
iceberg_timestamp_ms
idle_connection_timeout
- عدد صحيح موجب (0 - إغلاق فوري بعد 0 ثانية).
ignore_cold_parts_seconds
SELECT إلى أن تُحمَّل مسبقًا في الذاكرة (راجع cache_populated_by_fetch) أو إلى أن يبلغ عمرها هذا العدد من الثواني. وذلك فقط لمحركَي Replicated-/SharedMergeTree.
ignore_data_skipping_indices
xy_idx:
ignore_drop_queries_probability
ignore_format_null_for_explain
FORMAT Null في استعلامات EXPLAIN وسيُستخدم بدلًا منه تنسيق الإخراج الافتراضي.
إذا كان معطّلًا، فلن تُنتج استعلامات EXPLAIN التي تتضمن FORMAT Null أي مخرجات (وهو سلوك متوافق مع الإصدارات السابقة).
ignore_materialized_views_with_dropped_target_table
ignore_on_cluster_for_replicated_access_entities_queries
ignore_on_cluster_for_replicated_database
ignore_on_cluster_for_replicated_named_collections_queries
ignore_on_cluster_for_replicated_udf_queries
implicit_select
1 + 2 استعلامًا صالحًا.
في clickhouse-local يكون هذا الخيار مفعّلًا افتراضيًا، ويمكن تعطيله صراحةً.
implicit_table_at_top_level
implicit_transaction
inject_random_order_for_select_without_order_by
insert_allow_materialized_columns
insert_deduplicate
INSERT (لجداول Replicated*).
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
INSERT (انظر تكرار البيانات).
بالنسبة إلى الجداول المكررة، يُزال التكرار افتراضيًا فقط لأول 100 كتلة من أحدث الكتل في كل قسم (انظر replicated_deduplication_window، replicated_deduplication_window_seconds).
بالنسبة إلى الجداول غير المكررة، انظر non_replicated_deduplication_window.
insert_deduplication_token
- أي سلسلة نصية
insert_deduplication_token في إزالة التكرار إلا عندما لا يكون فارغًا.
بالنسبة إلى الجداول المكررة، افتراضيًا لا تُزال التكرارات إلا من أحدث 100 عملية insert لكل قسم (راجع replicated_deduplication_window، replicated_deduplication_window_seconds).
أما بالنسبة إلى not replicated tables، فراجع non_replicated_deduplication_window.
يعمل
insert_deduplication_token على مستوى قسم (تمامًا مثل checksum الخاصة بـ insert_deduplication). ويمكن لعدة أقسام أن تحمل القيمة نفسها لـ insert_deduplication_token.insert_keeper_fault_injection_probability
insert_keeper_fault_injection_seed
insert_keeper_max_retries
- عدد صحيح موجب.
- 0 — تكون إعادة المحاولة معطّلة
20.
تتم إعادة المحاولة لطلبات Keeper بعد مهلة زمنية معينة. وتتحكم في هذه المهلة الإعدادات التالية: insert_keeper_retry_initial_backoff_ms, insert_keeper_retry_max_backoff_ms.
تتم أول إعادة محاولة بعد المهلة المحددة في insert_keeper_retry_initial_backoff_ms. أما المهل اللاحقة فسيُحسب طولها كما يلي:
insert_keeper_retry_initial_backoff_ms=100 وinsert_keeper_retry_max_backoff_ms=10000 وinsert_keeper_max_retries=8، فستكون مدد المهلة 100, 200, 400, 800, 1600, 3200, 6400, 10000.
وبالإضافة إلى تحمّل الأعطال، تهدف إعادات المحاولة إلى توفير تجربة استخدام أفضل، إذ تتيح تجنّب إرجاع خطأ أثناء تنفيذ INSERT إذا أُعيد تشغيل Keeper، على سبيل المثال بسبب ترقية.
insert_keeper_retry_initial_backoff_ms
- عدد صحيح موجب.
- 0 — لا توجد مهلة انتظار
insert_keeper_retry_max_backoff_ms
- عدد صحيح موجب.
- 0 — المهلة الزمنية القصوى غير مقيّدة
insert_null_as_default
NULL يتسبب في حدوث استثناء. أما إذا كان نوع العمود Nullable، فتُدرج قيم NULL كما هي بغض النظر عن هذا الإعداد.
ينطبق هذا الإعداد على استعلامات INSERT … SELECT. لاحظ أن الاستعلامات الفرعية SELECT يمكن ربطها باستخدام البند UNION ALL.
القيم الممكنة:
- 0 — يتسبب إدراج
NULLفي عمود غير Nullable في حدوث استثناء. - 1 — تُدرج القيمة الافتراضية للعمود بدلًا من
NULL.
insert_quorum
لا ينطبق هذا الإعداد على SharedMergeTree، راجع اتساق SharedMergeTree لمزيد من المعلومات.
- إذا كان
insert_quorum < 2، تكون الكتابة بالنصاب معطّلة. - إذا كان
insert_quorum >= 2، تكون الكتابة بالنصاب مفعّلة. - إذا كان
insert_quorum = 'auto'، فاستخدم عدد الأغلبية (number_of_replicas / 2 + 1) بوصفه قيمة النصاب.
INSERT إلا عندما يتمكن ClickHouse من كتابة البيانات بنجاح إلى insert_quorum من النسخ المتماثلة خلال insert_quorum_timeout. وإذا لم يصل عدد النسخ المتماثلة التي نجحت الكتابة إليها إلى insert_quorum لأي سبب، فتُعدّ عملية الكتابة فاشلة، وسيحذف ClickHouse الـ كتلة المُدرَج من جميع النسخ المتماثلة التي كُتبت إليها البيانات بالفعل.
عندما يكون insert_quorum_parallel معطّلًا، تكون جميع النسخ المتماثلة ضمن النصاب متسقة، أي إنها تحتوي على بيانات جميع استعلامات INSERT السابقة (أي يكون تسلسل INSERT خطيًا). وعند قراءة البيانات المكتوبة باستخدام insert_quorum مع تعطيل insert_quorum_parallel، يمكنك تفعيل الاتساق التسلسلي لاستعلامات SELECT باستخدام select_sequential_consistency.
يُصدر ClickHouse استثناءً في الحالات التالية:
- إذا كان عدد النسخ المتماثلة المتاحة وقت تنفيذ الاستعلام أقل من
insert_quorum. - عندما يكون
insert_quorum_parallelمعطّلًا وتُجرى محاولة لكتابة البيانات قبل أن يكون الـ كتلة السابق قد أُدرج بعد فيinsert_quorumمن النسخ المتماثلة. وقد يحدث هذا إذا حاول المستخدم تنفيذ استعلامINSERTآخر على الجدول نفسه قبل اكتمال الاستعلام السابق الذي يستخدمinsert_quorum.
insert_quorum_parallel
لا ينطبق هذا الإعداد على SharedMergeTree، راجع SharedMergeTree consistency لمزيد من المعلومات.
INSERT بالنصاب. عند تمكينه، يمكن إرسال استعلامات INSERT إضافية قبل اكتمال الاستعلامات السابقة. وعند تعطيله، ستُرفض عمليات الكتابة الإضافية إلى الجدول نفسه.
القيم الممكنة:
- 0 — معطّل.
- 1 — مُمكّن.
insert_quorum_timeout
insert_shard_id
0، فإنها تحدد الشارد في جدول Distributed الذي ستُدرج فيه البيانات بشكل متزامن.
إذا كانت قيمة insert_shard_id غير صحيحة، فسيُطلق الخادم استثناءً.
للحصول على عدد الشاردات في requested_cluster، يمكنك التحقق من إعدادات الخادم أو استخدام هذا الاستعلام:
- 0 — معطّل.
- أي رقم من
1إلىshards_numللجدول Distributed المقابل.
interactive_delay
intersect_default_mode
jemalloc_collect_profile_samples_in_trace_log
jemalloc_enable_profiler
jemalloc_profile_text_collapsed_use_count
jemalloc_profile_text_output_format
jemalloc_profile_text_symbolize_with_inline
join_algorithm
- grace_hash
grace_hash_join_initial_buckets). ويُنفَّذ ذلك بطريقة تضمن إمكانية معالجة كل bucket بصورة مستقلة. تُضاف rows من bucket الأول إلى hash table في الذاكرة، بينما تُحفَظ buckets الأخرى على disk. وإذا نما hash table متجاوزًا memory limit (على سبيل المثال كما هو محدد بواسطة max_bytes_in_join)، فسيُزاد عدد buckets وكذلك bucket المخصّص لكل row. وتُفرَّغ أي rows لا تنتمي إلى bucket الحالي وتُعاد إعادة إسنادها.
يدعم INNER/LEFT/RIGHT/FULL ALL/ANY JOIN.
- hash
OR في قسم JOIN ON.
عند استخدام خوارزمية hash، يُحمَّل الجزء الأيمن من JOIN إلى RAM.
- parallel_hash
hash join يقسّم البيانات إلى buckets ويبني عدة hashtables بدلًا من جدول واحد بالتوازي لتسريع هذه العملية.
عند استخدام خوارزمية parallel_hash، يُحمَّل الجزء الأيمن من JOIN إلى RAM.
- partial_merge
RIGHT JOIN وFULL JOIN إلا مع صرامة من النوع ALL (SEMI وANTI وANY وASOF غير مدعومة).
عند استخدام خوارزمية partial_merge، يقوم ClickHouse بفرز البيانات وتفريغها إلى disk. تختلف خوارزمية partial_merge في ClickHouse قليلًا عن التنفيذ التقليدي. أولًا، يفرز ClickHouse الجدول الأيمن حسب join keys على شكل blocks، ويُنشئ min-max index للـ blocks المرتبة. ثم يفرز أجزاءً من الجدول الأيسر حسب join key ويُجري join عليها مع الجدول الأيمن. ويُستخدم min-max index أيضًا لتخطي blocks غير اللازمة من الجدول الأيمن.
- direct
direct (المعروفة أيضًا باسم nested loop) عملية lookup في الجدول الأيمن باستخدام rows من الجدول الأيسر بوصفها keys.
وهي مدعومة من storages خاصة مثل Dictionary وEmbeddedRocksDB وMergeTree tables.
بالنسبة إلى MergeTree tables، تدفع الخوارزمية مرشحات join key مباشرةً إلى storage layer. ويمكن أن يكون ذلك أكثر كفاءة عندما يمكن للمفتاح استخدام primary key index الخاص بالجدول في عمليات lookup، وإلا فإنها تُجري full scans للجدول الأيمن لكل left table block.
يدعم INNER وLEFT joins، كما يدعم فقط مفاتيح join قائمة على المساواة لعمود واحد ومن دون شروط أخرى.
- auto
auto، تتم تجربة hash join أولًا، ثم تُبدَّل الخوارزمية أثناء التنفيذ إلى خوارزمية أخرى إذا جرى تجاوز memory limit.
- full_sorting_merge
- prefer_partial_merge
partial_merge join إن أمكن، وإلا فإنه يستخدم hash. هذا الخيار Deprecated، وهو مماثل لـ partial_merge,hash.
- default (deprecated)
direct,hash، أي محاولة استخدام direct join ثم hash join (بهذا الترتيب).
join_any_take_last_row
JOIN ذات الصرامة ANY.
ينطبق هذا الإعداد فقط على عمليات
JOIN مع جداول محرك Join.- 0 — إذا كان الجدول الأيمن يحتوي على أكثر من صف مطابق واحد، فسيُضم أول صف يتم العثور عليه فقط.
- 1 — إذا كان الجدول الأيمن يحتوي على أكثر من صف مطابق واحد، فسيُضم آخر صف يتم العثور عليه فقط.
join_default_strictness
ALL— إذا كان الجدول الأيمن يحتوي على عدة صفوف متطابقة، يُنشئ ClickHouse الجداء الديكارتي من الصفوف المتطابقة. هذا هو سلوكJOINالمعتاد في SQL القياسية.ANY— إذا كان الجدول الأيمن يحتوي على عدة صفوف متطابقة، فلا يُضمّ إلا أول صف يتم العثور عليه. وإذا كان الجدول الأيمن يحتوي على صف متطابق واحد فقط، فستكون نتائجANYوALLمتطابقة.ASOF— لربط التسلسلات التي تكون المطابقة فيها غير مؤكدة.Empty string— إذا لم يتم تحديدALLأوANYفي الاستعلام، فسيُصدر ClickHouse استثناءً.
join_on_disk_max_files_to_merge
- أي عدد صحيح موجب يبدأ من 2.
join_output_by_rowlist_perkey_rows_threshold
join_overflow_mode
join إلى أيٍّ من الحدود التالية:
لا يُراعى هذا الإعداد إلا مع قيم join_algorithm من النوعين hash وparallel_hash. أما الخوارزميات الأخرى (على سبيل المثال، partial_merge وgrace_hash وauto) فتتعامل مع هذه الحدود بطريقة مختلفة — مثل الكتابة إلى القرص، أو إعادة التقسيم، أو تبديل الاستراتيجية — راجع join_algorithm.
القيم الممكنة:
THROW— يُطلق ClickHouse استثناءً ويوقف الاستعلام.BREAK— يوقف ClickHouse الاستعلام ولا يُطلق استثناءً.
THROW.
راجع أيضًا
join_runtime_bloom_filter_bytes
join_runtime_bloom_filter_hash_functions
join_runtime_bloom_filter_max_ratio_of_set_bits
join_runtime_filter_blocks_to_skip_before_reenabling
join_runtime_filter_exact_values_limit
join_runtime_filter_from_fixed_hash_table
hash join إلى FixedHashMap (راجع enable_join_fixed_hash_table_conversion)، استخدم خريطة التجزئة هذه مباشرةً كمرشح وقت التشغيل.
join_runtime_filter_pass_ratio_threshold_for_disabling
join_runtime_filter_blocks_to_skip_before_reenabling التالية لتقليل الكلفة الإضافية.
join_to_sort_maximum_table_rows
join_to_sort_minimum_perkey_rows
join_use_nulls
- 0 — تُملأ الخلايا الفارغة بالقيمة الافتراضية لنوع الحقل المقابل.
- 1 — يتصرف
JOINبالطريقة نفسها المتّبعة في SQL القياسي. ويُحوَّل نوع الحقل المقابل إلى Nullable، وتُملأ الخلايا الفارغة بـ NULL.
joined_block_split_single_row
hash join إلى أجزاء بحسب الصفوف المرتبطة بصف واحد من الجدول الأيسر.
قد يقلل ذلك من استخدام الذاكرة عندما يكون هناك صف له عدد كبير من المطابقات في الجدول الأيمن، لكنه قد يزيد من استخدام CPU.
لاحظ أن max_joined_block_size_rows != 0 شرط إلزامي لكي يكون لهذا الإعداد أي تأثير.
كما يساعد max_joined_block_size_bytes مع هذا الإعداد على تجنب الاستخدام المفرط للذاكرة في حالات البيانات غير المتوازنة، حيث تحتوي بعض الصفوف الكبيرة على عدد كبير من المطابقات في الجدول الأيمن.
joined_subquery_requires_alias
kafka_disable_num_consumers_limit
kafka_num_consumers والمعتمد على عدد نوى CPU المتاحة.
kafka_max_wait_ms
- عدد صحيح موجب.
- 0 — مهلة غير محدودة.
keeper_map_strict_mode
insert لمفتاح موجود مسبقًا
keeper_max_retries
keeper_retry_initial_backoff_ms
keeper_retry_max_backoff_ms
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
lightweight_delete_mode
alter_update- شغّل استعلامALTER UPDATEالذي ينشئ mutation كثيفة الوزن.lightweight_update- شغّل تحديثًا خفيف الوزن إن أمكن، وإلا فشغّلALTER UPDATE.lightweight_update_force- شغّل تحديثًا خفيف الوزن إن أمكن، وإلا فارفع استثناءً.
lightweight_deletes_sync
mutations_sync، لكنه يتحكم فقط في تنفيذ عمليات الحذف الخفيف.
القيم الممكنة:
| القيمة | الوصف |
|---|---|
0 | تُنفَّذ عمليات mutation بشكل غير متزامن. |
1 | ينتظر الاستعلام حتى تكتمل عمليات الحذف الخفيف على الخادم الحالي. |
2 | ينتظر الاستعلام حتى تكتمل عمليات الحذف الخفيف على جميع النسخ المتماثلة (إن وُجدت). |
3 | ينتظر الاستعلام اكتمالها على النسخ المتماثلة النشطة فقط. وهو مدعوم فقط لـ SharedMergeTree. أما بالنسبة إلى ReplicatedMergeTree، فيتصرف بالطريقة نفسها كما في mutations_sync = 2. |
1.
limit
- 0 — عدد الصفوف غير مقيّد.
- عدد صحيح موجب.
load_balancing
- Random (افتراضيًا)
- Nearest hostname
- Hostname levenshtein distance
- Hostname longest common prefix
- Hostname longest common suffix
- In order
- First or random
- Round robin
Random (الإعداد الافتراضي)
أقرب اسم مضيف
مسافة ليفنشتاين لاسم المضيف
nearest_hostname، لكنه يقارن اسم المضيف بناءً على مسافة Levenshtein. على سبيل المثال:
أطول بادئة مشتركة لاسم المضيف
nearest_hostname، لكن تُفضَّل النسخة المتماثلة التي يتشارك اسم مضيفها أطول بادئة مشتركة مع اسم المضيف المحلي (فكلما زاد طول البادئة المشتركة، ارتفعت الأولوية). وخلافًا لـ nearest_hostname، الذي يحسب الأحرف المختلفة حرفًا بحرف بحسب مواضعها، فإن هذه الاستراتيجية لا تلتبس عليها أسماء المضيفين التي تختلف أطوال مقاطعها الرقمية. على سبيل المثال، بالنسبة إلى اسم المضيف المحلي sfe301:
sfe10101 لأنه يشترك مع sfe301 في أطول بادئة مشتركة (sfe، بطول 3).
تُختار النسخ المتماثلة التي لها الطول نفسه للبادئة المشتركة عشوائيًا. وعلى وجه الخصوص، عندما لا تشترك أي نسخة متماثلة في أي بادئة مع اسم المضيف المحلي (أي تكون جميع أطوال البادئة المشتركة صفرًا)، تعمل هذه الاستراتيجية تمامًا مثل random.
أطول لاحقة مشتركة لاسم المضيف
hostname_longest_common_prefix، لكن تُقارَن أطول لاحقة مشتركة بدلًا من البادئة. ويكون هذا مفيدًا عندما تكون هوية مركز البيانات مُشفَّرة في لاحقة اسم المضيف. على سبيل المثال، بالنسبة إلى اسم المضيف المحلي et46gtghn.qc.localdomain:
ab999.qc.localdomain لأنه يطابق أطول لاحقة مشتركة (.qc.localdomain، بطول 15) مع et46gtghn.qc.localdomain.
تُختار النُسخ المتماثلة ذات اللاحقة المشتركة المتساوية في الطول عشوائيًا. وعلى وجه الخصوص، عندما لا تتشارك أي نسخة متماثلة أي لاحقة مع اسم المضيف المحلي (أي عندما تكون جميع أطوال اللواحق المشتركة صفرًا)، فإن هذه الاستراتيجية تعمل تمامًا مثل random.
حسب الترتيب
الأول أو العشوائي
first_or_random المشكلة الموجودة في خوارزمية in_order. عند استخدام in_order، إذا تعطلت إحدى النسخ المتماثلة، تتحمل النسخة التالية حملاً مضاعفًا، بينما تتعامل النسخ المتماثلة المتبقية مع الحجم المعتاد من حركة المرور. وعند استخدام خوارزمية first_or_random، يُوزَّع الحمل بالتساوي بين النسخ المتماثلة التي لا تزال متاحة.
يمكن تحديد النسخة المتماثلة الأولى صراحةً باستخدام الإعداد load_balancing_first_offset. ويوفّر ذلك تحكمًا أكبر في إعادة موازنة أعباء عمل الاستعلامات بين النسخ المتماثلة.
التناوب الدوري
round_robin).
load_balancing_first_offset
load_marks_asynchronously
1.
local_filesystem_read_method
local_filesystem_read_prefetch
lock_acquire_timeout
DEADLOCK_AVOIDED.
القيم الممكنة:
- عدد صحيح موجب (بالثواني).
- 0 — لا توجد مهلة للقفل.
log_comment
log_comment في جدول system.query_log، وكذلك نص التعليق في سجل الخادم.
يمكن استخدامه لتحسين سهولة قراءة سجلات الخادم. بالإضافة إلى ذلك، يساعد في تحديد الاستعلامات المرتبطة بالاختبار من system.query_log بعد تشغيل clickhouse-test.
القيم الممكنة:
- أي سلسلة نصية لا يزيد طولها عن max_query_size. إذا تم تجاوز max_query_size، فإن الخادم يُطلق استثناءً.
log_formatted_queries
formatted_query في system.query_log).
القيم الممكنة:
- 0 — لا تُسجَّل الاستعلامات المنسَّقة في جدول النظام.
- 1 — تُسجَّل الاستعلامات المنسَّقة في جدول النظام.
log_processors_profiles
system.processors_profile_log.
انظر أيضًا:
log_profile_events
log_queries
log_queries_cut_to_length
log_queries_min_query_duration_ms
long_query_time في MySQL Slow Query Log)، وهذا يعني عمليًا أنك لن تجدها في الجداول التالية:
system.query_logsystem.query_thread_log
-
QUERY_FINISH -
EXCEPTION_WHILE_PROCESSING - النوع: مللي ثانية
- القيمة الافتراضية: 0 (أي استعلام)
log_queries_min_type
query_log.
القيم الممكنة:
QUERY_START(=1)QUERY_FINISH(=2)EXCEPTION_BEFORE_START(=3)EXCEPTION_WHILE_PROCESSING(=4)
query_log؛ فإذا كنت مهتمًا بالأخطاء فقط، يمكنك استخدام EXCEPTION_WHILE_PROCESSING:
log_queries_probability
- 0 — لا تُسجَّل الاستعلامات في جداول النظام.
- عدد موجب بفاصلة عائمة ضمن النطاق [0..1]. على سبيل المثال، إذا كانت قيمة الإعداد
0.5، فسيُسجَّل نحو نصف الاستعلامات في جداول النظام. - 1 — تُسجَّل جميع الاستعلامات في جداول النظام.
log_query_settings
query_log وفي سجل span الخاص بـ OpenTelemetry.
log_query_threads
- 0 — معطّل.
- 1 — مفعّل.
log_query_views
low_cardinality_allow_in_native_format
LowCardinality مقيّدًا، فإن ClickHouse server يحوّل أعمدة LowCardinality إلى أعمدة عادية في استعلامات SELECT، ويحوّل الأعمدة العادية إلى أعمدة LowCardinality في استعلامات INSERT.
يكون هذا الإعداد مطلوبًا بشكل أساسي لبرامج client التابعة لجهات خارجية التي لا تدعم نوع البيانات LowCardinality.
القيم الممكنة:
- 1 — استخدام
LowCardinalityغير مقيّد. - 0 — استخدام
LowCardinalityمقيّد.
low_cardinality_max_dictionary_size
- أي عدد صحيح موجب.
low_cardinality_use_single_dictionary_for_part
low_cardinality_use_single_dictionary_for_part = 1.
القيم الممكنة:
- 1 — يُمنع إنشاء عدة قواميس لجزء البيانات.
- 0 — لا يُمنع إنشاء عدة قواميس لجزء البيانات.
low_priority_query_wait_time_ms
priority)، تنتظر الاستعلامات منخفضة الأولوية حتى تنتهي الاستعلامات ذات الأولوية الأعلى. يحدّد هذا الإعداد مدة الانتظار.
make_distributed_plan
materialize_skip_indexes_on_insert
materialize_statistics_on_insert
materialize_ttl_after_modify
materialized_views_ignore_errors
SELECT الخاص به أو في sink الجدول الداخلي) على أنها تحذير، وتنجح عبارة INSERT. وإذا كان معطّلًا (وهو الوضع الافتراضي)، فسينتقل هذا الاستثناء وتفشل عبارة INSERT.
يتحكم هذا الإعداد في الإبلاغ عن الأخطاء فقط. فهو لا يتسبب في التراجع عن الكتابة إلى الجدول المصدر، ولا يضمن ما إذا كانت الكتلة الأصلية قد تم commit لها بالفعل إلى الجدول المصدر عند حدوث خطأ في pipeline لعرض تابع. وعند تعطيله (وهو الوضع الافتراضي)، تفشل INSERT عند حدوث خطأ في عرض — أعد المحاولة باستخدام إزالة تكرار الإدراج (insert_deduplicate, deduplicate_blocks_in_dependent_materialized_views) لضمان التسليم مرة واحدة بالضبط إلى الجدول المصدر وجميع العروض التابعة. وعند تفعيله، تُبلّغ INSERT عن النجاح رغم التسليم الجزئي إلى العروض التي حدث فيها فشل والسلاسل اللاحقة التابعة لها؛ استخدم هذا فقط عندما يجب ألا تُحجَب عمليات الكتابة إلى الجدول المصدر بسبب مشكلات في جانب العرض (على سبيل المثال، جداول system.*_log). راجع وثائق CREATE VIEW للاطلاع على الدلالات الكاملة.
materialized_views_squash_parallel_inserts
parallel_view_processing مُمكّنًا، فسيُنشئ استعلام INSERT جزءًا في الجدول الوجهة لكل max_insert_thread.
max_analyze_depth
max_ast_depth
في الوقت الحالي، لا يُتحقَّق من ذلك أثناء التحليل، بل فقط بعد تحليل الاستعلام.
وهذا يعني أنه يمكن إنشاء شجرة نحوية عميقة جدًا أثناء التحليل،
لكن الاستعلام سيفشل.
max_ast_elements
في الوقت الحالي، لا يتم التحقق منه أثناء التحليل، بل بعد تحليل الاستعلام فقط.
وهذا يعني أنه يمكن إنشاء شجرة نحوية أعمق من اللازم أثناء التحليل،
لكن الاستعلام سيفشل.
max_autoincrement_series
generateSerialID.
وبما أن كل سلسلة تمثل عقدة في Keeper، يُوصى بألا يتجاوز عددها بضعة ملايين.
max_backup_bandwidth
max_block_size
max_block_size إلى الحد الأقصى الموصى به لعدد الصفوف التي ينبغي تضمينها في كتلة واحدة عند تحميل البيانات من الجداول. ولا تُحمَّل كتل بحجم max_block_size دائمًا من الجدول: فإذا قرر ClickHouse أن هناك حاجة إلى استرجاع بيانات أقل، فستُعالَج كتلة أصغر.
يجب ألا يكون حجم الكتلة صغيرًا جدًا لتجنّب التكاليف الملحوظة عند معالجة كل كتلة. كما يجب ألا يكون كبيرًا جدًا لضمان تنفيذ الاستعلامات التي تحتوي على عبارة LIMIT بسرعة بعد معالجة الكتلة الأولى. عند ضبط max_block_size، ينبغي أن يكون الهدف هو تجنّب استهلاك قدر كبير من الذاكرة عند استخراج عدد كبير من الأعمدة باستخدام عدة خيوط، مع الحفاظ على قدرٍ ما على الأقل من محلية ذاكرة التخزين المؤقت.
max_bytes_before_external_group_by
GROUP BY باستخدام الذاكرة الخارجية.
(راجع GROUP BY in external memory)
القيم الممكنة:
- الحد الأقصى لحجم RAM (بالبايت) الذي يمكن أن تستخدمه عملية GROUP BY واحدة.
0— تعطيلGROUP BYفي الذاكرة الخارجية.
إذا تجاوز استخدام الذاكرة أثناء عمليات GROUP BY هذه العتبة (بالبايت)،
فسيتم تفعيل وضع «التجميع الخارجي» (كتابة البيانات المؤقتة إلى القرص).القيمة الموصى بها هي نصف ذاكرة النظام المتاحة.
max_bytes_before_external_join
join_algorithm هو hash أو parallel_hash أو default أو auto، فسيتم تحويل hash join تلقائيًا إلى grace hash join لتمكين التفريغ إلى القرص عندما تتجاوز البيانات الموجودة في الجانب الأيمن هذا العدد من البايتات. وعند ضبطها على 0 (الافتراضي)، تُعطَّل عتبة البايت المطلقة هذه، لكن قد يظل التفريغ التلقائي يحدث عبر max_bytes_ratio_before_external_join (الذي تكون قيمته الافتراضية 0.5)؛ اضبط كليهما على 0 لتعطيل التفريغ التلقائي بالكامل. ويمنع ذلك تحسين read in order through join.
max_bytes_before_external_sort
ORDER BY في الذاكرة الخارجية. راجع تفاصيل تنفيذ ORDER BY
إذا تجاوز استخدام الذاكرة أثناء عملية ORDER BY هذه العتبة، محسوبًا بالبايتات، فسيتم تفعيل وضع “الفرز الخارجي” (كتابة البيانات إلى القرص).
القيم الممكنة:
- الحد الأقصى لحجم RAM (بالبايتات) الذي يمكن أن تستخدمه عملية ORDER BY واحدة. القيمة الموصى بها هي نصف ذاكرة النظام المتاحة
0— تعطيلORDER BYفي الذاكرة الخارجية.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm المختار — راجع
ذلك الإعداد لمعرفة السلوك الخاص بكل خوارزمية (spill، أو إعادة التقسيم، أو التبديل، أو
throw/break وفقًا لـ join_overflow_mode).
القيم الممكنة:
- عدد صحيح موجب.
- 0 — يتم تعطيل التحكم في الذاكرة.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY. وعند بلوغ هذا الحد،
تُستخدم الذاكرة الخارجية للتجميع.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح GROUP BY باستخدام 60% من الذاكرة المتاحة
(server/user/merges) في بداية التنفيذ، وبعد ذلك سيبدأ
باستخدام التجميع الخارجي.
max_bytes_ratio_before_external_join
JOIN. وعند الوصول إليها، سيُحوَّل hash join إلى grace hash join لتفريغ بيانات الجانب الأيمن إلى القرص.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح JOIN باستخدام 60% من الذاكرة المتاحة (لـ server/user/merges) لجدول التجزئة الخاص بالجانب الأيمن في بداية التنفيذ؛ وبعد ذلك يبدأ التفريغ إلى القرص.
إذا كان كلٌّ من max_bytes_before_external_join وmax_bytes_ratio_before_external_join مضبوطَين، فستُستخدم عتبة النتيجة الأصغر. وإذا كانت النسبة 0، فلن يُطبَّق إلا الإعداد المطلق.
لا يكون له تأثير إلا عندما تكون قيمة join_algorithm هي hash أو parallel_hash أو default أو auto، وعندما يكون مسار بيانات مؤقت مُهيّأً.
max_bytes_ratio_before_external_sort
ORDER BY. وعند بلوغها، يُستخدم الفرز الخارجي.
على سبيل المثال، إذا ضُبطت على 0.6، فسيسمح ORDER BY باستخدام 60% من الذاكرة المتاحة (على مستوى server/user/merges) في بداية التنفيذ، وبعد ذلك سيبدأ باستخدام الفرز الخارجي.
لاحظ أن max_bytes_before_external_sort يظل مُطبَّقًا، ولن يتم التفريغ إلى القرص إلا إذا كانت كتلة الفرز أكبر من max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150 سيفشل لأن
الإجمالي سيكون 200 بايت. أما الاستعلام الذي يستخدم
max_bytes_to_read_leaf=150 فسينجح لأن العقد الطرفية ستقرأ 100 بايت كحد
أقصى.
يُتحقق من هذا القيد لكل chunk من البيانات تتم معالجته.
هذا الإعداد غير مستقر مع
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode، والذي يكون مضبوطًا افتراضيًا على throw.
max_bytes_to_transfer
max_columns_to_read
0 عدم وجود حد.
max_compress_block_size
هذا إعداد مخصّص للمستخدمين الخبراء، ولا ينبغي تغييره إذا كنت لا تزال في بداية استخدام ClickHouse.
max_concurrent_queries_for_all_users
max_concurrent_queries_for_all_users على 99 لجميع المستخدمين، ويمكن لمسؤول قاعدة البيانات ضبطه على 100 لنفسه لتشغيل استعلامات الاستقصاء حتى عندما يكون الخادم محمّلًا فوق طاقته.
لا يؤثر تعديل هذا الإعداد لاستعلام واحد أو لمستخدم واحد على الاستعلامات الأخرى.
القيم الممكنة:
- عدد صحيح موجب.
- 0 — بلا حد.
1000.
max_concurrent_queries_for_user
- عدد صحيح موجب.
- 0 — بدون حد.
max_consume_snapshots
max_distributed_connections
max_distributed_depth
- عدد صحيح موجب.
- 0 — عمق غير محدود.
max_download_buffer_size
max_download_threads
max_estimated_execution_time
timeout_before_checking_execution_speed.
max_execution_speed
timeout_before_checking_execution_speed.
إذا كانت سرعة التنفيذ مرتفعة، فستُخفَّض.
max_execution_speed_bytes
timeout_before_checking_execution_speed.
إذا كانت سرعة التنفيذ مرتفعة، فستُخفَّض.
max_execution_time
max_execution_time مربكًا بعض الشيء.
فهي تعمل بالاستناد إلى الاستيفاء وفقًا لسرعة تنفيذ الاستعلام الحالية
(ويُتحكَّم في هذا السلوك بواسطة timeout_before_checking_execution_speed).
سيقوم ClickHouse بإيقاف الاستعلام إذا تجاوز وقت التنفيذ المقدَّر
قيمة max_execution_time المحددة. افتراضيًا، تُضبط timeout_before_checking_execution_speed
على 10 ثوانٍ. وهذا يعني أنه بعد مرور 10 ثوانٍ على تنفيذ الاستعلام، سيبدأ ClickHouse
في تقدير إجمالي وقت التنفيذ. فإذا كانت max_execution_time، على سبيل المثال،
مضبوطة على 3600 ثانية (ساعة واحدة)، فسينهي ClickHouse الاستعلام إذا تجاوز الوقت المقدَّر
هذا الحد البالغ 3600 ثانية. وإذا ضبطت timeout_before_checking_execution_speed
على 0، فسيستخدم ClickHouse الوقت الفعلي أساسًا لـ max_execution_time.
إذا تجاوز وقت تشغيل الاستعلام عدد الثواني المحدد، فسيتحدد السلوك
بواسطة timeout_overflow_mode، والتي تُضبط افتراضيًا على throw.
تُفحَص المهلة، ولا يمكن إيقاف الاستعلام إلا عند نقاط محددة أثناء معالجة البيانات.
وحاليًا، لا يمكن إيقافه أثناء دمج حالات التجميع أو أثناء تحليل الاستعلام،
ولذلك سيكون وقت التشغيل الفعلي أعلى من قيمة هذا الإعداد.
max_execution_time_leaf
max_execution_time، لكنه يُطبَّق فقط
على العقد الطرفية في الاستعلامات الموزعة أو البعيدة.
على سبيل المثال، إذا أردنا تقييد وقت التنفيذ على عقدة طرفية إلى 10s، ولكن
من دون أي حد على العقدة الأولية، فبدلًا من وضع max_execution_time في
إعدادات الاستعلام الفرعي المتداخل:
max_execution_time_leaf ضمن إعدادات الاستعلام:
max_expanded_ast_elements
max_fetch_partition_retries_count
max_final_threads
SELECT مع المُعدِّل FINAL.
القيم الممكنة:
- عدد صحيح موجب.
- 0 أو 1 — معطّل. تُنفَّذ استعلامات
SELECTباستخدام خيط تنفيذ واحد.
max_http_get_redirects
10.
max_hyperscan_regexp_length
- عدد صحيح موجب.
- 0 - الطول غير محدود.
max_hyperscan_regexp_total_length
- عدد صحيح موجب.
- 0 - الطول غير مقيَّد.
max_insert_block_size
max_insert_block_size_rows
الحد الأقصى لحجم الكتل (من حيث عدد الصفوف) التي يتم تشكيلها لإدراجها في جدول.
يتحكم هذا الإعداد في تشكيل الكتل ضمن سياقين:
-
تحليل التنسيقات: عندما يحلل الخادم تنسيقات الإدخال المعتمدة على الصفوف (مثل CSV وTSV وJSONEachRow وغيرها) من أي واجهة (HTTP، أو clickhouse-client مع البيانات المضمّنة inline، أو gRPC، أو PostgreSQL wire protocol)، يتم إصدار الكتل عند:
- الوصول إلى كلٍّ من min_insert_block_size_rows وmin_insert_block_size_bytes معًا، OR
- الوصول إلى أيٍّ من max_insert_block_size_rows أو max_insert_block_size_bytes
-
عمليات INSERT: أثناء استعلامات INSERT وعندما تتدفق البيانات عبر العروض المادية، يعتمد سلوك هذا الإعداد على
use_strict_insert_block_limits:-
عند التمكين: يتم إصدار الكتل عندما:
- الحدود الدنيا (AND): يتم الوصول إلى كلٍّ من min_insert_block_size_rows وmin_insert_block_size_bytes معًا
- الحدود القصوى (OR): يتم الوصول إلى أيٍّ من max_insert_block_size_rows أو max_insert_block_size_bytes
- عند التعطيل: يتم إصدار الكتل عند الوصول إلى min_insert_block_size_rows أو min_insert_block_size_bytes. ولا يتم فرض إعدادات max_insert_block_size.
-
عند التمكين: يتم إصدار الكتل عندما:
- عدد صحيح موجب.
max_insert_block_size_bytes
- عدد صحيح موجب.
- 0 — لا يشارك الإعداد في تكوين الكتل.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
القيم الممكنة:
- 0 (أو 1) —
INSERT SELECTبدون تنفيذ متوازٍ. - عدد صحيح موجب أكبر من 1.
1للعُقد التي تحتوي على ذاكرة بحجم 8 GiB2للعُقد التي تحتوي على ذاكرة بحجم 16 GiB4للعُقد الأكبر
INSERT SELECT المتوازي تأثير إلا إذا كان جزء SELECT يُنفَّذ على التوازي. راجع إعداد max_threads.
ستؤدي القيم الأعلى إلى زيادة استخدام الذاكرة.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread، لكنه يُطبَّق على max_insert_threads بدلًا من max_threads. تكون القيمة الافتراضية أعلى لأن مسارات معالجة insert تحتفظ عادةً بمخازن مؤقتة أكبر لكل خيط (أجزاء MergeTree وكتل الضغط) مقارنةً بمسارات القراءة.
إذا كانت كمية الذاكرة الحرة أقل من حاصل ضرب max_insert_threads في هذه القيمة، فسيُخفَّض max_insert_threads بما يتناسب مع ذلك، على ألا يقل عن 1.
اضبطه على 0 لتعطيل هذا القيد.
max_joined_block_size_bytes
max_joined_block_size_rows
max_limit_for_vector_search_queries
max_local_read_bandwidth
max_local_write_bandwidth
max_memory_usage
0 عدم وجود حد.
لا يأخذ هذا الإعداد في الحسبان حجم الذاكرة المتاحة أو الحجم الإجمالي
للذاكرة على الجهاز. وينطبق هذا التقييد على استعلام واحد ضمن
خادم واحد.
يمكنك استخدام SHOW PROCESSLIST لمعرفة استهلاك الذاكرة الحالي لكل استعلام.
ويتم تتبّع ذروة استهلاك الذاكرة لكل استعلام وكتابتها في السجل.
لا يتم تتبّع استخدام الذاكرة بالكامل لحالات الدوال التجميعية
التالية من الوسيطات String وArray:
minmaxanyanyLastargMinargMax
max_memory_usage_for_user
وmax_server_memory_usage.
max_memory_usage_for_user
max_memory_usage_for_user = 0).
راجع أيضًا وصف max_memory_usage.
على سبيل المثال، إذا أردت ضبط max_memory_usage_for_user على 1000 بايت لمستخدم باسم clickhouse_read، يمكنك استخدام عبارة statement
getSetting:
max_network_bandwidth
- عدد صحيح موجب.
- 0 — يكون التحكم في عرض النطاق الترددي معطّلًا.
max_network_bandwidth_for_all_users
- عدد صحيح موجب.
- 0 — يكون التحكم في سرعة نقل البيانات معطّلًا.
max_network_bandwidth_for_user
- عدد صحيح موجب.
- 0 — يكون التحكّم في سرعة نقل البيانات معطّلًا.
max_network_bytes
- عدد صحيح موجب.
- 0 — يكون التحكّم في حجم البيانات معطّلًا.
max_number_of_partitions_for_independent_aggregation
max_os_cpu_wait_time_ratio_to_throw
max_parallel_replicas
- عدد صحيح موجب.
المعالجة المتوازية باستخدام مفتاح SAMPLE
- لا يسمح موضع مفتاح أخذ العينات ضمن مفتاح التقسيم بإجراء عمليات مسح نطاق فعّالة.
- تؤدي إضافة مفتاح أخذ عينات إلى الجدول إلى تقليل كفاءة التصفية حسب الأعمدة الأخرى.
- يكون مفتاح أخذ العينات تعبيرًا مكلفًا من ناحية الحساب.
- يكون توزيع زمن الاستجابة في العنقود ذا ذيل طويل، بحيث يؤدي الاستعلام على عدد أكبر من الخوادم إلى زيادة زمن الاستجابة الإجمالي للاستعلام.
المعالجة المتوازية باستخدام parallel_replicas_custom_key
max_parser_backtracks
max_parser_depth
- عدد صحيح موجب.
- 0 — عمق الاستدعاء التعاودي غير محدود.
max_parsing_threads
max_partition_size_to_drop
0 أنه يمكنك إسقاط الأقسام دون أي قيود.
Cloud default value: 1 تيرابايت.
يحلّ إعداد الاستعلام هذا محل إعداد الخادم المكافئ له، راجع max_partition_size_to_drop
max_partitions_per_insert_block
- عدد صحيح موجب.
0— عدد غير محدود من الأقسام.
max_partitions_per_insert_block، فإن ClickHouse إمّا يسجّل تحذيرًا أو يطرح
استثناءً استنادًا إلى throw_on_max_partitions_per_insert_block. ويكون نص الاستثناء
كما يلي:
“عدد الأقسام كبير جدًا بالنسبة إلى كتلة INSERT واحدة (عدد الأقسام partitions_count، والحد هو ” + toString(max_partitions) + ”).
يتم التحكم في هذا الحد بواسطة الإعداد ‘max_partitions_per_insert_block’.
يُعد العدد الكبير من الأقسام من المفاهيم الخاطئة الشائعة. وسيؤدي ذلك إلى
تأثير سلبي حاد على الأداء، بما في ذلك بطء تشغيل server، وبطء استعلامات INSERT
وبطء استعلامات SELECT. العدد الإجمالي الموصى به للأقسام في table هو
أقل من 1000..10000. يرجى ملاحظة أن partitioning ليس مخصصًا لتسريع
استعلامات SELECT (يكفي order by key لجعل الاستعلامات النطاقية سريعة).
الأقسام مخصصة لمعالجة البيانات (DROP PARTITION، إلخ).”
هذا الإعداد هو safety threshold لأن استخدام عدد كبير من الأقسام يُعد من المفاهيم الخاطئة الشائعة.
max_partitions_to_read
- عدد صحيح موجب
-1- غير محدود (الافتراضي)
يمكنك أيضًا تحديد إعداد MergeTree
max_partitions_to_read ضمن إعدادات الجدول.max_parts_to_move
max_projection_rows_to_use_projection_index
max_query_size
لا يمكن تعيين
max_query_size داخل استعلام SQL (على سبيل المثال، SELECT now() SETTINGS max_query_size=10000) لأن ClickHouse يحتاج إلى تخصيص مخزن مؤقت لتحليل الاستعلام، ويُحدَّد حجم هذا المخزن المؤقت بواسطة الإعداد max_query_size، الذي يجب تهيئته قبل تنفيذ الاستعلام.max_rand_distribution_parameter
randChiSquared وrandStudentT وrandFisherF. يمنع ذلك فترات حساب طويلة جدًا عند استخدام قيم معاملات شديدة التطرف.
max_rand_distribution_trials
randBinomial وrandNegativeBinomial. يساعد ذلك على تجنب أزمنة حساب طويلة جدًا عند وجود عدد كبير من المحاولات.
max_read_buffer_size
max_read_buffer_size_local_fs
max_read_buffer_size.
max_read_buffer_size_remote_fs
max_read_buffer_size.
max_recursive_cte_evaluation_depth
max_remote_read_network_bandwidth
max_remote_write_network_bandwidth
max_replica_delay_for_distributed_queries
- عدد صحيح موجب.
- 0 — لا يتم التحقق من تأخر النسخ المتماثلة.
SELECT على جدول موزّع يشير إلى جداول متماثلة.
max_result_bytes
max_result_rows
0.
يحدّ من عدد الصفوف في النتيجة. ويُتحقَّق منه أيضًا في الاستعلامات الفرعية، وعلى الخوادم البعيدة عند تشغيل أجزاء من استعلام موزّع.
لا يُطبَّق أي حدّ عندما تكون القيمة 0.
سيتوقف الاستعلام بعد معالجة كتلة من البيانات إذا تم بلوغ العتبة، لكنه
لن يقتطع آخر كتلة من النتيجة، لذلك قد يكون حجم النتيجة
أكبر من العتبة.
max_reverse_dictionary_lookup_cache_size_bytes
dictGetKeys. تخزّن ذاكرة التخزين المؤقت Tupleات المفاتيح المُسلسلة لكل قيمة attribute لتجنّب إعادة فحص القاموس ضمن الاستعلام نفسه. عند بلوغ الحد الأقصى، تُزال العناصر وفق سياسة LRU. اضبطها على 0 لتعطيل التخزين المؤقت.
max_rows_for_lazy_final
max_rows_in_distinct
max_rows_in_join
join_algorithm المحدد — راجع
هذا الإعداد لمعرفة السلوك الخاص بكل خوارزمية (spill، أو إعادة partition، أو التبديل، أو
throw/break وفقًا لـ join_overflow_mode).
القيم الممكنة:
- عدد صحيح موجب.
0— عدد غير محدود من الصفوف.
max_rows_in_set
max_rows_in_set_to_optimize_join
- 0 — تعطيل.
- أي عدد صحيح موجب.
max_rows_to_group_by
GROUP BY يُنتج عددًا من
الصفوف (مفاتيح GROUP BY الفريدة) أكبر من العدد المحدد، فسيُحدَّد السلوك بواسطة
group_by_overflow_mode، التي تكون قيمتها الافتراضية throw، ولكن يمكن أيضًا التبديل
إلى وضع GROUP BY تقريبي.
max_rows_to_read
max_rows_to_read_leaf
max_rows_to_read=150، لأن العدد الإجمالي سيكون
200 صف. أما الاستعلام مع max_rows_to_read_leaf=150 فسينجح، لأن العُقد الطرفية
لن تقرأ أكثر من 100 صف.
يُتحقق من هذا القيد لكل دفعة بيانات مُعالَجة.
هذا الإعداد غير مستقر مع
prefer_localhost_replica=1.max_rows_to_sort
sort_overflow_mode، والذي يكون مضبوطًا افتراضيًا على throw.
max_rows_to_transfer
max_sessions_for_user
- عدد صحيح موجب
0- عدد غير محدود من الجلسات المتزامنة (الافتراضي)
max_size_to_preallocate_for_aggregation
max_size_to_preallocate_for_joins
skip_unavailable_shards، يحدد هذا الإعداد الحد الأقصى لعدد الشظايا التي يمكن تخطيها بصمت.
إذا تجاوز عدد الشظايا غير المتاحة هذه القيمة، يُثار استثناء بدلًا من تخطيها بصمت.
تعني القيمة 0 عدم وجود حد (وهو السلوك الافتراضي — إذ يمكن تخطي جميع الشظايا غير المتاحة).
عند تمكين skip_unavailable_shards، يحدد هذا الإعداد الحد الأقصى للنسبة (من 0 إلى 1) للشظايا التي يمكن تخطيها بصمت.
إذا تجاوزت نسبة الشظايا غير المتاحة إلى إجمالي الشظايا هذه القيمة، فسيتم إطلاق استثناء بدلًا من التخطي بصمت.
تعني القيمة 0 عدم وجود حد (السلوك الافتراضي — يمكن تخطي جميع الشظايا غير المتاحة).
max_streams_for_files_processing_in_cluster_functions
max_streams_for_merge_tree_reading
max_streams_for_union_step
UNION (وينطبق ذلك على كلٍّ من UNION ALL وUNION DISTINCT، لأن UNION DISTINCT يُنفَّذ من خلال خطوة UNION ALL تتبعها خطوة DISTINCT). عندما يحتوي استعلام UNION على عدد كبير من الاستعلامات الفرعية، فإنها جميعًا تفتح مخازن القراءة المؤقتة الخاصة بها في الوقت نفسه، مما يؤدي إلى استخدام للذاكرة يتناسب مع عدد الاستعلامات الفرعية. يُدرج هذا الإعداد معالجات Concat لتضييق خط المعالجة بحيث لا يكون نشطًا في وقت واحد أكثر من هذا العدد من التدفقات، مما يقلّل ذروة الذاكرة بشكل كبير. الحد الفعلي هو القيمة الصغرى بين هذه القيمة وmax_threads * max_streams_for_union_step_to_max_threads_ratio (إذا كانت أيٌّ منهما تساوي 0، فهذا يعني تجاهلها). وعندما تكون كلتا القيمتين 0، لا يُطبَّق أي تضييق. كذلك لا يُطبَّق هذا الحد عندما تتطلب خطة الاستعلام أن يبقى كل تدفق خرج من UNION مرتبًا بشكل مستقل (على سبيل المثال، عند تطبيق تحسين read-in-order عبر UNION)؛ ففي هذه الحالة تكون صحة الترتيب هي الأولوية ويُتجاوز التضييق.
max_streams_for_union_step_to_max_threads_ratio
max_threads، حدًا أقصى لعدد التدفّقات النشطة بالتزامن في خطوة UNION (وينطبق ذلك على كلٍّ من UNION ALL وUNION DISTINCT). والحدّ الفعلي هو القيمة الدنيا بين هذه القيمة المحسوبة وmax_streams_for_union_step (وإذا كانت قيمة أيٍّ منهما 0، فسيتم تجاهلها). على سبيل المثال، إذا كان max_threads = 8 وكانت هذه النسبة مضبوطة على 1، فلن يكون هناك أكثر من 8 تدفّقات نشطة. اضبطها على 0 لتعطيل هذا الحدّ المستند إلى النسبة. ومثل max_streams_for_union_step، لا يُطبَّق هذا الحد عندما تتطلب خطة الاستعلام أن يبقى كل تدفّق خرج من UNION مرتّبًا على حدة.
max_streams_multiplier_for_merge_tables
max_streams_to_max_threads_ratio
max_subquery_depth
max_table_size_to_drop
0 أنه يمكنك حذف جميع الجداول دون أي قيود.
Cloud default value: 1 TB.
يتجاوز إعداد الاستعلام هذا إعداد الخادم المكافئ له، راجع max_table_size_to_drop
max_temporary_columns
0 عدم وجود حد.
max_temporary_data_on_disk_size_for_query
- عدد صحيح موجب.
0— غير محدود (الافتراضي)
max_temporary_data_on_disk_size_for_user
- عدد صحيح موجب.
0— غير محدود (الافتراضي)
max_temporary_non_const_columns
max_temporary_columns، هذا هو الحد الأقصى لعدد الأعمدة المؤقتة التي يجب
الاحتفاظ بها في RAM في آنٍ واحد عند تنفيذ استعلام، ولكن من دون احتساب الأعمدة
الثابتة.
غالبًا ما تتكوّن الأعمدة الثابتة عند تنفيذ استعلام، لكنها لا تتطلب عمليًا
أي موارد حوسبة تُذكر.
max_threads
WHERE، وإجراء التجميع المسبق لـ GROUP BY بالتوازي باستخدام عدد لا يقل عن ‘max_threads’ من خيوط التنفيذ، فسيُستخدم ‘max_threads’.
بالنسبة إلى الاستعلامات التي تكتمل بسرعة بسبب LIMIT، يمكنك ضبط ‘max_threads’ على قيمة أقل.
على سبيل المثال، إذا كان العدد المطلوب من الإدخالات موجودًا في كل كتلة وكان max_threads = 8، فسيجري استرجاع 8 كتل، رغم أن قراءة كتلة واحدة فقط كانت ستكفي.
وكلما صغرت قيمة max_threads، قلّ استهلاك الذاكرة.
يتوافق الإعداد max_threads افتراضيًا مع عدد الخيوط العتادية (عدد أنوية CPU) المتاحة لـ ClickHouse.
وكحالة خاصة، بالنسبة إلى معالجات x86 التي تحتوي على أقل من 32 نواة CPU وتدعم SMT (مثل Intel HyperThreading)، يستخدم ClickHouse افتراضيًا عدد الأنوية المنطقية (= 2 × عدد الأنوية الفعلية).
في حال عدم وجود SMT (مثل Intel HyperThreading)، فإن ذلك يتوافق مع عدد أنوية CPU.
بالنسبة إلى مستخدمي ClickHouse Cloud، ستظهر القيمة الافتراضية على شكل auto(N) حيث يطابق N حجم vCPU الخاص بالخدمة لديك، مثل 2vCPU/8GiB و4vCPU/16GiB وما إلى ذلك.
راجع علامة تبويب الإعدادات في Cloud Console للحصول على قائمة بجميع أحجام الخدمات.
max_threads_for_indexes
max_threads_min_free_memory_per_thread
max_threads عندما يكون الخادم تحت ضغط الذاكرة، لتجنّب بدء استعلامات عالية التوازي يُرجَّح أن تتجاوز حد الذاكرة.
تُحتسب الذاكرة الحرة على أنها max_server_memory_usage الخاص بالخادم مطروحًا منه الذاكرة التي يتتبعها حاليًا متتبّع الذاكرة العام. وإذا كانت هذه الذاكرة الحرة أقل من max_threads مضروبًا في هذه القيمة، فسيُخفَّض max_threads إلى أكبر قيمة N بحيث يكون N * value <= free_memory، على ألا يقل عن 1.
اضبطها على 0 لتعطيل هذا القيد.
على سبيل المثال، مع القيمة الافتراضية البالغة 1 GiB و32 GiB من الذاكرة الحرة، يُحدَّد الحد الأقصى لـ max_threads عند 32؛ ومع 1 GiB من الذاكرة الحرة ينخفض إلى 1.
ينطبق هذا الإعداد على التوازي في جانب القراءة (SELECT وUNION وINTERSECT/EXCEPT، وكذلك جانب SELECT من INSERT ... SELECT). أمّا بالنسبة إلى جانب الكتابة، فانظر max_insert_threads_min_free_memory_per_thread.
max_untracked_memory
memory_profiler_step، فسيتم خفضها فعليًا إلى memory_profiler_step.
max_wkb_geometry_elements
readWKB والدوال ذات الصلة. يوفّر ذلك حماية من التخصيص المفرط للذاكرة الناتج عن بيانات WKB تالفة. اضبطه على 0 لاستخدام الحد المضمّن في الشيفرة (100 مليون).
memory_overcommit_ratio_denominator
memory_overcommit_ratio_denominator_for_user
memory_profiler_sample_max_allocation_size
memory_profiler_sample_probability. وتعني القيمة 0 أن هذا الإعداد معطّل. قد ترغب في ضبط max_untracked_memory على 0 لكي تعمل هذه العتبة كما هو متوقع.
memory_profiler_sample_min_allocation_size
memory_profiler_sample_probability. تعني القيمة 0 أن هذا الخيار معطّل. قد ترغب في تعيين max_untracked_memory إلى 0 لكي تعمل هذه العتبة كما هو متوقّع.
memory_profiler_sample_probability
trace_type بالقيمة ‘MemorySample’. تُطبَّق هذه الاحتمالية على كل عملية alloc/free بغضّ النظر عن حجم التخصيص (ويمكن تغيير ذلك باستخدام memory_profiler_sample_min_allocation_size و memory_profiler_sample_max_allocation_size). لاحظ أن أخذ العينات يحدث فقط عندما تتجاوز كمية الذاكرة غير المتعقَّبة القيمة ‘max_untracked_memory’. وقد ترغب في ضبط ‘max_untracked_memory’ على 0 للحصول على أخذ عينات أكثر دقة.
memory_profiler_step
step الخاصة بمُحلِّل الذاكرة. كلما أصبح استخدام الذاكرة في الاستعلام أكبر من كل خطوة تالية محسوبة بعدد البايتات، سيجمع مُحلِّل الذاكرة stacktrace الخاص بالتخصيص ويكتبه في trace_log.
القيم الممكنة:
- عدد صحيح موجب من البايتات.
- القيمة 0 لإيقاف مُحلِّل الذاكرة.
memory_tracker_fault_probability
exception safety، أطلق استثناءً في كل مرة يجري فيها تخصيص الذاكرة بالاحتمال المحدد.
memory_usage_overcommit_max_wait_microseconds
merge_table_max_tables_to_look_for_schema_inference
Merge بدون مخطط محدد صراحةً، أو عند استخدام table function merge، يُستنتج المخطط على أنه اتحاد لما لا يزيد على العدد المحدد من الجداول المتطابقة.
إذا كان عدد الجداول أكبر من ذلك، فسيُستنتج المخطط من أول عدد محدد من الجداول.
merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity نطاقات فرعية ويبحث فيها عن المفاتيح المطلوبة على نحوٍ تكراري.
القيم الممكنة:
- أي عدد صحيح زوجي موجب.
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
prewhere فقط لتحديد حجم مهمة القراءة.
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache بايت في استعلام واحد، فلن يستخدم ذاكرة التخزين المؤقت للكتل غير المضغوطة.
تخزّن ذاكرة التخزين المؤقت للكتل غير المضغوطة البيانات المستخرجة للاستعلامات. ويستخدم ClickHouse هذه الذاكرة لتسريع الاستجابة للاستعلامات الصغيرة المتكررة. يحمي هذا الإعداد ذاكرة التخزين المؤقت من الامتلاء غير المفيد بسبب الاستعلامات التي تقرأ كميات كبيرة من البيانات. ويحدّد إعداد الخادم uncompressed_cache_size حجم ذاكرة التخزين المؤقت للكتل غير المضغوطة.
القيم المحتملة:
- أي عدد صحيح موجب.
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache صفًا في استعلام واحد، فلن يستخدم ذاكرة التخزين المؤقت للكتل غير المضغوطة.
تخزّن ذاكرة التخزين المؤقت للكتل غير المضغوطة البيانات المستخرجة للاستعلامات. يستخدم ClickHouse ذاكرة التخزين المؤقت هذه لتسريع الاستجابة للاستعلامات الصغيرة المتكررة. يحمي هذا الإعداد ذاكرة التخزين المؤقت من التدهور بسبب الاستعلامات التي تقرأ كمية كبيرة من البيانات. يحدّد إعداد الخادم uncompressed_cache_size حجم ذاكرة التخزين المؤقت للكتل غير المضغوطة.
القيم الممكنة:
- أي عدد صحيح موجب.
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read، فسيحاول ClickHouse إجراء قراءة متزامنة لهذا الملف باستخدام عدة خيوط تنفيذ.
القيمة الممكنة:
- عدد صحيح موجب.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- عدد صحيح موجب.
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek بايت، فسيقرأ ClickHouse تسلسليًا نطاقًا من الملف يضم كلتا الكتلتين، متجنبًا بذلك إجراء seek إضافي.
القيم الممكنة:
- أي عدد صحيح موجب.
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
الحد الأدنى لعدد البايتات المطلوب قراءتها لكل مهمة.
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read، فسيحاول ClickHouse إجراء قراءة متزامنة من هذا الملف باستخدام عدة خيوط تنفيذ.
القيم الممكنة:
- عدد صحيح موجب.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- عدد صحيح موجب.
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek صفًا، فلن يُجري ClickHouse عملية seek داخل الملف، بل سيقرأ البيانات بشكل متسلسل.
القيم الممكنة:
- أي عدد صحيح موجب.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter — تقسيم نطاقات القراءة إلى نطاقات متداخلة وغير متداخلة في كل مرة تتم فيها القراءة من MergeTree، وذلك بالاحتمال المحدد.
merge_tree_storage_snapshot_sleep_ms
- 0 - بدون تأخير (الافتراضي)
- N - تأخير بالمللي ثانية
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size.
merge_tree_use_v1_object_and_dynamic_serialization
metrics_perf_events_enabled
perf أثناء تنفيذ الاستعلامات.
metrics_perf_events_list
min_bytes_to_use_direct_io
min_bytes_to_use_direct_io بايت، فسيقرأ ClickHouse البيانات من قرص التخزين باستخدام الخيار O_DIRECT.
القيم الممكنة:
- 0 — الإدخال/الإخراج المباشر معطّل.
- عدد صحيح موجب.
min_bytes_to_use_mmap_io
- عدد صحيح موجب.
- 0 — تُقرأ الملفات الكبيرة فقط مع نسخ البيانات من النواة إلى فضاء المستخدم.
min_chunk_bytes_for_parallel_parsing
- النوع: عدد صحيح غير موقّع
- القيمة الافتراضية: 1 MiB
min_compress_block_size
min_compress_block_size. والقيمة الافتراضية هي 65,536.
أما الحجم الفعلي للكتلة، فإذا كانت البيانات غير المضغوطة أقل من max_compress_block_size، فلن يكون أقل من هذه القيمة، ولا أقل من حجم البيانات الخاص بعلامة واحدة.
لننظر إلى مثال. افترض أن index_granularity ضُبط على 8192 عند إنشاء الجدول.
لنكتب عمودًا من النوع UInt32 (4 بايت لكل قيمة). عند كتابة 8192 صفًا، يكون الإجمالي 32 كيلوبايت من البيانات. وبما أن min_compress_block_size = 65,536، فستتكوّن كتلة مضغوطة لكل علامتين.
ولنكتب عمود URL من النوع String (بمتوسط حجم 60 بايت لكل قيمة). عند كتابة 8192 صفًا، يكون المتوسط أقل قليلًا من 500 كيلوبايت من البيانات. وبما أن هذا أكبر من 65,536، فستتكوّن كتلة مضغوطة لكل علامة. في هذه الحالة، عند قراءة البيانات من القرص ضمن نطاق علامة واحدة، لن يلزم فك ضغط بيانات إضافية.
هذا إعداد مخصص للمستخدمين الخبراء، ولا ينبغي تغييره إذا كنت لا تزال في بداية استخدام ClickHouse.
min_count_to_compile_aggregate_expression
- عدد صحيح موجب.
- 0 — تُترجَم التعبيرات التجميعية المتطابقة دائمًا ترجمة فورية باستخدام JIT.
min_count_to_compile_expression
min_count_to_compile_sort_description
min_execution_speed
timeout_before_checking_execution_speed
. إذا كانت سرعة التنفيذ أقل من ذلك، يتم طرح استثناء.
min_execution_speed_bytes
timeout_before_checking_execution_speed.
إذا كانت سرعة التنفيذ أقل من ذلك، يُرفَع استثناء.
min_external_table_block_size_bytes
min_external_table_block_size_rows
min_filtered_ratio_for_lazy_final
min_free_disk_bytes_to_perform_insert
min_free_disk_ratio_to_perform_insert
min_free_disk_space_for_temporary_data
min_hit_rate_to_use_consecutive_keys_optimization
min_insert_block_size_bytes
- عدد صحيح موجب.
- 0 — لا يشارك الإعداد في تكوين الكتل.
min_insert_block_size_bytes_for_materialized_views
INSERT. وتُدمج الكتل الأصغر حجمًا في كتل أكبر. لا يُطبَّق هذا الإعداد إلا على الكتل المُدرجة في العرض المادي. ومن خلال ضبط هذا الإعداد، يمكنك التحكّم في دمج الكتل أثناء الدفع إلى العرض المادي وتجنّب الاستهلاك المفرط للذاكرة.
القيم الممكنة:
- أي عدد صحيح موجب.
- 0 — تعطيل الدمج.
min_insert_block_size_rows
-
تحليل التنسيق: عندما يحلّل الخادم تنسيقات الإدخال المعتمدة على الصفوف (CSV وTSV وJSONEachRow وغيرها) من أي واجهة (HTTP أو clickhouse-client مع بيانات Inline أو gRPC أو PostgreSQL wire protocol)، تُخرَج الكتل عندما:
- يتم بلوغ كلٍّ من min_insert_block_size_rows و min_insert_block_size_bytes، OR
- يتم بلوغ أحد max_insert_block_size_rows أو max_insert_block_size_bytes
-
عمليات INSERT: أثناء استعلامات INSERT وعندما تتدفق البيانات عبر العروض المادية، يعتمد سلوك هذا الإعداد على
use_strict_insert_block_limits:-
عند التمكين: تُخرَج الكتل عندما:
- الحدود الدنيا (AND): يتم بلوغ كلٍّ من min_insert_block_size_rows و min_insert_block_size_bytes
- الحدود القصوى (OR): يتم بلوغ أحد max_insert_block_size_rows أو max_insert_block_size_bytes
- عند التعطيل (default): تُخرَج الكتل عند بلوغ min_insert_block_size_rows أو min_insert_block_size_bytes. ولا يتم فرض إعدادات max_insert_block_size.
-
عند التمكين: تُخرَج الكتل عندما:
- عدد صحيح موجب.
- 0 — لا يشارك الإعداد في تكوين الكتل.
min_insert_block_size_rows_for_materialized_views
INSERT. وتُدمَج الكتل الأصغر حجمًا في كتل أكبر. لا يُطبَّق هذا الإعداد إلا على الكتل المُدرجة في العرض المادي. ومن خلال ضبط هذا الإعداد، يمكنك التحكّم في دمج الكتل عند الإرسال إلى العرض المادي وتجنّب الاستخدام المفرط للذاكرة.
القيم الممكنة:
- أي عدد صحيح موجب.
- 0 — الدمج معطّل.
min_joined_block_size_bytes
min_joined_block_size_rows
JOIN (إذا كانت خوارزمية JOIN تدعم ذلك). ستُدمَج الكتل الصغيرة. وتعني القيمة 0 عدم وجود حد.
min_os_cpu_wait_time_ratio_to_throw
OSCPUWaitMicroseconds) ووقت الانشغال (المقياس OSCPUVirtualTimeMicroseconds) الذي عنده يبدأ النظر في رفض الاستعلامات. ويُستخدم الاستيفاء الخطي بين الحدين الأدنى والأقصى لهذه النسبة لحساب الاحتمال، ويكون الاحتمال 0 عند هذه النقطة.
min_outstreams_per_resize_after_split
Resize أو StrictResize بعد تنفيذ عملية التقسيم أثناء توليد خط المعالجة. وإذا كان عدد التدفقات الناتج أقل من هذه القيمة، فلن تُنفَّذ عملية التقسيم.
ما هي عقدة Resize
Resize هي معالج ضمن خط المعالجة للاستعلام يضبط عدد تدفقات البيانات المارة عبره. ويمكنها زيادة عدد التدفقات أو تقليله لموازنة عبء العمل بين عدة خيوط تنفيذ أو معالجات. فعلى سبيل المثال، إذا كان الاستعلام يتطلب قدرًا أكبر من التوازي، يمكن لعقدة Resize تقسيم تدفق واحد إلى عدة تدفقات. وبالمقابل، يمكنها دمج عدة تدفقات في عدد أقل لتوحيد معالجة البيانات.
تضمن عقدة Resize توزيع البيانات بالتساوي بين التدفقات مع الحفاظ على بنية كتل البيانات. ويساعد ذلك على تحسين استخدام الموارد ورفع أداء الاستعلام.
لماذا يلزم تقسيم عقدة Resize
status_mutex الخاص بـ ExecutingGraph::Node في عقدة Resize المركزية تَزاحمًا شديدًا، ولا سيما في البيئات ذات الأعداد الكبيرة من الأنوية، ويؤدي هذا التزاحم إلى:
- زيادة زمن الاستجابة في ExecutingGraph::updateNode، مما يؤثر مباشرةً في أداء الاستعلام.
- إهدار مفرط لدورات CPU في التزاحم على القفل الدوراني (native_queued_spin_lock_slowpath)، مما يضعف الكفاءة.
- انخفاض استغلال CPU، مما يحدّ من التوازي ومعدل النقل.
كيفية تقسيم عقدة Resize
- يُتحقَّق من عدد تدفقات الإخراج لضمان إمكانية إجراء التقسيم: بحيث تفي تدفقات الإخراج لكل
معالجمُقسَّم بعتبةmin_outstreams_per_resize_after_splitأو تتجاوزها. - تُقسَّم عقدة
Resizeإلى عقدResizeأصغر بعدد متساوٍ من المنافذ، بحيث تتولى كل منها مجموعة فرعية من تدفقات الإدخال والإخراج. - تُعالَج كل مجموعة بشكل مستقل، مما يقلل التزاحم على القفل.
تقسيم عقدة Resize بمدخلات/مخرجات غير قابلة للتقسيم بالتساوي
Resize المقسّمة، تُوصَل بعض المدخلات بـ NullSource وتُوصَل بعض المخرجات بـ NullSink. يتيح ذلك إجراء التقسيم من دون التأثير في التدفق العام للبيانات.
الغرض من الإعداد
min_outstreams_per_resize_after_split أن يكون تقسيم عُقد Resize مجديًا، ويمنع إنشاء عدد قليل جدًا من التدفقات، مما قد يؤدي إلى معالجة متوازية غير فعّالة. ومن خلال فرض حد أدنى لعدد تدفقات الإخراج، يساعد هذا الإعداد في الحفاظ على توازن بين التوازي والعبء الإضافي، مما يحسّن تنفيذ الاستعلام في السيناريوهات التي تتضمن تقسيم التدفقات ودمجها.
تعطيل هذا الإعداد
Resize، اضبط هذا الإعداد على 0. سيؤدي ذلك إلى منع تقسيم عُقد Resize أثناء إنشاء خط المعالجة، مما يسمح لها بالاحتفاظ ببنيتها الأصلية دون تقسيمها إلى عُقد أصغر.
min_table_rows_to_use_projection_index
mongodb_throw_on_unsupported_query
move_all_conditions_to_prewhere
move_primary_key_columns_to_end_of_prewhere
multiple_joins_try_to_keep_original_names
mutations_execute_nondeterministic_on_initiator
true، فستُنفَّذ الدوال الثابتة غير الحتمية (مثل الدالة now()) على المُبادِر، وتُستبدل بقيم حرفية في استعلامات UPDATE وDELETE. يساعد ذلك على إبقاء البيانات متزامنة عبر النسخ المتماثلة عند تنفيذ الطفرات باستخدام دوال ثابتة غير حتمية. القيمة الافتراضية: false.
mutations_execute_subqueries_on_initiator
true، تُنفَّذ الاستعلامات الفرعية القيَمية على المُبادِر وتُستبدل بقيم حرفية في استعلامات UPDATE وDELETE. القيمة الافتراضية: false.
mutations_max_literal_size_to_replace
UPDATE وDELETE. لا يسري هذا إلا إذا كان أحد الإعدادين المذكورين أعلاه مُمكّنًا على الأقل. القيمة الافتراضية: 16384 (16 KiB).
mutations_sync
ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS (الطفرات) بشكل متزامن.
القيم الممكنة:
| القيمة | الوصف |
|---|---|
0 | تُنفَّذ الطفرات بشكل غير متزامن. |
1 | ينتظر الاستعلام حتى تكتمل جميع الطفرات على الخادم الحالي. |
2 | ينتظر الاستعلام حتى تكتمل جميع الطفرات على جميع النُسخ المتماثلة (إن وُجدت). |
3 | ينتظر الاستعلام فقط النُسخ المتماثلة النشطة. وهذا مدعوم فقط لـ SharedMergeTree. أما في ReplicatedMergeTree، فيكون السلوك مماثلًا لـ mutations_sync = 2. |
mysql_datatypes_support_level
decimal أو datetime64 أو date2Date32 أو date2String. جميع التعيينات الحديثة (decimal وdatetime64 وdate2Date32) مفعّلة افتراضيًا.
decimal: تحويل النوعينNUMERICوDECIMALإلىDecimalعندما تسمح precision بذلك.datetime64: تحويل النوعينDATETIMEوTIMESTAMPإلىDateTime64بدلًا منDateTimeعندما لا تكون precision0.date2Date32: تحويلDATEإلىDate32بدلًا منDate. وله أولوية علىdate2String.date2String: تحويلDATEإلىStringبدلًا منDate. وتتجاوزهdatetime64.
mysql_map_fixed_string_to_text_in_show_columns
TEXT في SHOW COLUMNS.
يسري ذلك فقط عند إنشاء الاتصال عبر MySQL wire protocol.
- 0 - استخدم
BLOB. - 1 - استخدم
TEXT.
mysql_map_string_to_text_in_show_columns
TEXT في SHOW COLUMNS.
لا يؤثر هذا إلا عند إنشاء الاتصال عبر بروتوكول MySQL wire.
- 0 - استخدم
BLOB. - 1 - استخدم
TEXT.
mysql_max_rows_to_insert
network_compression_method
NONE— بدون ضغط.LZ4— استخدم ترميزLZ4.LZ4HC— استخدم ترميزLZ4HC.ZSTD— استخدم ترميزZSTD.
network_zstd_compression_level
ZSTD.
القيم الممكنة:
- عدد صحيح موجب من 1 إلى 15.
normalize_function_names
number_of_mutations_to_delay
number_of_mutations_to_throw
odbc_bridge_connection_pool_size
odbc_bridge_use_connection_pooling
offset
- 0 — لا يتم تخطي أي صفوف.
- عدد صحيح موجب.
opentelemetry_start_keeper_trace_probability
- ‘auto’ - يساوي الإعداد opentelemetry_start_trace_probability
- 0 — يكون التتبّع معطّلًا
- من 0 إلى 1 — الاحتمال (على سبيل المثال، 1.0 = مفعّل دائمًا)
opentelemetry_start_trace_probability
- 0 — يكون التتبّع معطّلًا لجميع الاستعلامات المنفّذة (إذا لم يتم تمرير trace context أصل).
- عدد موجب بفاصلة عائمة ضمن النطاق [0..1]. على سبيل المثال، إذا كانت قيمة الإعداد
0,5، يمكن لـ ClickHouse في المتوسط بدء تتبّع لنصف الاستعلامات. - 1 — يكون التتبّع مفعّلًا لجميع الاستعلامات المنفّذة.
opentelemetry_trace_cpu_scheduling
opentelemetry_trace_processors
optimize_aggregation_in_order
- 0 — تحسين
GROUP BYمعطّل. - 1 — تحسين
GROUP BYمفعّل.
optimize_aggregators_of_group_by_keys
optimize_and_compare_chain
< و <= و > و >= و = وأي مزيج منها. على سبيل المثال، (a < b) AND (b < c) AND (c < 5) ستصبح (a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5).
optimize_append_index
false.
القيم الممكنة:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- عدد صحيح موجب - الحد الأقصى لطول الاسم،
- 0 — دائمًا،
- عدد صحيح سالب - أبدًا.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
القيم الممكنة:
- 0 — التحسين معطّل.
- 1 — التحسين مفعّل.
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) إلى dictGet('dict', 'b', key) لتجنّب جلب سمات القاموس غير الضرورية. يدعم الوصول الموضعي (.1, .2, …) والمسمّى (.b)، ويُطبَّق أيضًا على dictGetOrDefault عندما تكون وسيطة القيمة الافتراضية tuple ثابتة أو tuple(...) من الثوابت.
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key عبر تجنّب التجميع المكلف على الخادم المُبادِر (مما يقلّل استخدام الذاكرة لهذا الاستعلام على الخادم المُبادِر).
أنواع الاستعلامات التالية مدعومة (بما في ذلك جميع التركيبات بينها):
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — معطّل.
- 1 — مفعّل.
حاليًا، يتطلب هذا
optimize_skip_unused_shards (والسبب هو أنه قد يُفعَّل افتراضيًا يومًا ما، ولن يعمل بشكل صحيح إلا إذا أُدرجت البيانات عبر جدول Distributed، أي إذا وُزِّعت البيانات وفقًا لـ sharding_key).optimize_dry_run_check_part
OPTIMIZE ... DRY RUN من صحة الجزء المدمج الناتج باستخدام checkDataPart. وإذا فشل التحقق، يتم طرح استثناء.
optimize_empty_string_comparisons
col = '' أو '' = col إلى empty(col)، وcol != '' أو '' != col إلى notEmpty(col)،
وذلك فقط عندما يكون col من النوع String أو FixedString.
optimize_extract_common_expressions
(A AND B) OR (A AND C) إلى A AND (B OR C)، مما قد يساعد في الاستفادة من:
- الفهارس في تعبيرات التصفية البسيطة
- تحسين تحويل cross إلى inner join
optimize_functions_to_subcolumns
- length لقراءة العمود الفرعي size0.
- empty لقراءة العمود الفرعي size0.
- notEmpty لقراءة العمود الفرعي size0.
- isNull لقراءة العمود الفرعي null.
- isNotNull لقراءة العمود الفرعي null.
- count لقراءة العمود الفرعي null.
- mapKeys لقراءة العمود الفرعي keys.
- mapValues لقراءة العمود الفرعي values.
- 0 — التحسين معطّل.
- 1 — التحسين مُمكَّن.
optimize_group_by_constant_keys
optimize_group_by_function_keys
optimize_if_chain_to_multiif
if(cond1, then1, if(cond2, ...)) بـ multiIf. لا يفيد ذلك حاليًا مع الأنواع الرقمية.
optimize_if_transform_strings_to_enum
optimize_injective_functions_in_group_by
optimize_injective_functions_in_limit_by
LIMIT 5 BY toString(x) تصبح LIMIT 5 BY x.
optimize_injective_functions_inside_uniq
optimize_inverse_dictionary_lookup
optimize_limit_by_function_keys
LIMIT 5 BY x, f(x) تصبح LIMIT 5 BY x.
optimize_limit_by_in_order
SELECT ... LIMIT N BY <cols> عندما كانت <cols> (بأي ترتيب) تُشكّل بادئة لمفتاح فرز الجدول، أو تصبح كذلك بعد أن يثبّت الشرط WHERE col = const الأعمدةَ الأولى. عند تفعيل هذا الإعداد، يقرأ المصدر البيانات بترتيب المفتاح الأساسي، بحيث تصل الصفوف ذات القيم المتساوية في أعمدة BY متجاورة داخل كل تدفّق. وعندما تصل البيانات ضمن تدفّق واحد مرتّب، يرشّح LIMIT BY هذه البيانات في وضع streaming باستخدام ذاكرة بحجم O(1)، بدلًا من إنشاء hash table لكل تركيبة مميّزة من أعمدة BY تمّت رؤيتها. وعندما تصل البيانات المرتّبة عبر عدة تدفّقات، ويمكن أن تظهر قيم BY نفسها في أكثر من تدفّق واحد، يُرشَّح كل تدفّق أولًا مسبقًا في وضع streaming إلى حد أقصى قدره LIMIT + OFFSET من الصفوف لكل مجموعة، ثم تُدمَج التدفّقات ويُجري LIMIT BY نهائي قائم على hash إزالة التكرار للمجموعات الممتدة عبر عدة تدفّقات. وتحتفظ هذه المرحلة النهائية مع ذلك بـ entry لكل تركيبة مميّزة من أعمدة BY، لكنها لا تعالج إلا الصفوف التي خضعت للتصفية المسبقة.
optimize_min_equality_disjunction_chain_length
expr = x1 OR ... expr = xN من أجل التحسي
optimize_min_inequality_conjunction_chain_length
expr <> x1 AND ... expr <> xN اللازم لإجراء التحسين
optimize_move_to_prewhere
- 0 — يكون التحسين التلقائي لـ
PREWHEREمعطّلًا. - 1 — يكون التحسين التلقائي لـ
PREWHEREمفعّلًا.
optimize_move_to_prewhere_if_final
- 0 — يكون تحسين
PREWHEREالتلقائي في استعلاماتSELECTالتي تستخدم المُعدِّلFINALمعطّلًا. - 1 — يكون تحسين
PREWHEREالتلقائي في استعلاماتSELECTالتي تستخدم المُعدِّلFINALمفعّلًا.
- الإعداد optimize_move_to_prewhere
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — معطّل.
- 1 — مفعّل.
optimize_or_like_chain
optimize_prewhere_after_pushdown
PREWHERE بعد أن تكون تحسينات خطة الاستعلام اللاحقة قد
أضافت عوامل تصفية إضافية فوق خطوة قراءة MergeTree (على سبيل المثال، دفع الشروط عبر
JOIN وإعادة كتابة الإسقاطات). وعند وجود PREWHERE بالفعل، يُدمَج عامل
التصفية الجديد فيه باستخدام AND بدلًا من أن يبقى كخطوة تصفية منفصلة.
optimize_qbit_distance_function_reads
QBit بنظيرات مكافئة لا تقرأ من التخزين إلا الأعمدة اللازمة للحساب.
optimize_read_in_order
- 0 — يكون تحسين
ORDER BYمعطّلًا. - 1 — يكون تحسين
ORDER BYمفعّلًا.
optimize_redundant_functions_in_order_by
optimize_respect_aliases
optimize_rewrite_aggregate_function_with_if
avg(if(cond, col, null)) إلى avgOrNullIf(cond, col). وقد يؤدي ذلك إلى تحسين الأداء.
مدعوم فقط مع المحلّل (
enable_analyzer = 1).optimize_rewrite_array_exists_to_has
arrayExists() إلى has() عندما تكون متكافئة منطقيًا. على سبيل المثال، يمكن إعادة كتابة arrayExists(x -> x = 1, arr) إلى has(arr, 1)
optimize_rewrite_has_to_in
has إلى IN عندما تكون الوسيطة الأولى مصفوفة ثابتة. على سبيل المثال، يمكن إعادة صياغة has([1, 2, 3], x) إلى x IN [1, 2, 3] لتحسين الأداء مع المصفوفات الثابتة
optimize_rewrite_like_perfect_affix
col LIKE 'ClickHouse%') إلى الدالتين startsWith أو endsWith (مثل startsWith(col, 'ClickHouse')).
optimize_rewrite_regexp_functions
optimize_rewrite_sum_if_to_count_if
optimize_skip_merged_partitions
OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
OPTIMIZE TABLE ... FINAL كتابة هذا الـpart حتى إذا كان هناك part واحد فقط.
القيم الممكنة:
- 1 - تمكين التحسين.
- 0 - تعطيل التحسين.
optimize_skip_unused_shards
WHERE/PREWHERE، كما يفعّل التحسينات المرتبطة بالاستعلامات الموزعة (مثل التجميع حسب مفتاح التقسيم).
يفترض أن البيانات موزعة بحسب مفتاح التقسيم، وإلا فسيُرجع الاستعلام نتيجة غير صحيحة.
- 0 — معطّل.
- 1 — مفعّل.
optimize_skip_unused_shards_limit
optimize_skip_unused_shards عند بلوغ هذا الحد.
قد يتطلب العدد الكبير جدًا من القيم قدرًا ملحوظًا من المعالجة، بينما تكون الفائدة منه محل شك، لأنه إذا كان لديك عدد هائل من القيم في IN (...)، فمن المرجح في هذه الحالة أن يُرسَل الاستعلام إلى جميع الشظايا على أي حال.
optimize_skip_unused_shards_nesting
optimize_skip_unused_shards — مع العلم أنه لا يزال يتطلب تفعيل optimize_skip_unused_shards — وذلك بحسب مستوى تداخل الاستعلام الموزع (أي في الحالة التي يكون لديك فيها جدول Distributed يشير إلى جدول Distributed آخر).
القيم الممكنة:
- 0 — معطّل، ويعمل
optimize_skip_unused_shardsدائمًا. - 1 — يفعّل
optimize_skip_unused_shardsللمستوى الأول فقط. - 2 — يفعّل
optimize_skip_unused_shardsحتى المستوى الثاني.
optimize_skip_unused_shards_rewrite_in
IN في الاستعلام الخاص بالشظايا البعيدة لاستبعاد القيم التي لا تنتمي إلى الشظية (يتطلب optimize_skip_unused_shards).
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
القيم الممكنة:
- true, false
optimize_syntax_fuse_functions
- 0 — لا يتم دمج الدوال ذات الوسيط المتماثل.
- 1 — يتم دمج الدوال ذات الوسيط المتماثل.
optimize_throw_if_noop
OPTIMIZE نجاحًا حتى إذا لم يفعل شيئًا. يتيح لك هذا الإعداد التمييز بين هذه الحالات ومعرفة السبب من خلال رسالة الاستثناء.
القيم الممكنة:
- 1 — إصدار استثناء مُمكّن.
- 0 — إصدار استثناء معطّل.
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_trivial_approximate_count_query
- 0 — التحسين معطّل.
- 1 — التحسين مفعّل.
optimize_trivial_count_query
SELECT count() FROM table باستخدام البيانات الوصفية من MergeTree. إذا كنت بحاجة إلى استخدام أمان على مستوى الصفوف، فعطّل هذا الإعداد.
القيم الممكنة:
- 0 — التحسين معطّل.
- 1 — التحسين مفعّل.
optimize_trivial_group_by_limit_query
SELECT key_expr FROM table GROUP BY key_expr LIMIT n (من دون دوال تجميعية في الإسقاط، ومن دون عبارات HAVING/ORDER BY/LIMIT BY/window، ومن دون modifiers لـ GROUP BY) وذلك عبر تعيين max_rows_to_group_by = n + offset مع group_by_overflow_mode = 'any'. ويتوقف التجميع بمجرد إنتاج n + offset من المفاتيح المميّزة.
يُوقَف هذا التحسين عندما يكون المستخدم قد عيّن group_by_overflow_mode صراحةً إلى قيمة غير any (للحفاظ على سلوك throw/break الذي حدّده صراحةً)، وكذلك عندما يكون المستخدم قد عيّن بالفعل قيمة أكثر تقييدًا لـ max_rows_to_group_by (إذ سيكون التحسين عندها no-op).
القيم الممكنة:
- 0 — التحسين معطّل.
- 1 — التحسين مفعّل.
optimize_trivial_insert_select
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
uniq وصِيَغه المختلفة (باستثناء uniqUpTo) إلى count إذا تضمّن الاستعلام الفرعي distinct أو عبارة group by.
optimize_use_implicit_projections
optimize_use_projection_filtering
optimize_use_projections
allow_experimental_projection_optimization
يُمكّن أو يعطّل تحسين الإسقاطات عند معالجة استعلامات SELECT.
القيم الممكنة:
- 0 — تحسين الإسقاطات معطّل.
- 1 — تحسين الإسقاطات مفعّل.
optimize_using_constraints
false.
القيم الممكنة:
- true, false
os_threads_nice_value_materialized_view
os_threads_nice_value_query
os_thread_priority
قيمة nice في Linux لخيوط معالجة الاستعلامات. كلما انخفضت القيمة، ارتفعت أولوية CPU.
يتطلب امتياز CAP_SYS_NICE، وإلا فلن يكون له أي تأثير.
القيم الممكنة: من -20 إلى 19.
page_cache_block_size
page_cache_inject_eviction
page_cache_lookahead_blocks
page_cache_block_size بايت.
تكون القيمة الأعلى مناسبة للاستعلامات ذات معدل النقل المرتفع، بينما تعمل الاستعلامات الموضعية منخفضة زمن الاستجابة بشكل أفضل من دون القراءة الاستباقية.
page_cache_max_coalesced_bytes
readBigAt ذاكرة تخزين الصفحات المؤقتة في فضاء المستخدم، تُدمَج حالات الإخفاق المتتالية في cache في قراءة واحدة من طبقة التخزين الأساسية. يحدّد هذا الإعداد حجم القراءة المدمجة الواحدة بالبايت؛ وتُقسَّم سلاسل الإخفاق الأطول إلى عدة قراءات. كما يحدّ من الاستخدام العابر للذاكرة في المخزن المؤقت المؤقت عند إجراء قراءات باردة متوازية.
تقلّل القيمة الأعلى عدد طلبات HTTP في عمليات المسح البارد على التخزين الكائني؛ بينما تقلّل القيمة الأقل ذروة الذاكرة العابرة.
paimon_target_snapshot_id
snapshot_id المحدد، من دون تحريك العلامة المائية المُعتمدة إلى الأمام.
القيمة الافتراضية: -1 (معطّل)
parallel_distributed_insert_select
INSERT ... SELECT الموزّع بشكل متوازٍ.
إذا نفّذنا استعلامات INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b وكان كلا الجدولين يستخدمان الـ cluster نفسه، وكان كلا الجدولين إما مكرّرين أو غير مكرّرين، فستُعالَج هذه الاستعلامات محليًا على كل شظية.
القيم الممكنة:
0— معطّل.1— سيُنفَّذSELECTعلى كل شظية من الجدول الأساسي لمحرك Distributed.2— سيُنفَّذSELECTوINSERTعلى كل شظية من/إلى الجدول الأساسي لمحرك Distributed.
INSERT ... SELECT من مصدر ReplicatedMergeTree أو SharedMergeTree بشكل متوازٍ عبر replicas. لتمكين ذلك:
parallel_distributed_insert_select = 2enable_parallel_replicas = 1
parallel_hash_join_threshold
hash أو parallel_hash (وذلك فقط إذا كان تقدير حجم الجدول الأيمن متاحًا).
ويُستخدم الخيار الأول عندما نعلم أن حجم الجدول الأيمن أقل من هذه العتبة.
parallel_non_joined_rows_processing
parallel_hash مع الجداول الكبيرة.
عند تعطيله، تُعالَج الصفوف غير المنضمّة بواسطة خيط واحد.
parallel_replica_offset
parallel_replicas_allow_in_with_subquery
parallel_replicas_allow_materialized_views
parallel_replicas_allow_view_over_mergetree
MergeTree (بدلًا من الاستعلام الداخلي للعرض)، مما يحسّن التوازي عبر العُقد. وينطبق ذلك أيضًا على عروض UNION ALL التي تقرأ جميع فروعها من جداول MergeTree مختلفة.
parallel_replicas_connect_timeout_ms
parallel_replicas_count
parallel_replicas_custom_key
SAMPLE، إذ سيستخدم عدة نسخ متماثلة من كل شظية.
parallel_replicas_custom_key_range_lower
range تقسيم العمل بالتساوي بين النسخ المتماثلة استنادًا إلى النطاق المخصص [parallel_replicas_custom_key_range_lower, INT_MAX].
وعند استخدامه مع parallel_replicas_custom_key_range_upper، فإنه يتيح للمرشح تقسيم العمل بالتساوي على النسخ المتماثلة ضمن النطاق [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
ملاحظة: لا يؤدي هذا الإعداد إلى تصفية أي بيانات إضافية أثناء معالجة الاستعلام؛ بل يغيّر فقط النقاط التي يقسم عندها مرشح النطاق المجال [0, INT_MAX] لأغراض المعالجة المتوازية.
parallel_replicas_custom_key_range_upper
range بتقسيم العمل بالتساوي بين النسخ المتماثلة استنادًا إلى النطاق المخصص [0, parallel_replicas_custom_key_range_upper]. تؤدي القيمة 0 إلى تعطيل الحد الأعلى، ما يضبطه على القيمة القصوى لتعبير المفتاح المخصص.
عند استخدامه مع parallel_replicas_custom_key_range_lower، فإنه يتيح للمرشح تقسيم العمل بالتساوي على النسخ المتماثلة ضمن النطاق [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
ملاحظة: لن يتسبب هذا الإعداد في ترشيح أي بيانات إضافية أثناء معالجة الاستعلامات، بل يغيّر النقاط التي يقسم عندها مرشح النطاق المجال [0, INT_MAX] لأغراض المعالجة المتوازية
parallel_replicas_filter_pushdown
parallel_replicas_for_cluster_engines
parallel_replicas_for_non_replicated_merge_tree
parallel_replicas_index_analysis_only_on_coordinator
parallel_replicas_insert_select_local_pipeline
parallel_replicas_local_plan
parallel_replicas_mark_segment_size
parallel_replicas_min_number_of_rows_per_replica
parallel_replicas_mode
parallel_replicas_only_with_analyzer
parallel_replicas_prefer_local_join
parallel_replicas_prefer_local_replica
max_parallel_replicas = 1 إلى مضيف آخر، مما قد يحسّن محلية ذاكرة التخزين المؤقت عند توزيع عدد كبير من الاستعلامات القصيرة عبر عنقود.
parallel_replicas_support_projection
parallel_view_processing
parallelize_output_from_storages
parsedatetime_e_requires_space_padding
parsedatetime_parse_without_leading_zeros
partial_merge_join_left_table_buffer_bytes
partial_merge_join_rows_in_right_blocks
- يقسّم بيانات الربط في الطرف الأيمن إلى كتل يصل عدد الصفوف في كل منها إلى العدد المحدد.
- ينشئ فهرسًا لكل كتلة باستخدام قيمها الدنيا والعليا.
- يفرّغ الكتل المُحضّرة إلى القرص إذا كان ذلك ممكنًا.
- أي عدد صحيح موجب. النطاق الموصى به للقيم: [1000, 100000].
partial_result_on_first_cancel
parts_to_delay_insert
parts_to_throw_insert
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_connection_attempt_timeout
connect_timeout ضمن URL الاتصال.
postgresql_connection_pool_auto_close_connection
postgresql_connection_pool_retries
postgresql_connection_pool_size
postgresql_connection_pool_wait_timeout
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. عند تعيينه إلى N > 0، تُؤخذ عيّنة من نحو 1/N من الاستعلامات (استنادًا إلى معرّف الاستعلام). وتعني القيمة 0 أنه معطّل.
prefer_column_name_to_alias
- 0 — يُستبدل اسم العمود بالاسم المستعار.
- 1 — لا يُستبدل اسم العمود بالاسم المستعار.
prefer_external_sort_block_bytes
prefer_global_in_and_join
IN/JOIN بـ GLOBAL IN/GLOBAL JOIN.
القيم الممكنة:
- 0 — معطّل. لا يتم استبدال معاملي
IN/JOINبـGLOBAL IN/GLOBAL JOIN. - 1 — مفعّل. يتم استبدال معاملي
IN/JOINبـGLOBAL IN/GLOBAL JOIN.
SET distributed_product_mode=global يمكنه تغيير سلوك الاستعلامات بالنسبة إلى الجداول الموزعة، فإنه غير مناسب للجداول المحلية أو الجداول القادمة من الموارد الخارجية. وهنا يأتي دور الإعداد prefer_global_in_and_join.
على سبيل المثال، قد تكون لدينا عُقد لخدمة الاستعلامات تحتوي على جداول محلية لا تناسب التوزيع. في هذه الحالة، نحتاج إلى توزيع بياناتها أثناء المعالجة الموزعة في وقت التنفيذ باستخدام الكلمة المفتاحية GLOBAL — GLOBAL IN/GLOBAL JOIN.
ومن حالات الاستخدام الأخرى للإعداد prefer_global_in_and_join الوصول إلى الجداول المُنشأة بواسطة المحركات الخارجية. يساعد هذا الإعداد على تقليل عدد الاستدعاءات إلى المصادر الخارجية عند ربط مثل هذه الجداول: استدعاء واحد فقط لكل استعلام.
انظر أيضًا:
- Distributed subqueries لمزيد من المعلومات حول كيفية استخدام
GLOBAL IN/GLOBAL JOIN
prefer_localhost_replica
- 1 — يرسل ClickHouse دائمًا الاستعلام إلى النسخة المتماثلة على localhost إذا كانت موجودة.
- 0 — يستخدم ClickHouse استراتيجية الموازنة المحددة في الإعداد load_balancing.
عطّل هذا الإعداد إذا كنت تستخدم max_parallel_replicas بدون parallel_replicas_custom_key.
إذا كان parallel_replicas_custom_key مضبوطًا، فعطّل هذا الإعداد فقط إذا كان يُستخدم على عنقود يضم عدة shards تحتوي على عدة نسخ متماثلة.
إذا كان يُستخدم على عنقود يحتوي على shard واحدة وعدة نسخ متماثلة، فسيكون لتعطيل هذا الإعداد آثار سلبية.
prefer_warmed_unmerged_parts_seconds
preferred_block_size_bytes
preferred_max_column_in_block_size_bytes
preferred_optimize_projection_name
- String: اسم الإسقاط المفضّل
prefetch_buffer_size
print_pretty_type_names
DESCRIBE وفي الدالة toTypeName().
مثال:
الأولوية
promql_database
promql_evaluation_time
evaluation_time
يحدّد وقت التقييم المستخدم مع لهجة promql. وتعني 'auto' الوقت الحالي.
promql_table
push_external_roles_in_interserver_queries
query_cache_compress_entries
- 0 - معطّل
- 1 - مفعّل
query_cache_for_subqueries
use_query_cache إلى جميع الاستعلامات الفرعية.
القيم الممكنة:
- 0 - معطّل
- 1 - مفعّل
query_cache_max_entries
- عدد صحيح غير سالب >= 0.
query_cache_max_size_in_bytes
- عدد صحيح غير سالب >= 0.
query_cache_min_query_duration
- عدد صحيح موجب أو صفر >= 0.
query_cache_min_query_runs
SELECT قبل تخزين نتيجته في ذاكرة التخزين المؤقت للاستعلامات.
القيم الممكنة:
- عدد صحيح غير سالب >= 0.
query_cache_nondeterministic_function_handling
SELECT التي تتضمن دوال غير حتمية مثل rand() أو now().
القيم الممكنة:
'throw'- طرح استثناء وعدم تخزين نتيجة الاستعلام مؤقتًا.'save'- تخزين نتيجة الاستعلام مؤقتًا.'ignore'- عدم تخزين نتيجة الاستعلام مؤقتًا وعدم طرح استثناء.
SELECT المخزّنة مؤقتًا في ذاكرة التخزين المؤقت للاستعلامات.
لا يُنصح بتمكين هذا الإعداد لأسباب أمنية.
القيم الممكنة:
- 0 - معطّل
- 1 - مفعّل
query_cache_squash_partial_results
- 0 - معطّل
- 1 - مفعّل
query_cache_system_table_handling
SELECT على جداول النظام، أي الجداول الموجودة في قاعدتَي البيانات system.* وinformation_schema.*.
القيم الممكنة:
'throw'- رفع استثناء وعدم تخزين نتيجة الاستعلام مؤقتًا.'save'- تخزين نتيجة الاستعلام مؤقتًا.'ignore'- عدم تخزين نتيجة الاستعلام مؤقتًا وعدم رفع استثناء.
query_cache_tag
- أي سلسلة نصية
query_cache_ttl
- عدد صحيح غير سالب >= 0.
query_metric_log_interval
collect_interval_milliseconds من إعداد query_metric_log، أو ستستخدم القيمة الافتراضية 1000 إذا لم تكن موجودة.
لتعطيل الجمع لاستعلام واحد، اضبط query_metric_log_interval على 0.
القيمة الافتراضية: -1
query_plan_aggregation_in_order
query_plan_enable_optimizations يساوي 1.
هذا إعداد مخصص للخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_convert_any_join_to_semi_or_anti_join
query_plan_convert_join_to_in
JOIN إلى استعلام فرعي يتضمّن IN إذا كانت أعمدة الإخراج مرتبطة بالجدول الأيسر فقط. قد يؤدي ذلك إلى نتائج غير صحيحة مع أنواع JOIN غير ANY (مثل ALL JOINs، وهو الإعداد الافتراضي).
query_plan_convert_outer_join_to_inner_join
OUTER JOIN إلى INNER JOIN إذا كان عامل التصفية بعد JOIN يستبعد دائمًا القيم الافتراضية
query_plan_direct_read_from_text_index
query_plan_display_internal_aliases
query_plan_enable_multithreading_after_window_functions
query_plan_enable_optimizations
هذا إعداد مخصص للخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. قد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
- 0 - تعطيل جميع عمليات التحسين على مستوى خطة الاستعلام
- 1 - تمكين عمليات التحسين على مستوى خطة الاستعلام (لكن قد تظل بعض عمليات التحسين الفردية معطّلة عبر إعداداتها الخاصة)
query_plan_execute_functions_after_sorting
query_plan_enable_optimizations تساوي 1.
هذا إعداد مخصّص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_filter_push_down
هذا إعداد مخصّص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. قد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
hash join) في خطة الاستعلام. لا يدعم هذا الإعداد إلا درجة الصرامة ALL في JOIN مع عبارة JOIN ON. القيم الممكنة هي:
- ‘auto’: دع المخطِّط يقرر أي جدول سيُستخدم كجدول البناء.
- ‘false’: لا تبدِّل الجداول مطلقًا (الجدول الأيمن هو جدول البناء).
- ‘true’: بدِّل الجداول دائمًا (الجدول الأيسر هو جدول البناء).
query_plan_lift_up_array_join
هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_lift_up_union
union لإتاحة المزيد من التحسينات.
ولا يسري مفعوله إلا إذا كان الإعداد query_plan_enable_optimizations مضبوطًا على 1.
هذا إعداد مخصص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_max_limit_for_join_lazy_indexing
خطة الاستعلام لتحسين الفهرسة الكسولة في JOIN. إذا كانت القيمة صفراً، فلا يوجد حد.
query_plan_max_limit_for_lazy_materialization
query_plan_max_limit_for_top_k_optimization
query_plan_max_optimizations_to_apply
هذا إعداد مخصّص للمستخدمين الخبراء، ولا ينبغي أن يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد يُزال.
query_plan_max_set_size_for_projection_match
IN يحسب لها مُطابِق الإسقاط تجزئات المحتوى ويقارنها عند تحديد ما إذا كانت مجموعتان متساويتين. وتُعامَل المجموعات الأكبر من ذلك على أنها غير متطابقة، ويُتخطّى الإسقاط. تؤدي القيمة صفر إلى تعطيل مقارنة تجزئة المحتوى بالكامل: لا تنجح مطابقة الإسقاط مطلقًا للعُقد التي تحتوي على مجموعات لعبارة IN.
يُستخدم هذا الإعداد بواسطة مُطابِق الإسقاط التجميعي (وأي مُطابِق إسقاط مستقبلي يحتاج إلى مقارنة مجموعات لعبارة IN). ويبلغ تعقيد حساب تجزئة المحتوى O(N log N) بالنسبة إلى عدد عناصر المجموعة؛ لذا يضع هذا الإعداد حدًا للتكلفة المتكبدة أثناء التخطيط عند ظهور عدد كبير من عبارات IN في الاستعلام أو الإسقاط.
query_plan_max_step_description_length
query_plan_merge_expressions
هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_merge_filter_into_join_condition
JOIN وتحويل CROSS JOIN إلى INNER.
query_plan_merge_filters
query_plan_min_columns_for_join_lazy_indexing
query_plan_optimize_join_order_algorithm
greedy- خوارزمية جشعة أساسية - تعمل بسرعة، لكنها قد لا تنتج أفضل ترتيب لعمليات JOINdpsize- يطبّق خوارزمية DPsize حاليًا على عمليات INNER JOIN فقط - يراعي جميع ترتيبات JOIN الممكنة ويعثر على الترتيب الأمثل، لكنه قد يكون بطيئًا للاستعلامات التي تتضمن عددًا كبيرًا من الجداول وشروط JOINdphyp- يطبّق خوارزمية DPhyp (البرمجة الديناميكية عبر تقسيم الرسم البياني الفائق) حاليًا على عمليات INNER JOIN فقط - يستكشف مجال البحث نفسه الذي تستكشفهdpsize، لكنه لا يُعدِّد إلا أزواج الرسوم البيانية الفرعية المتصلة، مما يولّد عددًا أقل من عمليات JOIN الوسيطة في رسوم JOIN البيانية المتناثرة، وذلك مقابل عدم أخذ الضربات الديكارتية في الحسبان يمكن تحديد عدة خوارزميات في صورة قائمة مفصولة بفواصل، مثلdphyp,greedy. وتُجرَّب هذه الخوارزميات بالترتيب؛ فإذا تعذّر على إحدى الخوارزميات التعامل مع الاستعلام (على سبيل المثال، بسبب عمليات OUTER JOIN أو المكوّنات غير المتصلة)، تُستخدَم الخوارزمية التالية كخيار احتياطي.
query_plan_optimize_join_order_limit
query_plan_optimize_join_order_max_searched_plans
query_plan_optimize_join_order_algorithm.
يضع هذا حدًا حتميًا لزمن التحسين (بصرف النظر عن الزمن المنقضي فعليًا) في الرسوم البيانية الكثيفة لعمليات join، مثل cliques أو stars، حيث تنمو مساحة البحث نموًا أُسّيًا.
اضبطه على 0 لتعطيل هذا الحد. لا يؤثر ذلك في القيمة الافتراضية query_plan_optimize_join_order_limit، حيث يظل البحث دائمًا أدنى بكثير من هذا الحد.
query_plan_optimize_join_order_randomize
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_prewhere
query_plan_push_down_limit
هذا إعداد مخصص للخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_push_limit_by_into_sort
ORDER BY ... LIMIT BY. عندما تكون أعمدة LIMIT BY بادئة لعبارة ORDER BY، يطبّق كل تدفق مفروز ومتوازٍ LIMIT BY قبل دمج التدفقات في تدفق واحد، مما يقلل عدد الصفوف التي تعالجها عملية الدمج النهائية ومراحل المسار اللاحقة. يسرّع ذلك الاستعلامات التي يستبعد فيها LIMIT BY نسبة كبيرة من الصفوف.
لا يسري مفعوله إلا إذا كان الإعداد query_plan_enable_optimizations يساوي 1.
القيم الممكنة:
- 0 - تعطيل
- 1 - تمكين
query_plan_read_in_order
query_plan_enable_optimizations تساوي 1.
هذا إعداد مخصص للمستخدمين الخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_read_in_order_through_join
query_plan_remove_redundant_distinct
query_plan_enable_optimizations يساوي 1.
هذا إعداد مخصص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. قد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_remove_redundant_sorting
query_plan_enable_optimizations تساوي 1.
هذا إعداد مخصّص للخبراء، ويجب ألا يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة، أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_remove_unused_columns
هذا إعداد مخصّص للمستخدمين الخبراء، ولا ينبغي أن يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_plan_reuse_storage_ordering_for_window_functions
optimize_read_in_window_order
يبدّل تحسينًا على مستوى خطة الاستعلام يستخدم ترتيب التخزين عند إجراء الفرز لدوال النافذة.
ولا يسري مفعوله إلا إذا كان الإعداد query_plan_enable_optimizations مضبوطًا على 1.
هذا إعداد مخصص للخبراء، ويجب ألا يُستخدم إلا لأغراض تصحيح الأخطاء من قِبل المطورين. وقد يتغير هذا الإعداد مستقبلًا بطرق غير متوافقة مع الإصدارات السابقة أو قد يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_split_filter
هذا إعداد مخصّص للخبراء، ولا ينبغي أن يستخدمه لأغراض تصحيح الأخطاء إلا المطورون. قد يتغير هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة، أو قد يُزال.
- 0 - تعطيل
- 1 - تمكين
query_plan_text_index_add_hint
query_plan_top_k_through_join
ORDER BY ... LIMIT n إلى أسفل عبر عملية join عندما لا يشير مفتاح الفرز إلا إلى الأعمدة في الجانب الذي يحتفظ به الـ join (LEFT/RIGHT). ويقيّد عدد الصفوف التي يجب أن ينتجها الإدخال الخاص بالجانب المُحتفَظ به قبل إجراء الربط.
لا يسري مفعوله إلا إذا كانت قيمة الإعداد query_plan_enable_optimizations تساوي 1.
القيم الممكنة:
- 0 - تعطيل
- 1 - تمكين
query_plan_try_use_vector_search
query_plan_enable_optimizations تساوي 1.
هذا إعداد مخصّص لمستوى الخبراء، ولا ينبغي أن يستخدمه إلا المطورون لأغراض تصحيح الأخطاء. وقد يتغيّر هذا الإعداد مستقبلًا على نحو غير متوافق مع الإصدارات السابقة أو قد تتم إزالته.
- 0 - تعطيل
- 1 - تمكين
query_profiler_cpu_time_period_ns
-
عدد صحيح موجب من النانوثواني.
القيم الموصى بها:
- 10000000 (100 مرة في الثانية) نانوثانية أو أكثر للاستعلامات الفردية.
- 1000000000 (مرة واحدة في الثانية) للتوصيف على مستوى العنقود بالكامل.
- 0 لإيقاف المؤقّت.
- جدول النظام trace_log
query_profiler_real_time_period_ns
-
عدد صحيح موجب، بالنانوثانية.
القيم الموصى بها:
- 10000000 (100 مرة في الثانية) نانوثانية أو أقل للاستعلامات الفردية.
- 1000000000 (مرة واحدة في الثانية) لتحليل الأداء على مستوى العنقود بأكمله.
- 0 لإيقاف المؤقّت.
- جدول النظام trace_log
3000000000.
queue_max_wait_ms
rabbitmq_max_wait_ms
read_backoff_max_throughput
read_backoff_min_concurrency
read_backoff_min_events
read_backoff_min_interval_between_events_ms
read_backoff_min_latency_ms
read_from_distributed_cache_if_exists_otherwise_bypass_cache
read_from_filesystem_cache_if_exists_otherwise_bypass_cache
read_from_page_cache_if_exists_otherwise_bypass_cache
read_in_order_two_level_merge_threshold
read_in_order_use_buffering
read_in_order_use_virtual_row
read_in_order_use_virtual_row_per_block
read_in_order_use_virtual_row، يُخرِج صفًا افتراضيًا بعد كل block تتم قراءته (وليس فقط في بداية كل part).
يتيح ذلك لـ MergingSortedTransform إعادة تحديد أولوية sources بوتيرة أعلى، وهو ما يكون مفيدًا عندما تستبعد عوامل التصفية اللاحقة عددًا كبيرًا من rows وتكون البيانات موزعة بشكل غير متساوٍ عبر parts.
لاحظ أن هذا يعطّل تحسين read_in_order_use_buffering وpreliminary merge (read_in_order_two_level_merge_threshold) أثناء القراءة.
read_overflow_mode
read_overflow_mode_leaf
throw: إثارة استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية.
read_priority
threadpool لنظام الملفات البعيد.
read_through_distributed_cache
readonly
receive_data_timeout_ms
receive_timeout
send_timeout للمقبس عند طرف الاتصال المقابل على الخادم.
recursive_cte_max_steps_in_type_inference
getLeastSupertype على الجزأين غير التكراري والتكراري من UNION ALL حتى الوصول إلى حالة الاستقرار. اضبطه على 0 لتعطيل توسيع النوع واستخدام أنواع الجزء غير التكراري فقط.
regexp_dict_allow_hyperscan
regexp_tree باستخدام مكتبة Hyperscan.
regexp_dict_flag_case_insensitive
regexp_dict_flag_dotall
regexp_max_matches_per_row
- عدد صحيح موجب.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_filesystem_read_method
remote_filesystem_read_prefetch
remote_fs_read_backoff_max_tries
remote_fs_read_max_backoff_ms
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
replace_running_query
0 (الافتراضي) – إثارة استثناء (عدم السماح بتشغيل الاستعلام إذا كان هناك بالفعل استعلام له ‘query_id’ نفسه قيد التشغيل).
1 – إلغاء الاستعلام القديم وبدء تشغيل الاستعلام الجديد.
اضبط هذه المعلَمة على 1 لتنفيذ اقتراحات شروط التقسيم. بعد إدخال الحرف التالي، إذا لم يكن الاستعلام القديم قد انتهى بعد، فيجب إلغاؤه.
replace_running_query_max_wait_ms
query_id نفسه، عندما يكون الإعداد replace_running_query مفعّلًا.
القيم الممكنة:
- عدد صحيح موجب.
- 0 — طرح استثناء يمنع تشغيل استعلام جديد إذا كان الخادم ينفّذ بالفعل استعلامًا يحمل
query_idنفسه.
replication_wait_for_inactive_replica_timeout
ALTER أو OPTIMIZE أو TRUNCATE.
القيم الممكنة:
0— لا تنتظر.- عدد صحيح سالب — انتظر لمدة غير محدودة.
- عدد صحيح موجب — عدد الثواني التي يجب انتظارها.
restore_replace_external_dictionary_source_to_null
restore_replace_external_engines_to_null
restore_replace_external_table_functions_to_null
1.
result_overflow_mode
throw
يحدّد ما يجب فعله إذا تجاوز حجم النتيجة أحد الحدود.
القيم الممكنة:
throw: رفع استثناء (افتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن البيانات المصدر قد نفدت.
Break التنفيذ إلا على مستوى
الكتلة. وهذا يعني أن عدد الصفوف المُعادة يكون أكبر من
max_result_rows، ويكون مضاعفًا لـ max_block_size
ويعتمد على max_threads.
مثال
Query
Result
rewrite_count_distinct_if_with_count_distinct_implementation
countDistcintIf باستخدام إعداد count_distinct_implementation.
القيم الممكنة:
- true — مسموح.
- false — غير مسموح.
rewrite_in_to_join
rows_before_aggregation
s3_allow_multipart_copy
s3_allow_parallel_part_upload
s3_check_objects_after_upload
head للتأكد من نجاح عملية الرفع
s3_connect_timeout_ms
s3_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz، إلخ.
القيم الممكنة:
- 0 — ينشئ استعلام
INSERTملفًا جديدًا، أو يفشل إذا كان الملف موجودًا ولم يتم تعيينs3_truncate_on_insert. - 1 — ينشئ استعلام
INSERTملفًا جديدًا مع كل عملية insert باستخدام لاحقة (بدءًا من الملف الثاني) إذا لم يتم تعيينs3_truncate_on_insert.
s3_disable_checksum
checksum عند إرسال ملف إلى S3. يسرّع ذلك عمليات الكتابة من خلال تجنّب تكرار المعالجة غير الضروري للملف. ويُعد هذا آمنًا في معظم الحالات، لأن ClickHouse يتحقق أصلًا من سلامة بيانات جداول MergeTree باستخدام checksums، وعند الوصول إلى S3 عبر HTTPS، توفّر طبقة TLS بالفعل سلامة البيانات أثناء نقلها عبر الشبكة. ومع ذلك، فإن استخدام checksums إضافية على S3 يوفّر طبقة حماية إضافية.
s3_ignore_file_doesnt_exist
- 1 — يعيد
SELECTنتيجة فارغة. - 0 — يطلق
SELECTاستثناءً.
s3_list_object_keys_size
s3_max_connections
s3_max_get_burst
s3_max_get_rps
s3_max_get_rps
s3_max_inflight_parts_for_one_file
s3_max_part_number
s3_max_put_burst
s3_max_put_rps
s3_max_put_rps
s3_max_single_operation_copy_size
s3_allow_multipart_copy هي true.
s3_max_single_part_upload_size
s3_max_single_read_retries
s3_max_unexpected_write_error_retries
s3_max_upload_part_size
s3_min_upload_part_size
s3_path_filter_limit
_path التي يمكن استخراجها من مرشحات الاستعلام لاستخدامها عند التكرار على الملفات
بدلًا من السرد باستخدام glob. وتعني القيمة 0 أنه معطّل.
s3_request_timeout_ms
s3_skip_empty_files
- 0 — يُطلق
SELECTاستثناءً إذا لم يكن الملف الفارغ متوافقًا مع التنسيق المطلوب. - 1 — يعيد
SELECTنتيجة فارغة للملف الفارغ.
s3_slow_all_threads_after_network_error
true، تُبطَّأ جميع خيوط التنفيذ التي تنفّذ طلبات S3 إلى نقطة نهاية النسخ الاحتياطي نفسها
بعد أن يواجه أي طلب S3 واحد خطأ شبكة قابلاً لإعادة المحاولة، مثل انتهاء مهلة المقبس.
وعند تعيينه إلى false، تتعامل كل خيط تنفيذ مع تأخير إعادة المحاولة لطلبات S3 بشكل مستقل عن الخيوط الأخرى.
s3_strict_upload_part_size
s3_throw_on_zero_files_match
s3_truncate_on_insert
- 0 — ينشئ استعلام
INSERTملفًا جديدًا، أو يفشل إذا كان الملف موجودًا ولم يتم تعيين s3_create_new_file_on_insert. - 1 — يستبدل استعلام
INSERTالمحتوى الحالي للملف بالبيانات الجديدة.
s3_upload_part_size_multiply_factor
s3_min_upload_part_size في هذا العامل في كل مرة يتم فيها تحميل s3_multiply_parts_count_threshold جزءًا من عملية كتابة واحدة إلى S3.
s3_upload_part_size_multiply_parts_count_threshold
s3_min_upload_part_size بمعامل s3_upload_part_size_multiply_factor.
s3_uri_style
s3_use_adaptive_timeouts
true، تُجرى المحاولتان الأوليان لجميع طلبات S3 أولًا بمهلات إرسال واستقبال منخفضة.
وعند ضبطه على false، تُجرى جميع المحاولات بمهلات متطابقة.
s3_validate_request_settings
- 1 — التحقق من صحة الإعدادات.
- 0 — عدم التحقق من صحة الإعدادات.
s3queue_default_zookeeper_path
s3queue_enable_logging_to_s3queue_log
s3queue_keeper_fault_injection_probability
s3queue_migrate_old_metadata_to_buckets
schema_inference_cache_require_modification_time_for_url
schema_inference_use_cache_for_azure
schema_inference_use_cache_for_file
schema_inference_use_cache_for_hdfs
schema_inference_use_cache_for_s3
schema_inference_use_cache_for_url
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 المتوازية قد تُكتب إلى مجموعات مختلفة من النسخ المتماثلة الخاصة بالنصاب، لذا لا يوجد ما يضمن أن نسخة متماثلة واحدة قد استقبلت جميع عمليات الكتابة.
انظر أيضًا:
send_logs_level
send_logs_source_regexp
send_profile_events
- 0 — معطّل.
- 1 — مفعّل.
send_progress_in_http_headers
X-ClickHouse-Progress في ردود clickhouse-server.
لمزيد من المعلومات، اقرأ وصف واجهة HTTP.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
send_table_structure_on_insert_with_inline_data
send_timeout
receive_timeout الخاص بـ socket على الطرف المقابل من الاتصال على الخادم.
serialize_query_plan
serialize_string_in_memory_with_zero_byte
session_timezone
timeZone() وserverTimeZone() للحصول على المنطقة الزمنية للجلسة والمنطقة الزمنية للخادم.
القيم الممكنة:
- أي اسم منطقة زمنية من
system.time_zones، مثلEurope/BerlinأوUTCأوZulu
- إن
toDateTime()، عند استخدامها في استعلامSELECTالأول من دون تحديدtime zoneصراحةً، تراعي الإعدادsession_timezoneوالمنطقة الزمنية العامة. - في الاستعلام الثاني، يُحلَّل DateTime من String، ويرث النوع والمنطقة الزمنية من العمود الموجود
d. لذلك، لا يُعتدّ بالإعدادsession_timezoneولا بالمنطقة الزمنية العامة.
set_overflow_mode
throw: طرح استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن بيانات المصدر قد نفدت.
select_sequential_consistency مع SharedMergeTree. متاح فقط في ClickHouse Cloud.
الحد الأقصى لفترة التراجع، بالمللي ثانية، لتحديث الأجزاء عند استخدام select_sequential_consistency مع SharedMergeTree. هذا الإعداد متاح فقط في ClickHouse Cloud.
الحد الأقصى لعدد مرات إعادة المحاولة لتحديث الأجزاء عند استخدام select_sequential_consistency مع SharedMergeTree. متاح فقط في ClickHouse Cloud.
تتم مزامنة مجموعة أجزاء البيانات تلقائيًا بعد عمليات partition من MOVE|REPLACE|ATTACH في جداول SMT. Cloud فقط
short_circuit_function_evaluation
enable— يفعّل التقييم المختصر للدوال المناسبة لذلك (التي قد تطرح استثناءً أو تكون مكلفة حسابيًا).force_enable— يفعّل التقييم المختصر لجميع الدوال.disable— يعطّل التقييم المختصر للدوال.
short_circuit_function_evaluation_for_nulls
short_circuit_function_evaluation_for_nulls_threshold، يتجاوز النظام تقييم الدالة على أساس صف بصف. وبدلًا من ذلك، يُرجع NULL فورًا لجميع الصفوف، مما يجنّب إجراء عمليات حسابية غير ضرورية.
short_circuit_function_evaluation_for_nulls_threshold
show_processlist_include_internal
SHOW PROCESSLIST.
تشمل العمليات الداخلية إعادة تحميل القواميس، وإعادة تحميل العروض المادية القابلة للتحديث، وعمليات SELECT المساعدة المنفذة ضمن استعلامات SHOW ...، واستعلامات CREATE DATABASE ... المساعدة المنفذة داخليًا للتعامل مع الجداول المعطوبة، وغير ذلك.
show_remote_databases_in_system_tables
show_data_lake_catalogs_in_system_tables
يُفعّل إظهار قواعد البيانات البعيدة (كتالوجات بحيرة البيانات، وMySQL، وPostgreSQL) في جداول النظام.
show_table_uuid_in_table_create_query_if_not_nil
SHOW TABLE.
القيم الممكنة:
- 0 — سيُعرض الاستعلام بدون UUID للجدول.
- 1 — سيُعرض الاستعلام مع UUID للجدول.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — يتم تخطي الأسماء المستعارة (واستبدالها) في UDFs.
- 0 — لا يتم تخطي الأسماء المستعارة (ولا استبدالها) في UDFs.
- يتعذر على ClickHouse الاتصال بالنسخة المتماثلة لأي سبب. عند الاتصال بنسخة متماثلة، يُجري ClickHouse عدة محاولات. وإذا فشلت جميع هذه المحاولات، تُعد النسخة المتماثلة غير متاحة.
-
يتعذر حلّ عنوان النسخة المتماثلة عبر DNS.
إذا تعذر حلّ اسم المضيف الخاص بالنسخة المتماثلة عبر DNS، فقد يشير ذلك إلى الحالات التالية:
- لا يملك مضيف النسخة المتماثلة سجل DNS. وقد يحدث ذلك في الأنظمة التي تستخدم DNS ديناميكيًا، مثل Kubernetes، حيث قد يتعذر حلّ العقد أثناء فترة التوقف، وهذا لا يُعد خطأً.
- خطأ في الإعداد. يحتوي ملف إعداد ClickHouse على اسم مضيف غير صحيح.
- 1 — التخطي مفعّل. إذا كانت إحدى الشظايا غير متاحة، يعيد ClickHouse نتيجةً تستند إلى بيانات جزئية ولا يبلّغ عن مشكلات في توافر العقد.
- 0 — التخطي معطّل. إذا كانت إحدى الشظايا غير متاحة، يطرح ClickHouse استثناءً.
sleep_after_receiving_query_ms
sleep_in_send_data_ms
sleep_in_send_tables_status_ms
sort_overflow_mode
throw: طرح استثناء.break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية.
split_intersecting_parts_ranges_into_layers_final
split_parts_ranges_into_intersecting_and_non_intersecting_final
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>. ينطبق ذلك أيضًا على العروض المُنشأة حديثًا. لا يؤثر ذلك في العروض المادية غير القابلة لإعادة التحديث.
storage_file_read_method
read، pread، mmap. لا تنطبق الطريقة mmap على clickhouse-server (فهي مخصّصة لـ clickhouse-local).
storage_system_stack_trace_pipe_read_timeout_ms
system.stack_trace. يُستخدم هذا الإعداد لأغراض الاختبار، وليس من المفترض أن يغيّره المستخدمون.
stream_flush_interval_ms
stream_like_engine_allow_direct_select
stream_like_engine_insert_queue
stream_poll_timeout_ms
system_events_show_zero_values
system.events.
تتطلب بعض أنظمة المراقبة تمرير جميع قيم المقاييس إليها عند كل نقطة تحقق، حتى إذا كانت قيمة المقياس صفرًا.
القيم الممكنة:
- 0 — معطّل.
- 1 — مُمكّن.
system_metric_log_show_zero_values_in_histograms
histograms ضمن system.metric_log.
افتراضياً، يتم تجاهل المُدرَّجات التكرارية التي يكون فيها إجمالي count للمشاهدات صفراً، وداخل كل مُدرَّج تكراري مكتوب، تُحذَف أيضاً إدخالات الحاويات التي لا تحتوي على أي مشاهدات من خريطة histogram. فعِّل هذا الخيار لكتابة كل مُدرَّج تكراري وكل حاوية بغضّ النظر عن العدد — وهو مفيد لأنظمة المراقبة التي تتطلب ظهور كل مقياس عند كل نقطة تحقق.
القيم الممكنة:
- 0 — معطّل. لا تُكتَب المُدرَّجات التكرارية التي فيها
count = 0؛ وتقتصر المُدرَّجات التكرارية المكتوبة على الحاويات التي استقبلت مشاهدة واحدة على الأقل. - 1 — مفعّل. تُكتَب جميع المُدرَّجات التكرارية، وتظهر كل حدود الحاويات في
histogram.
table_engine_read_through_distributed_cache
table_function_remote_max_addresses
- عدد صحيح موجب.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
temporary_files_buffer_size
temporary_files_codec
- LZ4 — يُستخدم ضغط LZ4.
- NONE — لا يُستخدم أي ضغط.
text_index_density_threshold
text_index_hint_max_selectivity
text_index_like_max_postings_to_read
LIKE للفهرس النصي باستخدام المسح بالقاموس.
يتطلب تفعيل use_text_index_like_evaluation_by_dictionary_scan.
text_index_like_min_pattern_length
use_text_index_like_evaluation_by_dictionary_scan مُمكّنًا.
text_index_posting_list_apply_mode
throw_if_no_data_to_insert
clickhouse-client أو واجهة gRPC.
throw_on_error_from_cache_on_write_operations
cache عند التخزين المؤقت أثناء عمليات الكتابة (INSERT، عمليات الدمج)
throw_on_max_partitions_per_insert_block
max_partitions_per_insert_block.
القيم الممكنة:
true- عند بلوغ كتلة إدراجmax_partitions_per_insert_block، يتم إطلاق استثناء.false- يُسجَّل تحذير عند بلوغmax_partitions_per_insert_block.
throw_on_unsupported_query_inside_transaction
timeout_before_checking_execution_speed
min_execution_speed)،
بعد انقضاء المدة المحددة بالثواني.
timeout_overflow_mode
max_execution_time أو كان
الوقت المقدَّر للتنفيذ أطول من max_estimated_execution_time.
القيم الممكنة:
throw: إثارة استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع نتيجة جزئية، كما لو أن البيانات المصدر قد نفدت.
timeout_overflow_mode_leaf
max_execution_time_leaf.
القيم المحتملة:
throw: رفع استثناء (الافتراضي).break: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية، كما لو أن بيانات المصدر قد نفدت.
totals_auto_threshold
totals_mode = 'auto'.
راجع قسم «مُعدِّل WITH TOTALS».
totals_mode
trace_profile_events
- 1 — تتبّع أحداث profile مُمكَّن.
- 0 — تتبّع أحداث profile مُعطَّل.
trace_profile_events_list
trace_profile_events، تقتصر الأحداث التي يُتتبَّعها على قائمة الأسماء المحددة والمفصولة بفواصل.
إذا كانت trace_profile_events_list سلسلة نصية فارغة (افتراضيًا)، فسيتم تتبُّع جميع أحداث profile.
مثال على قيمة: ‘DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes’
يتيح استخدام هذا الإعداد جمع البيانات بدقة أكبر لعدد كبير من الاستعلامات، لأن الكم الهائل من الأحداث قد يؤدي، بخلاف ذلك، إلى تجاوز سعة طابور سجل النظام الداخلي، مما يتسبب في إسقاط جزء منها.
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
update_parallel_mode
sync- شغّل جميع استعلاماتUPDATEبشكل تسلسلي.auto- شغّل بشكل تسلسلي فقط استعلاماتUPDATEالتي توجد بينها تبعيات بين الأعمدة المحدَّثة في أحد الاستعلامات والأعمدة المستخدمة في التعبيرات في استعلام آخر.async- لا تُزامِن استعلامات التحديث.
update_sequential_consistency
url_base
- عنوان URL نسبي إلى المسار (مثل
data.csv): يُدمج مع مسار URL الأساسي وفقًا للمعيار RFC 3986. ويُستبدل كل ما يأتي بعد آخر/في المسار الأساسي بعنوان URL النسبي، لذا فإن الشرطة المائلة اللاحقة مهمة:https://example.com/dir/+data.csv=https://example.com/dir/data.csv، لكنhttps://example.com/dir+data.csv=https://example.com/data.csv. وإذا لم يكن للعنوان الأساسي مسار (مثلhttps://example.com)، يُدرج/:https://example.com/data.csv. كما تُطبَّع المقاطع النقطية (./و../) في عنوان URL النسبي:https://example.com/dir/+../a.csv=https://example.com/a.csv. - عنوان URL نسبي إلى المضيف (مثل
/test/data.csv): يُحل استنادًا إلى scheme والمضيف في URL الأساسي. - عنوان URL نسبي إلى scheme (مثل
//other.com/test/data.csv): يُحل باستخدام scheme الخاص بـ URL الأساسي. - مرجع يتضمن query فقط (مثل
?x=1): يُلحق بمسار URL الأساسي (مع استبدال أي query/fragment موجود). - مرجع يتضمن fragment فقط (مثل
#frag): يُلحق بـ URL الأساسي مع الاحتفاظ بأي query string موجود (مع استبدال أي fragment موجود). - مرجع فارغ: يعيد URL الأساسي بدون fragment.
url_base هي https://example.com/def/، فسيكون الناتج كما يلي:
data.csvيُحل إلىhttps://example.com/def/data.csv/test/data.csvيُحل إلىhttps://example.com/test/data.csv//other.com/test/data.csvيُحل إلىhttps://other.com/test/data.csv
use_async_executor_for_materialized_views
use_cache_for_count_from_files
file/s3/url/hdfs/azureBlobStorage.
مُفعّل افتراضيًا.
use_client_time_zone
use_compact_format_in_distributed_parts_names
distributed_foreground_insert) إلى الجداول التي تستخدم المحرك Distributed.
القيم الممكنة:
- 0 — يستخدم تنسيق الدليل
user[:password]@host:port#default_database. - 1 — يستخدم تنسيق الدليل
[shard{shard_index}[_replica{replica_index}]].
- عند استخدام
use_compact_format_in_distributed_parts_names=0، لن تُطبَّق التغييرات في تعريف العنقود على عمليات INSERT في الخلفية. - عند استخدام
use_compact_format_in_distributed_parts_names=1، فإن تغيير ترتيب العقد في تعريف العنقود سيؤدي إلى تغييرshard_index/replica_index، لذا انتبه.
use_concurrency_control
concurrent_threads_soft_limit_num وconcurrent_threads_soft_limit_ratio_to_cores). وإذا كان معطّلًا، فسيتيح استخدام عدد أكبر من الخيوط حتى لو كان الخادم مثقلًا بالحمل (وهذا غير موصى به للاستخدام العادي، ويكون مطلوبًا غالبًا للاختبارات).
القيمة الافتراضية في Cloud: 0.
use_hash_table_stats_for_join_reordering
use_hedged_requests
hedged_connection_timeout
أو إذا لم يتم استلام أي بيانات خلال receive_data_timeout. يستخدم الاستعلام أول اتصال يرسل حزمة Progress غير فارغة (أو حزمة Data إذا كان allow_changing_replica_until_first_data_packet);
وتُلغى الاتصالات الأخرى. الاستعلامات التي تستخدم max_parallel_replicas > 1 مدعومة.
مُفعّل افتراضيًا.
القيمة الافتراضية في Cloud: 0.
use_hive_partitioning
/name=value/) في محركات الجداول الشبيهة بالملفات File/S3/URL/HDFS/AzureBlobStorage، ويتيح استخدام أعمدة partition كأعمدة افتراضية في query. وتحمل هذه الأعمدة الافتراضية الأسماء نفسها الموجودة في المسار المُقسَّم، ولكنها تبدأ بـ _.
use_iceberg_metadata_files_cache
- 0 - معطّل
- 1 - مُمكّن
use_iceberg_partition_pruning
use_index_for_in_with_subqueries
use_index_for_in_with_subqueries_max_values
use_join_disjunctions_push_down
use_legacy_to_time
use_lightweight_primary_key_index_analysis
MergeTree ذات المفاتيح الأساسية الطويلة.
عند تمكين هذا الإعداد، يعتمد وقت تنفيذ تحليل الفهرس أساسًا على مدى تعقيد عامل التصفية في الاستعلام (أي أعمدة المفتاح التي يستخدمها فعليًا)، وليس على طول المفتاح الأساسي. لذلك، فإن توسيع مفتاح الفرز يضيف كلفة إضافية شبه معدومة إلى تحليل الفهرس في الاستعلامات التي تُجري التصفية على عدد قليل فقط من أعمدته.
القيم الممكنة:
- 0 — معطّل. تُعالَج جميع أعمدة المفتاح الأساسي أثناء تحليل الفهرس.
- 1 — مفعّل.
use_page_cache_for_disks_without_file_cache
use_page_cache_for_local_disks
use_page_cache_for_object_storage
use_page_cache_with_distributed_cache
use_paimon_partition_pruning
use_parquet_metadata_cache
- 0 - معطّل
- 1 - مفعّل
use_partition_pruning
use_partition_key
استخدم مفتاح التقسيم لاستبعاد التقسيمات أثناء تنفيذ الاستعلام في جداول MergeTree.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
use_primary_key
- 0 — معطّل.
- 1 — مفعّل.
use_query_cache
SELECT ذاكرة التخزين المؤقت للاستعلامات. ويحدّد المعاملان enable_reads_from_query_cache
وenable_writes_to_query_cache بمزيد من التفصيل كيفية استخدام ذاكرة التخزين المؤقت.
القيم الممكنة:
- 0 - معطّل
- 1 - مفعّل
use_query_condition_cache
WHERE،
وتُعيد استخدام هذه المعلومات كفهرس مؤقت للاستعلامات اللاحقة.
القيم الممكنة:
- 0 - معطّل
- 1 - مُمكّن
use_reader_executor
ReaderExecutor بدلًا من التعشيق القديم لمخازن القراءة المؤقتة. ويعود إلى المسار القديم في التكوينات التي لا يزال المنفّذ لا يدعمها.
use_roaring_bitmap_iceberg_positional_deletes
use_skip_indexes
- 0 — معطّل.
- 1 — مفعّل.
use_skip_indexes_for_disjunctions
WHERE التي تجمع بين شرطي AND وOR باستخدام فهارس التخطي. مثال: WHERE A = 5 AND (B = 5 OR C = 5).
إذا كان هذا الإعداد معطّلًا، فستظل فهارس التخطي تُستخدم لتقييم الشروط في WHERE، ولكن يجب أن تتضمن فقط عبارات مربوطة بـ AND.
القيم الممكنة:
- 0 — مُعطّل.
- 1 — مُمكّن.
use_skip_indexes_for_top_k
ORDER BY <column> LIMIT n، فسيحاول المُحسِّن استخدام فهرس MinMax لتخطي الـ حبيبات غير المرتبطة بالنتيجة النهائية. ويمكن أن يقلّل ذلك من زمن استجابة الاستعلام.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
use_skip_indexes_if_final
- 0 — مُعطَّل.
- 1 — مُمكَّن.
use_skip_indexes_if_final_exact_mode
- 0 — معطّل.
- 1 — مفعّل.
use_skip_indexes_on_data_read
- 0 — معطّل.
- 1 — مُمكّن.
use_statistics
use_statistics_cache
use_statistics_for_part_pruning
- 0 — معطّل.
- 1 — مفعّل.
use_strict_insert_block_limits
- الحدود الدنيا (AND): يتم بلوغ كلٍّ من min_insert_block_size_rows و min_insert_block_size_bytes.
- الحدود القصوى (OR): يتم بلوغ أيٍّ من max_insert_block_size_rows أو max_insert_block_size_bytes.
- الحدود الدنيا (OR): يتم بلوغ min_insert_block_size_rows أو min_insert_block_size_bytes.
use_structure_from_insertion_table_in_table_functions
use_text_index_header_cache
use_text_index_like_evaluation_by_dictionary_scan
use_text_index_postings_cache
use_text_index_tokens_cache
use_top_k_dynamic_filtering
ORDER BY <column> LIMIT n.
عند تمكينه، سيحاول منفّذ الاستعلام تخطي الحبيبات والصفوف التي لن تكون ضمن صفوف top N النهائية في مجموعة النتائج. هذا التحسين ديناميكي بطبيعته، وتعتمد تحسينات زمن الاستجابة على توزيع البيانات ووجود شروط ترشيح أخرى في الاستعلام.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
use_top_k_dynamic_filtering_for_variable_length_types
use_top_k_dynamic_filtering بالتطبيق عندما يكون عمود الفرز من نوع بيانات متغير الطول (مثل String وArray وMap وTuple الذي يحتوي على عناصر متغيرة الطول).
في هذه الأنواع، قد تفوق تكلفة مقارنة العتبة لكل صف، التي ينفذها المرشح الديناميكي، مقدار التوفير الذي يحققه عندما تكون القيمة الدنيا المعجمية للعمود هي السائدة (مثل السلاسل الفارغة في معظم الحالات) ولا يمكن تخطي سوى عدد قليل من الحبيبات. في هذه الحالة، تسيء التصفية الديناميكية إلى زمن استجابة الاستعلام بدلًا من تحسينه.
عندما تكون قيمة هذا الإعداد 0، يقتصر التصفية الديناميكية على الأعمدة التي تكون لقيمها سعة قصوى ثابتة في الذاكرة (الأعداد، وDate، وDateTime، وFixedString، وEnum، وNullable لهذه الأنواع، وTuple لهذه الأنواع). وعند ضبطه على 1، يُطبَّق التصفية الديناميكية على الأنواع متغيرة الطول أيضًا.
القيم الممكنة:
- 0 — معطّل.
- 1 — مفعّل.
use_uncompressed_cache
use_variant_as_common_type
Variant كنوع ناتج لدوال if/multiIf/array/map عندما لا يوجد نوع مشترك لأنواع الوسائط.
مثال:
use_variant_default_implementation_for_comparisons
use_with_fill_by_sorting_prefix
validate_enum_literals_in_operators
IN وNOT IN و== و!= مقابل نوع enum، ويُطرح استثناء إذا لم تكن القيمة الحرفية قيمة enum صالحة.
validate_mutation_query
validate_polygons
- 0 — إلقاء الاستثناء معطّل. تقبل
pointInPolygonالمضلعات غير الصالحة وتُرجع لها نتائج قد تكون غير صحيحة. - 1 — إلقاء الاستثناء مفعّل.
variant_throw_on_type_mismatch
true(الافتراضي) — إثارة استثناء.false— إرجاعNULLلهذه الصفوف بدلاً من ذلك.
vector_search_filter_strategy
- ‘auto’ - post-filtering (قد تتغير الدلالات الدقيقة في المستقبل).
- ‘postfilter’ - استخدم vector similarity index لتحديد أقرب الجيران، ثم طبّق المرشحات الأخرى
- ‘prefilter’ - قيّم المرشحات الأخرى أولًا، ثم نفّذ بحث brute-force لتحديد الجيران.
vector_search_index_fetch_multiplier
vector_search_postfilter_multiplier
يُضرَب عدد أقرب الجيران المُجلَبين من فهرس تشابه المتجهات في هذا الرقم. لا يُطبَّق هذا إلا عند التصفية اللاحقة مع predicates أخرى، أو إذا كان الإعداد ‘vector_search_with_rescoring = 1’.
vector_search_with_rescoring
وضع_انتظار_ظهور_التغييرات_بعد_الالتزام
wait_for_async_insert
wait_for_async_insert_timeout
wait_for_part_commit_in_dependent_materialized_views
JOIN من رؤية الجزء الذي كتبته تلك الوجهة.
هذا الضمان يقتصر على كل مثيل من مثيلات الـ sink على حدة — وقد لا تكون الأجزاء التي كتبتها خيوط sink الأخرى ضمن عملية INSERT نفسها مرئية بعد. ولا يوفّر هذا الإعداد ترتيبًا لتثبيت العمليات عبر الخيوط.
ليس لهذا أي تأثير على عمليات الإدراج في الجداول التي لا تحتوي على عروض مادية تابعة.
wait_for_window_view_fire_signal_timeout
webassembly_udf_max_fuel
webassembly_udf_max_fuel = 1 يعادل تقريبًا 1024 وحدة وقود. اضبطها على 0 لإلغاء أي حدّ. ينطبق ذلك فقط على الدوال التي يكون فيها الإعداد الخاص بكل دالة webassembly_udf_enable_fuel مضبوطًا على true، وهي القيمة الافتراضية.