メインコンテンツへスキップ
メインコンテンツへスキップ

実行ファイル Dictionary ソース

実行可能ファイルの扱い方は、Dictionary がメモリ上にどのように保存されているかによって異なります。Dictionary が cache および complex_key_cache を使って保存されている場合、ClickHouse は必要なキーを取得するために、実行可能ファイルの STDIN にリクエストを送信します。そうでない場合、ClickHouse は実行可能ファイルを起動し、その出力を Dictionary データとして扱います。

設定の例:

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

Setting のフィールド:

SettingDescription
command実行可能ファイルへの絶対パス、またはファイル名(コマンドのディレクトリが PATH に含まれている場合)。
formatファイル形式。Formats で説明されているすべてのフォーマットがサポートされます。
command_termination_timeout実行可能スクリプトにはメインの読み書きループを含める必要があります。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 arg2)。execute_direct = 0 の場合、commandbin/sh -c への引数として渡されます。デフォルト値は 0。省略可能。
send_chunk_header処理対象となるデータの chunk を送信する前に、行数を送信するかどうかを制御します。デフォルト値は false。省略可能。

この Dictionary のソースは XML 設定によってのみ構成できます。DDL による、実行可能ファイルをソースとする Dictionary の作成は無効化されています。そうでない場合、DB USER が ClickHouse ノード上で任意のバイナリを実行できてしまいます。