fileCluster テーブル関数
指定されたパスに一致するファイルを、クラスター内の複数ノードにまたがって同時に処理できるようにします。イニシエータはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開し、ファイル読み取りタスクをワーカーノードに委譲します。各ワーカーノードは、処理すべき次のファイルを取得するためにイニシエータへ問い合わせを行い、すべてのタスクが完了する(すべてのファイルが読み込まれる)までこれを繰り返します。
注記
この関数が_正しく_動作するのは、最初に指定されたパスに一致するファイルの集合がすべてのノードで同一であり、かつそれらの内容がノード間で一貫している場合に限られます。
これらのファイルがノード間で異なる場合、戻り値は事前には決定できず、どの順序でワーカーノードがイニシエータへタスクを要求するかに依存します。
構文
引数
| 引数 | 説明 |
|---|---|
cluster_name | リモートおよびローカルサーバーのアドレスおよび接続パラメータの集合を構築するために使用するクラスター名。 |
path | user_files_path からのファイルへの相対パス。ファイルパスは グロブ もサポートします。 |
format | ファイルのフォーマット。型: String。 |
structure | 'UserID UInt64, Name String' 形式のテーブル構造。列名と型を決定します。型: String。 |
compression_method | 圧縮方式。サポートされる圧縮形式は gz、br、xz、zst、lz4、bz2 です。 |
返される値
指定されたフォーマットと構造を持ち、指定されたパスに一致するファイルからのデータを含むテーブルが返されます。
例
クラスタ名が my_cluster で、設定 user_files_path の値が次のとおりであると仮定します:
また、各クラスターノードの user_files_path 内に test1.csv と test2.csv というファイルが存在し、その内容は全ノードで同一であるとします。
たとえば、各クラスター ノードで次の 2 つのクエリを実行することで、これらのファイルを作成できます。
次に、fileCluster テーブル関数を使って test1.csv と test2.csv のデータ内容を読み込みます。
パスのグロブ
File テーブル関数でサポートされているすべてのパターンは、FileCluster でもサポートされています。