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

allow_aggregate_partitions_independently

تمكين التجميع المستقل لـ partitions على threads منفصلة عندما يكون مفتاح partition مناسبًا لمفتاح GROUP BY. يكون ذلك مفيدًا عندما يكون عدد partitions قريبًا من عدد الأنوية وتكون أحجام partitions متقاربة إلى حدٍّ ما. تقوم الآليات الاستدلالية في ReadFromMergeTree تلقائيًا بتعطيل هذا التحسين في التخطيطات غير الملائمة (عدد قليل جدًا من partitions، أو عدد كبير جدًا منها، أو أحجام partitions غير متوازنة بشكل ملحوظ)؛ راجع force_aggregate_partitions_independently لتجاوز هذه الفحوصات.

allow_archive_path_syntax

ستفسّر محركات File/S3/دالة الجدول المسارات التي تحتوي على ’::’ على أنها <archive> :: <file> إذا كان للأرشيف امتداد صحيح.

allow_asynchronous_read_from_io_pool_for_merge_tree

استخدم مجموعة I/O في الخلفية للقراءة من جداول MergeTree. قد يؤدي هذا الإعداد إلى تحسين الأداء للاستعلامات المقيّدة بعمليات I/O

allow_calculating_subcolumns_sizes_for_merge_tree_reading

عند التمكين، سيحسب ClickHouse أحجام الملفات المطلوبة لقراءة كل عمود فرعي، لتحسين حساب أحجام المهام والكتل.

allow_changing_replica_until_first_data_packet

إذا كان هذا الإعداد مُمكّنًا، ففي الطلبات المتحوّطة يمكننا بدء connection جديد حتى استلام أول packet بيانات، حتى لو كنّا قد أحرزنا بعض التقدّم بالفعل (لكن لم يتم تحديث التقدّم خلال مهلة receive_data_timeout)؛ وإلا فسنُعطّل تغيير الـ replica بعد أول مرة نُحرز فيها تقدّمًا.

allow_create_index_without_type

يسمح بتنفيذ استعلام CREATE INDEX بدون TYPE. سيتم تجاهل الاستعلام. وُضع هذا لأغراض اختبار التوافق مع SQL.

allow_custom_error_code_in_throwif

يتيح استخدام رمز خطأ مخصص في الدالة throwIf(). إذا كانت القيمة true، فقد تحمل الاستثناءات المُطلَقة رموز خطأ غير متوقعة.

allow_ddl

إذا ضُبطت القيمة على true، فسيُسمح للمستخدم بتنفيذ استعلامات DDL.

allow_distributed_ddl

إذا ضُبطت هذه القيمة على true، فسيُسمح للمستخدم بتنفيذ استعلامات DDL الموزعة.

allow_drop_detached

يسمح بتنفيذ استعلامات ALTER TABLE … DROP DETACHED PART[ITION] …

allow_dynamic_type_in_join_keys

يسمح باستخدام نوع Dynamic في مفاتيح JOIN. أُضيف لأغراض التوافق. لا يُنصح باستخدام نوع Dynamic في مفاتيح JOIN لأن المقارنة مع الأنواع الأخرى قد تؤدي إلى نتائج غير متوقعة.

allow_execute_multiif_columnar

السماح بتنفيذ الدالة multiIf بشكل عمودي

allow_fuzz_query_functions

يُمكِّن الدالة fuzzQuery التي تُجري تعديلات عشوائية على AST لاستعلامٍ ما.

allow_general_join_planning

يتيح هذا استخدام خوارزمية أكثر عمومية لتخطيط JOIN يمكنها التعامل مع شروط أكثر تعقيدًا، لكنها لا تعمل إلا مع hash join. وإذا لم يكن hash join مُمكّنًا، فستُستخدم خوارزمية تخطيط JOIN المعتادة بغض النظر عن قيمة هذا الإعداد.

allow_get_client_http_header

يسمح هذا الإعداد باستخدام الدالة getClientHTTPHeader التي تتيح الحصول على قيمة ترويسة طلب HTTP الحالي. وهي غير مُمكّنة افتراضيًا لأسباب أمنية، لأن بعض الترويسات، مثل Cookie، قد تحتوي على معلومات حساسة. لاحظ أن ترويسات X-ClickHouse-* وAuthentication وAuthorization تكون مقيّدة دائمًا، ولا يمكن الحصول عليها باستخدام هذه الدالة.

