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 にもサポートされています。