> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> クラスター内の複数のノードで、指定したパスに一致するファイルを同時に処理できるようにします。イニシエーターはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開して、ファイル読み取りタスクをワーカーノードに割り当てます。各ワーカーノードは、次に処理するファイルをイニシエーターに問い合わせ、すべてのタスクが完了する（つまり、すべてのファイルが読み込まれる）までこれを繰り返します。

# fileCluster

クラスター内の複数のノードで、指定したパスに一致するファイルを同時に処理できるようにします。イニシエーターはワーカーノードへの接続を確立し、ファイルパス内のグロブを展開して、ファイル読み取りタスクをワーカーノードに割り当てます。各ワーカーノードは、次に処理するファイルをイニシエーターに問い合わせ、すべてのタスクが完了する (つまり、すべてのファイルが読み込まれる) までこれを繰り返します。

<Note>
  この関数が*正しく*動作するのは、最初に指定したパスに一致するファイルの集合がすべてのノードで同一であり、それらの内容がノード間で一貫している場合に限られます。
  これらのファイルがノードごとに異なる場合、戻り値は事前には決定できず、ワーカーノードがイニシエーターにタスクを要求する順序に依存します。
</Note>

## 構文

```sql theme={null}
fileCluster(cluster_name, path[, format, structure, compression_method])
```

## 引数

| Argument | Description |
| - | - |
| `cluster_name` | リモートサーバーおよびローカルサーバーへのアドレスのセットと接続パラメーターを構築する際に使用するクラスター名。 |
| `path` | [user\_files\_path](/ja/reference/settings/server-settings/settings/user#user_files_path) からのファイルへの相対パスです。ファイルパスでは [グロブ](#globs-in-path) もサポートされます。 |
| `format` | ファイルの [フォーマット](/ja/reference/formats/index)。型: [String](/ja/reference/data-types/string)。 |
| `structure` | `'UserID UInt64, Name String'` 形式のテーブル構造です。カラム名と型を決定します。型: [String](/ja/reference/data-types/string)。 |
| `compression_method` | 圧縮方式。サポートされている値は `none` (圧縮なし) 、`gzip/gz`、`deflate`、`brotli/br`、`lzma/xz`、`zstd/zst`、`lz4`、`bz2`、`snappy` です。`snappy` の場合、ワイヤ形式は [snappy\_mode](/ja/reference/settings/session-settings/other#snappy_mode) 設定によって選択されます (デフォルトは `basic`) 。 |

## 戻り値

指定されたフォーマットとテーブル構造を持ち、指定されたパスに一致するファイル内のデータを含むテーブル。

**例**

`my_cluster` という名前のクラスターがあり、設定 `user_files_path` の値が次のとおりであるとします。

```bash theme={null}
$ grep user_files_path /etc/clickhouse-server/config.xml
    <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
```

また、クラスター内の各ノードの `user_files_path` に `test1.csv` と `test2.csv` があり、それらの内容がすべてのノードで同一である場合:

```bash theme={null}
$ cat /var/lib/clickhouse/user_files/test1.csv
    1,"file1"
    11,"file11"

$ cat /var/lib/clickhouse/user_files/test2.csv
    2,"file2"
    22,"file22"
```

たとえば、各クラスター ノードで次の 2 つのクエリを実行すると、これらのファイルを作成できます。

```sql theme={null}
INSERT INTO TABLE FUNCTION file('file1.csv', 'CSV', 'i UInt32, s String') VALUES (1,'file1'), (11,'file11');
INSERT INTO TABLE FUNCTION file('file2.csv', 'CSV', 'i UInt32, s String') VALUES (2,'file2'), (22,'file22');
```

次に、`fileCluster` テーブル関数を使用して `test1.csv` と `test2.csv` のデータ内容を読み込みます。

```sql theme={null}
SELECT * FROM fileCluster('my_cluster', 'file{1,2}.csv', 'CSV', 'i UInt32, s String') ORDER BY i, s
```

```response theme={null}
┌──i─┬─s──────┐
│  1 │ file1  │
│ 11 │ file11 │
└────┴────────┘
┌──i─┬─s──────┐
│  2 │ file2  │
│ 22 │ file22 │
└────┴────────┘
```

## Path内のグロブ

[File](/ja/reference/functions/table-functions/file#globs-in-path) テーブル関数でサポートされているすべてのパターンは、FileClusterでもサポートされています。

## 関連

* [File テーブル関数](/ja/reference/functions/table-functions/file)
