除标准 SQL 外,ClickHouse 还支持多种可用于数据查询的其他查询语言。
当前支持的 dialect 如下:
clickhouse:ClickHouse 默认的 SQL 方言prql:管道式关系查询语言 (PRQL)kusto:Kusto 查询语言 (KQL)
使用哪种查询语言由 dialect 设置控制。
标准 SQL
标准 SQL 是 ClickHouse 的默认查询语言。
SET dialect = 'clickhouse'管道式关系查询语言 (PRQL)
要启用 PRQL:
SET allow_experimental_prql_dialect = 1; -- 此 SET 语句仅在 ClickHouse v25.1 及以上版本中需要
SET dialect = 'prql'PRQL 查询示例:
from trips
aggregate {
ct = count this
total_days = sum days
}ClickHouse 在底层通过将 PRQL 转译为 SQL 来运行 PRQL 查询。
Kusto 查询语言 (KQL)
如需启用 KQL:
SET allow_experimental_kusto_dialect = 1; -- 此 SET 语句仅适用于 ClickHouse 版本 >= 25.1
SET dialect = 'kusto'numbers(10) | project number┌─number─┐
│ 0 │
│ 1 │
│ 2 │
│ 3 │
│ 4 │
│ 5 │
│ 6 │
│ 7 │
│ 8 │
│ 9 │
└────────┘请注意,KQL 查询可能无法调用 ClickHouse 中定义的所有函数。