Перейти к основному содержимому
Перейти к основному содержимому

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

Работа с исполняемыми файлами зависит от того, как словарь хранится в памяти. Если словарь хранится с использованием cache и complex_key_cache, ClickHouse запрашивает необходимые ключи, отправляя запрос в STDIN исполняемого файла. В противном случае ClickHouse запускает исполняемый файл и рассматривает его вывод как данные словаря.

Пример настроек:

SOURCE(EXECUTABLE(
    command 'cat /opt/dictionaries/os.tsv'
    format 'TabSeparated'
    implicit_key false
))

Поля настроек:

SettingDescription
commandАбсолютный путь к исполняемому файлу или имя файла (если каталог, где расположена команда, находится в PATH).
formatФормат файла. Поддерживаются все форматы, описанные в Formats.
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. Дополнительные аргументы скрипта можно указать, используя пробел как разделитель. Пример: script_name arg1 arg2. Если execute_direct = 0, command передаётся как аргумент для bin/sh -c. Значение по умолчанию — 0. Необязательный параметр.
send_chunk_headerОпределяет, нужно ли отправлять количество строк перед отправкой фрагмента данных на обработку. Значение по умолчанию — false. Необязательный параметр.

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