メインコンテンツへスキップ
指定したクラスター内の多数のノードから、HDFS 内のファイルを並列に処理できます。イニシエーターでは、クラスター内のすべてのノードとの 接続 を確立し、HDFS のファイルパス内のアスタリスクを展開して、各ファイルを動的に割り当てます。ワーカーノードでは、次に処理する task をイニシエーターに問い合わせて処理します。これを、すべての tasks が完了するまで繰り返します。

構文

hdfsCluster(cluster_name, URI, format, structure)

引数

引数説明
cluster_nameリモートおよびローカルのサーバーのアドレスセットと接続パラメーターの構築に使用されるクラスター名。
URI1 つのファイル、または複数のファイルを指す URI。読み取り専用モードでは、次のワイルドカードをサポートします: *, **, ?, {'abc','def'}{N..M}。ここで、NM は数値、abcdef は文字列です。詳細は パス内のワイルドカード を参照してください。
formatファイルの フォーマット
structureテーブルの構造。フォーマットは 'column1_name column1_type, column2_name column2_type, ...' です。

戻り値

指定されたファイル内のデータを読み取るための、指定された構造のテーブル。

  1. 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’
  1. これらのファイルの行数をクエリします。
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
  1. これら2つのディレクトリ内にあるすべてのファイルの行数をクエリします:
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
ファイル一覧に先頭に 0 が付いた数値範囲が含まれる場合は、各桁ごとに波かっこを使った構文を使用するか、? を使用してください。
最終更新日 2026年6月10日