跳至主要内容
跳至主要内容

表函数

表格函数是构造表格的方法。

页面描述
azureBlobStorage提供了一种类似 s3 函数的类表接口,用于选择/插入 Azure Blob Storage 中的文件。
azureBlobStorageCluster允许在指定的集群中的多个节点上并行处理来自 Azure Blob 存储的文件。
clusterAllReplicas允许访问集群的所有分片(在 remote_servers 部分中配置),而无需创建 Distributed 表。
deltaLake提供了一个类表接口,用于只读访问 Amazon S3 中的 Delta Lake 表。
deltaLakeCluster这是 deltaLake 表格函数的扩展。
dictionary将字典数据作为 ClickHouse 表格显示。工作方式与 Dictionary 引擎相同。
executableexecutable 表格函数基于用户定义的函数 (UDF) 的输出创建表格,您可以在将行输出到 stdout 的脚本中定义该 UDF。
file一个表格引擎,它提供了一个类表接口,用于从文件中 SELECT 和 INSERT 数据,类似于 s3 表格函数。使用 file() 处理本地文件,使用 s3() 处理对象存储(如 S3、GCS 或 MinIO)中的存储桶。
fileCluster能够在集群内的多个节点上同时处理与指定路径匹配的文件。发起者建立到工作节点的连接,扩展文件路径中的通配符,并将文件读取任务委托给工作节点。每个工作节点都在查询发起者以获取下一个要处理的文件,重复直到所有任务完成(所有文件都已读取)。
format根据指定的输入格式解析数据。如果未指定 structure 参数,则从数据中提取。
gcs提供了一个类表接口,用于从 Google Cloud Storage SELECTINSERT 数据。需要 Storage Object User IAM 角色。
fuzzJSON以随机变化扰动 JSON 字符串。
fuzzQuery以随机变化扰动给定的查询字符串。
generateRandom生成具有给定模式的随机数据。允许使用该数据填充测试表。并非所有类型都受支持。
mergeTreeIndex表示 MergeTree 表的索引和标记文件的内容。可用于内省。
mergeTreeProjection表示 MergeTree 表中某些投影的内容。可用于内省。
hdfs从 HDFS 中的文件创建表格。此表格函数类似于 url 和 file 表格函数。
hdfsCluster允许从 HDFS 中的多个节点并行处理文件,在指定的集群中。
hudi提供了一个类表接口,用于只读访问 Amazon S3 中的 Apache Hudi 表。
ytsaurus该表格函数允许从 YTsaurus 集群读取数据。
hudiCluster 表格函数hudi 表格函数的扩展。允许在指定的集群中的多个节点上并行处理来自 Amazon S3 中 Apache Hudi 表的文件。
iceberg提供了一个类表接口,用于只读访问 Amazon S3、Azure、HDFS 或本地存储中的 Apache Iceberg 表。
paimon提供了一个类表接口,用于只读访问 Amazon S3、Azure、HDFS 或本地存储中的 Apache Paimon 表。
icebergClustericeberg 表格函数的扩展,允许从指定的集群中的多个节点并行处理 Apache Iceberg。
paimonClusterpaimon 表格函数的扩展,允许从指定的集群中的多个节点并行处理 Apache Paimon。
input表格函数,允许有效地转换和插入发送到服务器的具有给定结构的数据到具有另一个结构的表格。
jdbc返回通过 JDBC 驱动程序连接的表格。
merge创建临时的 Merge 表。结构将通过使用其列的并集和派生公共类型从底层表格派生。
mongodb允许对存储在远程 MongoDB 服务器上的数据执行 SELECT 查询。
mysql允许对存储在远程 MySQL 服务器上的数据执行 SELECTINSERT 查询。
null创建具有 Null 表引擎的指定结构的临时表。该函数用于测试编写和演示的便利性。
numbers返回一个包含单个 number 列的表格,其中包含一系列整数。
primes返回一个包含单个 prime 列的表格,其中包含质数。
prometheusQuery使用 TimeSeries 表中的数据评估 prometheus 查询。
prometheusQueryRange使用 TimeSeries 表中的数据评估 prometheus 查询。
timeSeriesDatatimeSeriesData 返回由表格引擎为 TimeSeries 的表 db_name.time_series_table 使用的数据表。
timeSeriesMetricstimeSeriesMetrics 返回由表格引擎为 TimeSeries 的表 db_name.time_series_table 使用的指标表。
timeSeriesSelector读取 TimeSeries 表中的时间序列,按选择器过滤,并在指定的间隔内进行时间戳记录。
timeSeriesTagstimeSeriesTags 表格函数返回由表格引擎为 TimeSeries 的表 db_name.time_series_table 使用的标签表。
zeros用于测试目的,作为生成许多行的最快方法。类似于 system.zerossystem.zeros_mt 系统表。
generate_series (generateSeries)返回一个包含单个 generate_series 列(UInt64)的表格,其中包含从开始到结束(包括结束)的整数。
odbc返回通过 ODBC 连接的表格。
postgresql允许对存储在远程 PostgreSQL 服务器上的数据执行 SELECTINSERT 查询。
redis此表格函数允许 ClickHouse 与 Redis 集成。
remote, remoteSecure表格函数 remote 允许在不创建分布式表格的情况下随时访问远程服务器。表格函数 remoteSecureremote 相同,但通过安全连接。
s3 表格函数提供了一种类表接口,用于选择/插入 Amazon S3 和 Google Cloud Storage 中的文件。此表格函数类似于 hdfs 函数,但提供了 S3 特定的功能。
s3Clusters3 表格函数的扩展,允许在指定的集群中的多个节点上并行处理来自 Amazon S3 和 Google Cloud Storage 的文件。
sqlite允许对存储在 SQLite 数据库中的数据执行查询。
arrowFlight允许对通过 Apache Arrow Flight 服务器公开的数据执行查询。
url从具有给定 formatstructureURL 创建表格
urlCluster允许从 URL 中的多个节点并行处理文件,在指定的集群中。
values创建一个临时存储,用值填充列。
view将子查询转换为表格。该函数实现了视图。
loopClickHouse 中的 loop 表格函数用于以无限循环返回查询结果。

用法

表格函数可以用于 FROM 子句的 SELECT 查询中。例如,您可以使用 file 表格函数从本地机器上的文件中 SELECT 数据。

echo "1, 2, 3" > example.csv
./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│  1 │  2 │  3 │
└────┴────┴────┘

您还可以使用表格函数来创建仅在当前查询中可用的临时表。例如

SELECT * FROM generateSeries(1,5);
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘

表格在查询完成后将被删除。

可以使用以下语法使用表格函数来创建表格

CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()

例如

CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘

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

INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;
cat numbers.csv
1
2
3
4
5
注意

如果禁用了 allow_ddl 设置,则无法使用表格函数。

    © . This site is unofficial and not affiliated with ClickHouse, Inc.