> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# مصدر القاموس من ملف قابل للتنفيذ

> هيّئ ملفًا قابلاً للتنفيذ كمصدر قاموس في ClickHouse.

يعتمد التعامل مع الملفات القابلة للتنفيذ على [كيفية تخزين القاموس في الذاكرة](/ar/reference/statements/create/dictionary/layouts/overview). إذا كان القاموس مخزّنًا باستخدام `cache` و`complex_key_cache`، يطلب ClickHouse المفاتيح المطلوبة عبر إرسال طلب إلى `STDIN` الخاص بالملف القابل للتنفيذ. بخلاف ذلك، يشغّل ClickHouse الملف القابل للتنفيذ ويتعامل مع مخرجاته على أنها بيانات القاموس.

مثال على الإعدادات:

<Tabs>
  <Tab title="DDL">
    ```sql theme={null}
    SOURCE(EXECUTABLE(
        command 'cat /opt/dictionaries/os.tsv'
        format 'TabSeparated'
        implicit_key false
    ))
    ```
  </Tab>

  <Tab title="ملف التهيئة">
    ```xml theme={null}
    <source>
        <executable>
            <command>cat /opt/dictionaries/os.tsv</command>
            <format>TabSeparated</format>
            <implicit_key>false</implicit_key>
        </executable>
    </source>
    ```
  </Tab>
</Tabs>

حقول الإعداد:

| الإعداد                       | الوصف                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command`                     | المسار المطلق إلى الملف القابل للتنفيذ، أو اسم الملف (إذا كان دليل الأمر موجودًا في `PATH`).                                                                                                                                                                                                                                                                                                       |
| `format`                      | تنسيق الملف. جميع التنسيقات الموضحة في [Formats](/ar/reference/formats/index) مدعومة.                                                                                                                                                                                                                                                                                                              |
| `command_termination_timeout` | يجب أن يحتوي السكربت القابل للتنفيذ على حلقة رئيسية للقراءة والكتابة. بعد إتلاف القاموس، يُغلق الـ pipe، ويُمنح الملف القابل للتنفيذ مهلة قدرها `command_termination_timeout` ثانية قبل أن يرسل ClickHouse إشارة `SIGTERM` إلى العملية الفرعية. تُحدَّد القيمة بالثواني. القيمة الافتراضية هي `10`. اختياري.                                                                                       |
| `command_read_timeout`        | مهلة قراءة البيانات من `stdout` الخاص بالأمر، بالمللي ثانية. القيمة الافتراضية `10000`. اختياري.                                                                                                                                                                                                                                                                                                   |
| `command_write_timeout`       | مهلة كتابة البيانات إلى `stdin` الخاص بالأمر، بالمللي ثانية. القيمة الافتراضية `10000`. اختياري.                                                                                                                                                                                                                                                                                                   |
| `implicit_key`                | يمكن لملف المصدر القابل للتنفيذ أن يعيد القيم فقط، ويُحدَّد تطابقها مع المفاتيح المطلوبة ضمنيًا وفقًا لترتيب الصفوف في النتيجة. القيمة الافتراضية هي `false`.                                                                                                                                                                                                                                      |
| `execute_direct`              | إذا كانت `execute_direct` = `1`، فسيُبحث عن `command` داخل مجلد `user_scripts` المحدد بواسطة [user\_scripts\_path](/ar/reference/settings/server-settings/settings#user_scripts_path). ويمكن تحديد وسائط إضافية للسكربت باستخدام مسافة فاصلة بينها. مثال: `script_name arg1 arg2`. وإذا كانت `execute_direct` = `0`، فسيُمرَّر `command` كوسيط إلى `bin/sh -c`. القيمة الافتراضية هي `0`. اختياري. |
| `send_chunk_header`           | يتحكم في إرسال عدد الصفوف قبل إرسال chunk من البيانات إلى العملية. القيمة الافتراضية هي `false`. اختياري.                                                                                                                                                                                                                                                                                          |

لا يمكن تهيئة مصدر القاموس هذا إلا عبر تهيئة XML. وإنشاء القواميس ذات المصدر القابل للتنفيذ عبر DDL معطّل؛ وإلا فسيتمكن مستخدم DB من تنفيذ ملفات ثنائية عشوائية على عقدة ClickHouse.