allow_hyperscan

يسمح بالدوال التي تستخدم مكتبة 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 — دوال فحص المكونات الداخلية مُعطّلة.
انظر أيضًا

allow_key_condition_coalesce_rewrite

يسمح هذا الإعداد للمفتاح الأساسي في MergeTree ولفهارس التخطي باستبعاد الحبيبات في شروط WHERE/PREWHERE التي تتضمن coalesce أو ifNull. من دون هذا الإعداد، تكون هذه الشروط غير قابلة للتحليل من جهة الفهارس ولا يجري استبعادها، لذلك تظل الحبيبات التي يستحيل أن تطابق الشرط مقروءة. يؤثر ذلك فقط في الحبيبات التي تُقرأ؛ أما نتائج الاستعلام فلا تتغير، لأن الصفوف تظل تُرشَّح وفق الشرط الأصلي. يُعاد كتابة شكلين من الشروط قبل تحليل الفهارس:
  • تتحول المقارنة مع coalesce/ifNull، مثل coalesce(a, b) = 5، إلى فصل منطقي بحيث يمكن لفهرس على كل وسيطة أن يستبعد البيانات: a = 5 OR (a IS NULL AND b = 5)، مع توسيع ذلك ليشمل مزيدًا من الوسائط.
  • يُفك coalesce/ifNull الذي يحتوي على قيمة افتراضية ثابتة كاذبة (صفر) ويُستخدم مباشرةً كشرط، مثل ifNull(a = 5, 0) أو coalesce(a = 5, 0)، إلى الشرط الداخلي a = 5. وتؤدي مثل هذه الأغلفة إلى طي النتيجة ثلاثية القيم للشرط الداخلي إلى قيمة Boolean محددة (أي تحويل NULL إلى false).

allow_limit_by_partitions_independently

يُمكّن التقييم المستقل لـ LIMIT BY لكل partition على خيوط تنفيذ منفصلة عندما يكون تعبير partition دالة حتمية لأعمدة LIMIT BY.

allow_materialized_view_with_bad_select

يسمح باستخدام CREATE MATERIALIZED VIEW مع استعلام SELECT يشير إلى جداول أو أعمدة غير موجودة. ويجب أن يظل صحيحًا من حيث الصياغة النحوية. لا ينطبق ذلك على MVs القابلة للتحديث. كما لا ينطبق إذا كان يجب استنتاج مخطط MV من استعلام SELECT (أي إذا كان CREATE لا يتضمن قائمة أعمدة ولا TO table). ويمكن استخدامه لإنشاء MV قبل الجدول المصدر الخاص بها.

allow_minmax_index_for_json

السماح بإنشاء فهارس minmax للتخطي على أعمدة JSON ‏(Object). يكون هذا الخيار معطّلًا افتراضيًا لأن مسار تسلسل فهرس minmax لا يمكنه التعامل مع قيم Field غير المتجانسة التي قد تحتويها أعمدة JSON.

allow_named_collection_override_by_default

السماح افتراضيًا بتجاوز حقول المجموعات المسماة.

allow_non_metadata_alters

السماح بتنفيذ عمليات ALTER التي لا تؤثر فقط في البيانات الوصفية للجداول، بل أيضًا في البيانات المخزنة على القرص

allow_nonconst_timezone_arguments

يسمح بوسائط timezone غير الثابتة في بعض الدوال المرتبطة بالوقت مثل toTimeZone() و fromUnixTimestamp*() و snowflakeIDToDateTime*(). يوجد هذا الإعداد لأسباب التوافق فقط. في ClickHouse، تُعد timezone خاصيةً لنوع البيانات، وبالتالي للعمود أيضًا. يُوحي تمكين هذا الإعداد خطأً بأن القيم المختلفة داخل العمود يمكن أن تكون لها timezones مختلفة. لذلك، يُرجى عدم تمكين هذا الإعداد.

