> ## 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.

# Source de dictionnaire de type fichier exécutable

> Configurer un fichier exécutable comme source de dictionnaire dans ClickHouse.

L’utilisation de fichiers exécutables dépend de [la manière dont le dictionnaire est stocké en mémoire](/fr/reference/statements/create/dictionary/layouts/overview). Si le dictionnaire est stocké avec `cache` et `complex_key_cache`, ClickHouse demande les clés nécessaires en envoyant une requête sur le STDIN du fichier exécutable. Sinon, ClickHouse lance le fichier exécutable et traite sa sortie comme des données de dictionnaire.

Exemple de paramètres :

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

  <Tab title="Fichier de configuration">
    ```xml theme={null}
    <source>
        <executable>
            <command>cat /opt/dictionaries/os.tsv</command>
            <format>TabSeparated</format>
            <implicit_key>false</implicit_key>
        </executable>
    </source>
    ```
  </Tab>
</Tabs>

Champs de paramétrage :

| Paramètre                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command`                     | Le chemin absolu vers le fichier exécutable, ou le nom du fichier (si le répertoire de la commande figure dans le `PATH`).                                                                                                                                                                                                                                                                                                                          |
| `format`                      | Le format du fichier. Tous les formats décrits dans [Formats](/fr/reference/formats/index) sont pris en charge.                                                                                                                                                                                                                                                                                                                                     |
| `command_termination_timeout` | Le script exécutable doit contenir une boucle principale en lecture-écriture. Une fois le dictionnaire détruit, le pipe est fermé et le fichier exécutable dispose de `command_termination_timeout` secondes pour s’arrêter avant que ClickHouse n’envoie un signal SIGTERM au processus enfant. Exprimé en secondes. La valeur par défaut est `10`. Facultatif.                                                                                    |
| `command_read_timeout`        | Délai d’attente pour la lecture des données depuis le stdout de la commande, en millisecondes. Valeur par défaut : `10000`. Facultatif.                                                                                                                                                                                                                                                                                                             |
| `command_write_timeout`       | Délai d’attente pour l’écriture des données vers le stdin de la commande, en millisecondes. Valeur par défaut : `10000`. Facultatif.                                                                                                                                                                                                                                                                                                                |
| `implicit_key`                | Le fichier source exécutable peut ne renvoyer que les valeurs, la correspondance avec les clés demandées étant alors déterminée implicitement par l’ordre des lignes dans le résultat. La valeur par défaut est `false`.                                                                                                                                                                                                                            |
| `execute_direct`              | Si `execute_direct` = `1`, `command` est recherché dans le dossier user\_scripts spécifié par [user\_scripts\_path](/fr/reference/settings/server-settings/settings#user_scripts_path). Des arguments de script supplémentaires peuvent être indiqués en les séparant par des espaces. Exemple : `script_name arg1 arg2`. Si `execute_direct` = `0`, `command` est transmis comme argument à `bin/sh -c`. La valeur par défaut est `0`. Facultatif. |
| `send_chunk_header`           | Indique s’il faut envoyer le nombre de lignes avant d’envoyer un fragment de données au processus. La valeur par défaut est `false`. Facultatif.                                                                                                                                                                                                                                                                                                    |

Cette source de dictionnaire ne peut être configurée que via une configuration XML. La création de dictionnaires avec une source exécutable via DDL est désactivée ; sinon, l’utilisateur de la DB pourrait exécuter des binaires arbitraires sur le nœud ClickHouse.
