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

# Источник словаря «Executable File»

> Настройка исполняемого файла в качестве источника словаря в ClickHouse.

Работа с исполняемыми файлами зависит от [способа хранения словаря в памяти](/ru/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](/ru/reference/formats).                                                                                                                                                                                                                                                                                                                                   |
| `command_termination_timeout` | Исполняемый скрипт должен содержать основной цикл с возможностью чтения и записи. После уничтожения словаря канал закрывается, и у исполняемого файла будет `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](/ru/reference/settings/server-settings/settings#user_scripts_path). Дополнительные аргументы скрипта можно указать, разделяя их пробелами. Пример: `script_name arg1 arg2`. Если `execute_direct` = `0`, `command` передаётся как аргумент для `bin/sh -c`. Значение по умолчанию — `0`. Необязательно. |
| `send_chunk_header`           | Определяет, нужно ли отправлять количество строк перед передачей фрагмента данных процессу. Значение по умолчанию — `false`. Необязательно.                                                                                                                                                                                                                                                                                       |

Этот источник словаря можно настроить только через XML-конфигурацию. Создание словарей с исполняемым источником через DDL отключено, поскольку в противном случае пользователь БД мог бы запускать произвольные бинарные файлы на узле ClickHouse.
