hdfsCluster テーブル関数
指定したクラスター内の複数ノードから、HDFS 上のファイルを並列に処理できます。イニシエーターでは、クラスター内のすべてのノードへの接続を確立し、HDFS のファイルパスに含まれるアスタリスクを展開して、各ファイルを動的に振り分けます。ワーカーノードでは、処理すべき次のタスクをイニシエーターに問い合わせ、そのタスクを処理します。これは、すべてのタスクが完了するまで繰り返されます。
構文
引数
| 引数 | 説明 |
|---|---|
cluster_name | リモートおよびローカルサーバーへのアドレスと接続パラメータの集合を構成するために使用されるクラスター名。 |
URI | 1 つまたは複数のファイルを指す URI。読み取り専用モードで次のワイルドカードをサポートします: *, **, ?, {'abc','def'} および {N..M}。ここで N, M は数値、abc, def は文字列です。詳細は Wildcards In Path を参照してください。 |
format | ファイルのフォーマット。 |
structure | テーブルの構造。形式: 'column1_name column1_type, column2_name column2_type, ...'。 |
返される値
指定した構造を持ち、指定したファイル内のデータを読み取るためのテーブル。
例
cluster_simpleという名前の ClickHouse クラスターと、HDFS 上に次の URI を持つ複数のファイルがあるとします:
- 'hdfs://hdfs1:9000/some_dir/some_file_1'
- 'hdfs://hdfs1:9000/some_dir/some_file_2'
- 'hdfs://hdfs1:9000/some_dir/some_file_3'
- 'hdfs://hdfs1:9000/another_dir/some_file_1'
- 'hdfs://hdfs1:9000/another_dir/some_file_2'
- 'hdfs://hdfs1:9000/another_dir/some_file_3'
- これらのファイル内の行数をクエリで取得します:
- これら 2 つのディレクトリ内にあるすべてのファイルの行数をクエリします。
注記
ファイル一覧に先頭ゼロ付きの数値範囲が含まれている場合は、各桁を個別に波かっこで囲む構文を用いるか、? を使用してください。