> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 表函数文档

# 表函数

表函数是用于构建表的函数。

| 页面                                                                                           | 说明                                                                                                                                     |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| [azureBlobStorage](/zh/reference/functions/table-functions/azureBlobStorage)                 | 提供类表接口，用于在 Azure Blob 存储中查询/插入文件。类似于 s3 函数。                                                                                            |
| [azureBlobStorageCluster](/zh/reference/functions/table-functions/azureBlobStorageCluster)   | 允许在指定集群中通过多个节点并行处理 Azure Blob 存储中的文件。                                                                                                  |
| [clusterAllReplicas](/zh/reference/functions/table-functions/cluster)                        | 允许访问集群的所有分片 (在 `remote_servers` 部分中配置) ，无需创建 Distributed 表。                                                                            |
| [deltaLake](/zh/reference/functions/table-functions/deltalake)                               | 为 Amazon S3 中的 Delta Lake 表提供只读的类表接口。                                                                                                  |
| [deltaLakeCluster](/zh/reference/functions/table-functions/deltalakeCluster)                 | 这是 deltaLake 表函数的扩展。                                                                                                                   |
| [dictionary](/zh/reference/functions/table-functions/dictionary)                             | 将字典数据显示为 ClickHouse 表。其工作方式与 Dictionary engine 相同。                                                                                     |
| [executable](/zh/reference/functions/table-functions/executable)                             | `executable` 表函数根据用户自定义函数 (UDF) 的输出创建表，该函数由你在脚本中定义，并将行输出到 **stdout**。                                                                  |
| [file](/zh/reference/functions/table-functions/file)                                         | 一种表引擎，提供类似 S3 表函数的类表接口，用于从文件中 `SELECT` 和向文件中 `INSERT`。处理本地文件时使用 `file()`，处理 S3、GCS 或 MinIO 等对象存储中的 bucket 时使用 `s3()`。                  |
| [fileCluster](/zh/reference/functions/table-functions/fileCluster)                           | 支持在集群内多个节点上同时处理与指定路径匹配的文件。initiator 会与工作节点建立连接，展开文件路径中的通配符，并将文件读取任务分派给工作节点。每个工作节点都会向 initiator 请求下一个要处理的文件，如此反复，直到所有任务完成 (即所有文件都已读取) 。 |
| [filesystem](/zh/reference/functions/table-functions/filesystem)                             | 提供对文件系统的访问，用于列出文件并返回其元数据和内容。                                                                                                           |
| [format](/zh/reference/functions/table-functions/format)                                     | 根据指定的输入 format 从参数中解析数据。如果未指定 structure 参数，则会从数据中提取。                                                                                   |
| [gcs](/zh/reference/functions/table-functions/gcs)                                           | 提供类表接口，用于从 Google Cloud Storage 中 `SELECT` 和 `INSERT` 数据。需要 `Storage Object User` IAM role。                                            |
| [fuzzQuery](/zh/reference/functions/table-functions/fuzzQuery)                               | 对给定的查询字符串进行随机扰动。                                                                                                                       |
| [fuzzJSON](/zh/reference/functions/table-functions/fuzzJSON)                                 | 对 JSON 字符串进行随机扰动。                                                                                                                      |
| [generateRandom](/zh/reference/functions/table-functions/generate)                           | 根据给定的 schema 生成随机数据。可用这些数据填充测试表。并非所有类型都受支持。                                                                                            |
| [mergeTreeTextIndex](/zh/reference/functions/table-functions/mergeTreeTextIndex)             | 表示 MergeTree 表中文本索引的字典。可用于内部信息查看。                                                                                                      |
| [mergeTreeProjection](/zh/reference/functions/table-functions/mergeTreeProjection)           | 表示 MergeTree 表中某个 projection 的内容。可用于内部信息查看。                                                                                            |
| [mergeTreeIndex](/zh/reference/functions/table-functions/mergeTreeIndex)                     | 表示 MergeTree 表的索引和 marks 文件的内容。可用于内部信息查看。                                                                                              |
| [hdfs](/zh/reference/functions/table-functions/hdfs)                                         | 从 HDFS 中的文件创建表。此表函数类似于 url 和 file 表函数。                                                                                                 |
| [hdfsCluster](/zh/reference/functions/table-functions/hdfsCluster)                           | 允许在指定集群中通过多个节点并行处理 HDFS 中的文件。                                                                                                          |
| [hudi](/zh/reference/functions/table-functions/hudi)                                         | 为 Amazon S3 中的 Apache Hudi 表提供只读的类表接口。                                                                                                 |
| [ytsaurus](/zh/reference/functions/table-functions/ytsaurus)                                 | 该表函数允许从 YTsaurus 集群读取数据。                                                                                                               |
| [hudiCluster Table Function](/zh/reference/functions/table-functions/hudiCluster)            | hudi 表函数的扩展。允许在指定集群中通过多个节点并行处理 Amazon S3 中 Apache Hudi 表的文件。                                                                           |
| [iceberg](/zh/reference/functions/table-functions/iceberg)                                   | 为存储在 Amazon S3、Azure、HDFS 或本地的 Apache Iceberg 表提供只读的类表接口。                                                                              |
| [paimon](/zh/reference/functions/table-functions/paimon)                                     | 为存储在 Amazon S3、Azure、HDFS 或本地的 Apache Paimon 表提供只读的类表接口。                                                                               |
| [icebergCluster](/zh/reference/functions/table-functions/icebergCluster)                     | iceberg 表函数的扩展，允许在指定集群中通过多个节点并行处理 Apache Iceberg 的文件。                                                                                  |
| [paimonCluster](/zh/reference/functions/table-functions/paimonCluster)                       | paimon 表函数的扩展，允许在指定集群中通过多个节点并行处理 Apache Paimon 的文件。                                                                                    |
| [input](/zh/reference/functions/table-functions/input)                                       | 该表函数可高效地将发送到 server 且具有给定结构的数据转换后插入到具有另一种结构的表中。                                                                                        |
| [jdbc](/zh/reference/functions/table-functions/jdbc)                                         | 返回一个通过 JDBC 驱动连接的表。                                                                                                                    |
| [merge](/zh/reference/functions/table-functions/merge)                                       | 创建一个临时 Merge 表。其结构将通过对底层表的列求并集并推导公共类型得出。                                                                                               |
| [mongodb](/zh/reference/functions/table-functions/mongodb)                                   | 允许对存储在远程 MongoDB 服务器上的数据执行 `SELECT` 查询。                                                                                                |
| [mysql](/zh/reference/functions/table-functions/mysql)                                       | 允许对存储在远程 MySQL 服务器上的数据执行 `SELECT` 和 `INSERT` 查询。                                                                                       |
| [null](/zh/reference/functions/table-functions/null)                                         | 使用 Null table engine 创建具有指定结构的临时表。该函数便于编写测试和进行演示。                                                                                      |
| [timeSeriesMetrics](/zh/reference/functions/table-functions/timeSeriesMetrics)               | timeSeriesMetrics 返回表 `db_name.time_series_table` 使用的 metrics 表，该表的表引擎为 TimeSeries。                                                    |
| [timeSeriesSelector](/zh/reference/functions/table-functions/timeSeriesSelector)             | 从 TimeSeries 表中读取由选择器过滤且时间戳位于指定时间间隔内的时间序列。                                                                                             |
| [timeSeriesTags](/zh/reference/functions/table-functions/timeSeriesTags)                     | timeSeriesTags 表函数返回表 `db_name.time_series_table` 使用的 tags 表，该表的表引擎为 TimeSeries。                                                       |
| [prometheusQueryRange](/zh/reference/functions/table-functions/prometheusQueryRange)         | 使用 TimeSeries 表中的数据对 Prometheus 查询进行求值。                                                                                                |
| [zeros](/zh/reference/functions/table-functions/zeros)                                       | 用于测试，是生成大量行的最快方法。类似于 `system.zeros` 和 `system.zeros_mt` 系统表。                                                                           |
| [primes](/zh/reference/functions/table-functions/primes)                                     | 返回一个仅包含单个 `prime` 列的表，该列包含质数。                                                                                                          |
| [timeSeriesData](/zh/reference/functions/table-functions/timeSeriesData)                     | timeSeriesData 返回表 `db_name.time_series_table` 使用的数据表，该表的表引擎为 TimeSeries。                                                              |
| [numbers](/zh/reference/functions/table-functions/numbers)                                   | 返回一个仅包含单个 `number` 列的表，该列包含一系列整数。                                                                                                      |
| [prometheusQuery](/zh/reference/functions/table-functions/prometheusQuery)                   | 使用 TimeSeries 表中的数据对 Prometheus 查询进行求值。                                                                                                |
| [generate\_series (generateSeries)](/zh/reference/functions/table-functions/generate_series) | 返回一个仅包含 `generate_series` 列 (UInt64) 的表，该列包含从 start 到 stop (含两端) 的整数。                                                                  |
| [odbc](/zh/reference/functions/table-functions/odbc)                                         | 返回通过 ODBC 连接的表。                                                                                                                        |
| [postgresql](/zh/reference/functions/table-functions/postgresql)                             | 允许对存储在远程 PostgreSQL 服务器上的数据执行 `SELECT` 和 `INSERT` 查询。                                                                                  |
| [redis](/zh/reference/functions/table-functions/redis)                                       | 此表函数允许将 ClickHouse 与 Redis 集成。                                                                                                         |
| [remote, remoteSecure](/zh/reference/functions/table-functions/remote)                       | 表函数 `remote` 允许动态访问远程服务器，即无需创建分布式表。表函数 `remoteSecure` 与 `remote` 类似，但通过安全连接访问。                                                         |
| [s3 Table Function](/zh/reference/functions/table-functions/s3)                              | 提供表格式接口，用于在 Amazon S3 和 Google Cloud Storage 中查询/插入文件。该表函数类似于 hdfs 函数，但提供了 S3 特有的功能。                                                   |
| [s3Cluster](/zh/reference/functions/table-functions/s3Cluster)                               | 这是对 s3 表函数的扩展，允许指定 cluster 中的多个节点并行处理来自 Amazon S3 和 Google Cloud Storage 的文件。                                                          |
| [sqlite](/zh/reference/functions/table-functions/sqlite)                                     | 允许对存储在 SQLite 数据库中的数据执行查询。                                                                                                             |
| [arrowFlight](/zh/reference/functions/table-functions/arrowflight)                           | 允许对通过 Apache Arrow Flight 服务器公开的数据执行查询。                                                                                                |
| [url](/zh/reference/functions/table-functions/url)                                           | 使用给定的 `format` 和 `structure` 从 `URL` 创建表。                                                                                              |
| [urlCluster](/zh/reference/functions/table-functions/urlCluster)                             | 允许指定 cluster 中的多个节点并行处理来自 URL 的文件。                                                                                                     |
| [view](/zh/reference/functions/table-functions/view)                                         | 将子查询转换为表。该函数实现视图。                                                                                                                      |
| [values](/zh/reference/functions/table-functions/values)                                     | 创建一个临时存储，并用值填充各列。                                                                                                                      |
| [loop](/zh/reference/functions/table-functions/loop)                                         | ClickHouse 中的 loop 表函数用于以无限循环方式返回查询结果。                                                                                                 |

