Saltar al contenido principal
El trabajo con archivos ejecutables depende de cómo se almacena el diccionario en memoria. Si el diccionario se almacena usando cache y complex_key_cache, ClickHouse solicita las claves necesarias enviando una solicitud al STDIN del archivo ejecutable. En caso contrario, ClickHouse inicia el archivo ejecutable y trata su salida como datos del diccionario. Ejemplo de configuración:
SOURCE(EXECUTABLE(
    command 'cat /opt/dictionaries/os.tsv'
    format 'TabSeparated'
    implicit_key false
))
Campos de configuración:
ConfiguraciónDescripción
commandLa ruta absoluta al archivo ejecutable, o el nombre del archivo (si el directorio del comando está en PATH).
formatEl formato del archivo. Se admiten todos los formatos descritos en Formats.
command_termination_timeoutEl script ejecutable debe contener un bucle principal de lectura y escritura. Una vez destruido el diccionario, se cierra la tubería y el archivo ejecutable tendrá command_termination_timeout segundos para detenerse antes de que ClickHouse envíe una señal SIGTERM al proceso hijo. Se especifica en segundos. El valor predeterminado es 10. Opcional.
command_read_timeoutTiempo de espera para leer datos de stdout del comando, en milisegundos. Valor predeterminado: 10000. Opcional.
command_write_timeoutTiempo de espera para escribir datos en stdin del comando, en milisegundos. Valor predeterminado: 10000. Opcional.
implicit_keyEl archivo fuente ejecutable puede devolver solo valores, y la correspondencia con las claves solicitadas se determina implícitamente por el orden de las filas en el resultado. El valor predeterminado es false.
execute_directSi execute_direct = 1, command se buscará dentro de la carpeta user_scripts especificada por user_scripts_path. Se pueden especificar argumentos adicionales del script separados por espacios en blanco. Ejemplo: script_name arg1 arg2. Si execute_direct = 0, command se pasa como argumento a bin/sh -c. El valor predeterminado es 0. Opcional.
send_chunk_headerControla si se debe enviar el recuento de filas antes de enviar un fragmento de datos al proceso. El valor predeterminado es false. Opcional.
Esa fuente de diccionario solo puede configurarse mediante configuración XML. La creación de diccionarios con fuente ejecutable mediante DDL está deshabilitada; de lo contrario, el usuario de la BD podría ejecutar binarios arbitrarios en el nodo de ClickHouse.
Última modificación el 10 de junio de 2026