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