SELECT 语法

最近更新时间:2024-08-15 09:57:01

我的收藏
用于从表中选取数据,默认从当前日志主题中获取符合检索条件的数据。

语法格式

* | SELECT [列名(KEY)] FROM log
SELECT默认从日志中获取数据,可省略FROM log,简写为* | SELECT [列名(KEY)]
注意:
从日志主题中获取数据时,默认最大获取100行数据,如需获取更多数据请使用 LIMIT 语法 指定需要获取的行数,最多可获取100万行。

语法示例

从日志数据中选取列(KEY)为remote_addr以及method的值:
* | SELECT remote_addr, method
从日志数据中选取所有列(KEY):
* | SELECT *
SELECT 后面也可以跟算术表达式,如从日志数据中查询下载速度:
下载速度(speed)= 总发送字节数(body_bytes_sent)/ 请求时长(request_time
* | SELECT body_bytes_sent / request_time AS speed

列名规范

在 SQL 规范中,列名须由字母、数字和下划线_组成,且以字母开头,例如remote_addr。日志中字段名称不符合该规范时,需使用双引号""包裹,也可以在 SQL 中使用 AS 语法 为该字段指定别名。字段名称与 SQL 语法关键词冲突时,也需使用双引号""包裹。
日志字段名为remote_addr,符合 SQL 列名规范,可直接使用 select 查询:
* | SELECT remote_addr
日志字段名为__TAG__.pod_label_qcloud-app,不符合 SQL 列名规范,需使用双引号""包裹:
* | SELECT "__TAG__.pod_label_qcloud-app"
日志字段名为__TIMESTAMP__,不符合 SQL 列名规范,需使用双引号""包裹,同时使用 AS 为该字段指定别名:
* | SELECT "__TIMESTAMP__" AS log_time
日志字段名为order,与 ORDER BY 语法 冲突,需使用双引号""包裹:
* | SELECT "order"