SELECT クエリとともに、クエリの処理に必要なデータをサーバーに送信できます。このデータは一時テーブルに格納され (“Temporary tables” セクションを参照) 、クエリ内で使用できます (たとえば IN 演算子で使用できます) 。
たとえば、重要なユーザー識別子を含むテキストファイルがある場合、そのリストでフィルタリングするクエリと一緒にサーバーへアップロードできます。
大量の外部データを使って複数のクエリを実行する必要がある場合は、この機能は使用しないでください。事前にデータを DB にアップロードしておくほうが適切です。
外部データは、コマンドラインクライアント (非対話型モード) または HTTP インターフェイスを使用してアップロードできます。
コマンドラインクライアントでは、次のフォーマットで parameters セクションを指定できます
UInt64,String。カラム名は _1, _2, … になります。
–structure– UserID UInt64, URL String 形式のテーブル構造です。カラム名と型を定義します。
‘file’ で指定されたファイルは、‘types’ または ‘structure’ で指定されたデータ型を使用して、‘format’ で指定されたフォーマットでパースされます。テーブルはサーバーにアップロードされ、そこで ‘name’ で指定した名前の一時テーブルとして利用できます。
例:
multipart/form-data フォーマットで渡されます。各テーブルは、それぞれ個別のファイルとして送信されます。テーブル名はファイル名から取得されます。query_string には、name_format、name_types、name_structure というパラメータが渡されます。ここで、name はこれらのパラメータに対応するテーブル名です。これらのパラメータの意味は、コマンドラインクライアントを使用する場合と同じです。
例: