SQL API 支持用于分析查询的只读 SQL 子集。SQL 关键字和函数名不区分大小写。数据集和字段名区分大小写。
每个查询必须读取一个带 schema 限定的数据集,并且必须包含账户或 zone 范围以及下限时间边界。对于 HTTP API 请求,可以在 SQL 中或通过 JSON 请求字段提供范围和时间边界。Workers 绑定查询是例外:绑定会自动提供账户范围,因此 SQL 中只需包含时间边界。例如:
SELECT
clientRequestHttpHost AS host,
COUNT(*) AS requests
FROM events.httpRequests
WHERE accountTag = '<ACCOUNT_TAG>'
AND timestamp >= NOW() - INTERVAL '1' HOUR
GROUP BY clientRequestHttpHost
ORDER BY requests DESC
LIMIT 10SQL API 不支持任意 ClickHouse SQL。不支持的功能包括:
- 数据修改或定义语句,包括
INSERT、UPDATE、DELETE、CREATE、ALTER和DROP。 - 连接、联合、公用表表达式和一般子查询。支持一种受限的派生表投影。
- 窗口函数。
- 行级
SELECT DISTINCT。COUNT、SUM和AVG在未采样数据集和 Workers Analytics Engine 数据集上支持DISTINCT。 FETCH。ClickHouse 支持的数据集支持带LIMIT的OFFSET。EXPLAIN、ANALYZE、DESCRIBE、VALUES和UNNEST。SIMILAR TO、LIKE ... ESCAPE以及用户编写的类型转换。- 聚合
FILTER和聚合本地ORDER BY子句。
当语句包含不支持的语法时,API 返回 HTTP 422 响应。