allow_nullable_tuple_in_extracted_subcolumns

يتحكم هذا الإعداد في ما إذا كان يمكن إسناد النوع Nullable(Tuple(...)) إلى الأعمدة الفرعية المستخرجة من النوع Tuple(...).
  • false: أعد Tuple(...) واستخدم قيم tuple الافتراضية للصفوف التي يكون فيها العمود الفرعي مفقودًا.
  • true: أعد Nullable(Tuple(...)) واستخدم NULL للصفوف التي يكون فيها العمود الفرعي مفقودًا.
يتحكم هذا الإعداد في سلوك الأعمدة الفرعية المستخرجة فقط. ولا يتحكم في ما إذا كان يمكن إنشاء أعمدة Nullable(Tuple(...)) في الجداول؛ فهذا يتحكم فيه enable_nullable_tuple_type. يستخدم ClickHouse القيمة المحمّلة لهذا الإعداد عند بدء تشغيل الخادم. ولا تؤدي التغييرات التي تُجرى باستخدام SET أو SETTINGS على مستوى الاستعلام إلى تغيير سلوك الأعمدة الفرعية المستخرجة. ولتغيير سلوك الأعمدة الفرعية المستخرجة، حدّث allow_nullable_tuple_in_extracted_subcolumns في تهيئة ملف التعريف عند بدء التشغيل (على سبيل المثال، users.xml) ثم أعد تشغيل الخادم.

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

يسمح بإعادة ترتيب الشروط عند نقلها من WHERE إلى PREWHERE لتحسين التصفية

allow_replace_partition_from_empty_source

اسمح لـ ALTER TABLE ... REPLACE PARTITION ... FROM ... بحذف partition الوجهة بصمت عندما لا يحتوي المصدر على أي أجزاء في ذلك الـ partition. بشكل افتراضي، هذا غير مسموح به: إذ إن REPLACE PARTITION من مصدر لا يحتوي على بيانات في الـ partition المطلوب يُطلق استثناءً، لأن العملية في هذه الحالة تصبح فعليًا DROP PARTITION صامتًا على الوجهة (تُزال بيانات الوجهة ولا يستبدلها شيء)، وهو سبب شائع لفقدان البيانات عن طريق الخطأ (راجع #23727). فعّل هذا الإعداد لاستعادة السلوك السابق، على سبيل المثال عندما تستخدم عمدًا partition فارغًا في المصدر لمسح البيانات في الوجهة. وإذا أردت حذفًا غير مشروط، فالأفضل استخدام ALTER TABLE ... DROP PARTITION ... بدلًا من ذلك.

allow_settings_after_format_in_insert

تحكّم في السماح باستخدام SETTINGS بعد FORMAT في استعلامات INSERT من عدمه. لا يُنصح باستخدام هذا، لأن ذلك قد يؤدي إلى تفسير جزء من SETTINGS على أنه قيم. مثال:
لكن لن يعمل الاستعلام التالي إلا عند استخدام allow_settings_after_format_in_insert:
القيم الممكنة:
  • 0 — غير مسموح.
  • 1 — مسموح.
استخدم هذا الإعداد فقط للحفاظ على التوافق مع الإصدارات السابقة إذا كانت حالات الاستخدام لديك تعتمد على الصياغة القديمة.

allow_simdjson

يسمح باستخدام مكتبة simdjson في دوال ‘JSON*’ إذا كانت تعليمات AVX2 متوفرة. وإذا كان هذا الخيار معطّلًا، فستُستخدم rapidjson.

allow_special_serialization_kinds_in_output_formats

يسمح بإخراج الأعمدة ذات أنواع التسلسل الخاصة مثل Sparse وReplicated دون تحويلها إلى تمثيل الأعمدة الكامل. ويساعد ذلك على تجنب نسخ البيانات غير الضروري عند التنسيق.

allow_unrestricted_reads_from_keeper

يسمح بعمليات قراءة غير مقيّدة (من دون شرط على مسار) من جدول system.zookeeper، وقد يكون ذلك مفيدًا، لكنه غير آمن لـ ZooKeeper
آخر تعديل في ٢٤ يوليو ٢٠٢٦