fileCluster テーブル関数
指定したパスに一致するファイルをクラスタ内の複数のノードで同時に処理します。イニシエーターはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開し、ファイル読み取りタスクをワーカーノードに委任します。各ワーカーノードは次に処理するファイルをイニシエーターにクエリし、すべてのタスクが完了するまで繰り返します(すべてのファイルが読み取られます)。
注記
この関数は、初めに指定したパスに一致するファイルのセットがすべてのノードで同一であり、異なるノード間でその内容が一致している場合にのみ 正しく 動作します。
これらのファイルがノード間で異なる場合、返される値は事前に決定できず、ワーカーノードがイニシエーターからタスクを要求する順序に依存します。
構文
引数
cluster_name
— リモートおよびローカルサーバーへのアドレスと接続パラメータを構築するために使用されるクラスタの名前。path
— user_files_path からのファイルへの相対パス。ファイルのパスはグロブにも対応しています。format
— ファイルのフォーマット。タイプ: 文字列。structure
—'UserID UInt64, Name 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 でもサポートされています。
参照