<div id="usage">
  ## 用法
</div>

表函数可用于 `SELECT` 查询的 [`FROM`](/zh/reference/statements/select/from)
子句中。例如，你可以使用 `file` 表函数从本地
计算机上的文件中 `SELECT` 数据。

```bash title="Query" theme={null}
echo "1, 2, 3" > example.csv
```

```text title="Response" theme={null}
./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│  1 │  2 │  3 │
└────┴────┴────┘
```

你也可以使用表函数创建仅在当前查询中可用的临时表。例如：

```sql title="Query" theme={null}
SELECT * FROM generateSeries(1,5);
```

```response title="Response" theme={null}
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
```

查询结束后，该表会被删除。

可以使用表函数创建表，语法如下：

```sql title="Query" theme={null}
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
```

例如：

```sql title="Query" theme={null}
CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;
```

```response title="Response" theme={null}
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
```

最后，表函数也可用于将数据 `INSERT` 到表中。例如，
我们可以再次使用 `file` 表函数，将前一个示例中创建的表的内容
写入磁盘上的文件：

```sql title="Query" theme={null}
INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;
```

```bash title="Query" theme={null}
cat numbers.csv
1
2
3
4
5
```

<Note>
  如果 [allow\_ddl](/zh/reference/settings/session-settings#allow_ddl) 设置已禁用，则无法使用表函数。
</Note>
