Помимо стандартного SQL, ClickHouse поддерживает различные альтернативные языки запросов для работы с данными.
В настоящее время поддерживаются следующие диалекты:
clickhouse: Диалект SQL, используемый в ClickHouse по умолчанию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.