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

# Fonte de dicionário de arquivo executável

> Configure um arquivo executável como fonte de dicionário no ClickHouse.

O uso de arquivos executáveis depende de [como o dicionário é armazenado na memória](/pt-BR/reference/statements/create/dictionary/layouts/overview). Se o dicionário for armazenado com `cache` e `complex_key_cache`, o ClickHouse solicita as chaves necessárias enviando uma requisição para a STDIN do arquivo executável. Caso contrário, o ClickHouse inicia o arquivo executável e trata a saída dele como dados do dicionário.

Exemplo de configurações:

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

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

Campos de configuração:

| Setting                       | Description                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command`                     | O caminho absoluto para o arquivo executável, ou o nome do arquivo (se o diretório do comando estiver no `PATH`).                                                                                                                                                                                                                                                                                                                       |
| `format`                      | O formato do arquivo. Todos os formatos descritos em [Formatos](/pt-BR/reference/formats) são compatíveis.                                                                                                                                                                                                                                                                                                                              |
| `command_termination_timeout` | O script executável deve conter um loop principal de leitura e escrita. Depois que o dicionário é destruído, o pipe é fechado, e o arquivo executável terá `command_termination_timeout` segundos para encerrar antes que o ClickHouse envie um sinal SIGTERM ao processo filho. Especificado em segundos. O valor padrão é `10`. Opcional.                                                                                             |
| `command_read_timeout`        | Tempo limite para ler dados do stdout do comando, em milissegundos. Valor padrão: `10000`. Opcional.                                                                                                                                                                                                                                                                                                                                    |
| `command_write_timeout`       | Tempo limite para gravar dados no stdin do comando, em milissegundos. Valor padrão: `10000`. Opcional.                                                                                                                                                                                                                                                                                                                                  |
| `implicit_key`                | A fonte executável pode retornar apenas valores, e a correspondência com as chaves solicitadas é determinada implicitamente pela ordem das linhas no resultado. O valor padrão é `false`.                                                                                                                                                                                                                                               |
| `execute_direct`              | Se `execute_direct` = `1`, `command` será procurado no diretório `user_scripts` especificado por [user\_scripts\_path](/pt-BR/reference/settings/server-settings/settings#user_scripts_path). Argumentos adicionais do script podem ser especificados separados por espaço em branco. Exemplo: `script_name arg1 arg2`. Se `execute_direct` = `0`, `command` é passado como argumento para `bin/sh -c`. O valor padrão é `0`. Opcional. |
| `send_chunk_header`           | Controla se a contagem de linhas deve ser enviada antes de enviar um fragmento de dados ao processo. O valor padrão é `false`. Opcional.                                                                                                                                                                                                                                                                                                |

Essa fonte de dicionário pode ser configurada apenas por meio de configuração XML. A criação de dicionários com fonte executável via DDL é desabilitada; caso contrário, o usuário do banco de dados poderia executar binários arbitrários no nó do ClickHouse.
