メインコンテンツへスキップ
実行可能ファイルの動作は、Dictionary がメモリ内にどのように格納されるかによって異なります。Dictionary が cache および complex_key_cache を使用して格納されている場合、ClickHouse は実行可能ファイルの STDIN にリクエストを送信して必要なキーを要求します。それ以外の場合、ClickHouse は実行可能ファイルを起動し、その出力を Dictionary データとして扱います。 設定例:
SOURCE(EXECUTABLE(
    command 'cat /opt/dictionaries/os.tsv'
    format 'TabSeparated'
    implicit_key false
))
設定フィールド:
設定説明
command実行可能ファイルへの絶対パス、またはファイル名 (コマンドのディレクトリが PATH に含まれている場合) 。
formatファイルのフォーマットです。フォーマット で説明されているすべてのフォーマットをサポートしています。
command_termination_timeout実行可能スクリプトには、メインの read-write ループが含まれている必要があります。Dictionary が破棄されるとパイプが閉じられ、ClickHouse が子プロセスに SIGTERM シグナルを送信するまでの command_termination_timeout 秒以内に、実行可能ファイルは終了する必要があります。秒単位で指定します。デフォルト値は 10 です。省略可能です。
command_read_timeoutコマンドの stdout からデータを読み取る際のタイムアウト (ミリ秒) です。デフォルト値は 10000 です。省略可能です。
command_write_timeoutコマンドの stdin にデータを書き込む際のタイムアウト (ミリ秒) です。デフォルト値は 10000 です。省略可能です。
implicit_key実行可能ファイルのログソースは値のみを返すことができ、要求されたキーとの対応は、結果内の行の順序によって暗黙的に決まります。デフォルト値は false です。
execute_directexecute_direct = 1 の場合、commanduser_scripts_path で指定された user_scripts フォルダー内で検索されます。追加のスクリプト引数は空白区切りで指定できます。例: script_name arg1 arg2execute_direct = 0 の場合、commandbin/sh -c の引数として渡されます。デフォルト値は 0 です。省略可能です。
send_chunk_headerデータの chunk をプロセスに送信する前に、行数を送信するかどうかを制御します。デフォルト値は false です。省略可能です。
この Dictionary ソースは、XML 設定でのみ構成できます。実行可能ログソースを使った Dictionary の DDL による作成は無効化されています。そうしないと、DB ユーザーが ClickHouse ノード上で任意のバイナリを実行できてしまうためです。
最終更新日 2026年6月10日