QueryLogRecord
更新时间:2021-02-25
描述
用户通过提交 Query 检索或分析指定日志集中的数据,每次只能查询一个日志集的内容。
Query 语句支持三种格式,形如:
match 检索语句
:需要开启全文索引或者字段索引,根据条件检索日志内容,例如match method:GET and status >= 400
SQL语句
:执行 SQL 语句,例如select * limit 10
match 检索语句 | SQL 语句
:需要开启全文索引或者字段索引,在符合检索条件的结果集上执行 SQL 语句,检索语句和 SQL 语句通过竖线分隔,例如match method:GET and status >= 400 | select host, count(*) group by host
查询相关限制如下:
- 每个账户支持最多的查询并发数是 15 个
- 限制返回的结果集大小不超过 1MB 或 1000 条记录。
涉及检索的部分需要开启索引,检索语法请参考 检索语法
SQL 语句中可以不包括 from 子句,语法详情可以参考 SQL 语法
请求
- 请求语法
GET /v1/logstore/{logStoreName}/logrecord HTTP/1.1
Host: <Endpoint>
Authorization: <Authorization String>
- 请求头域
除公共请求头域外,无其它特殊头域。
- 请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
logStoreName | String | Yes | Path | 日志集名称 |
logStreamName | String | No | Query | 日志流名称 |
query | String | Yes | Query | 输入的 Query 语句 |
startDateTime | DateTime | Yes | Query | 起始日期时间,包括起始时间 |
endDateTime | DateTime | Yes | Query | 结束日期时间,不包括结束时间 |
limit | Int | No | Query | 限制返回结果记录条数,不传则表示不限制 |
注:日期时间均为UTC时间,格式ISO8601,例如:2020-01-10T13:23:34Z,startDateTime 和 endDateTime 的范围约束的是 LogRecord 的 timestamp
响应
- 响应头域
除公共响应头域外,无其它特殊头域。
- 响应参数
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
resultSet | Object | 是 | 返回符合条件的结果集 |
datasetScanInfo | Object | 是 | 扫描原始数据集的统计信息 |
其中,resultSet 代表此次查询获取的结果集,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
columns | List<string> | 是 | 包含的字段名称列表 |
rows | List<List<obj>> | 是 | 每一行对应columns中列名的值 |
isTruncated | Boolean | 是 | 结果集是否被截断 |
truncatedReason | String | 否 | 返回结果集被截断的原因 |
datasetScanInfo 代表扫描原始数据集的统计信息,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
isTruncated | Boolean | 是 | 数据扫描是否被截断 |
truncatedReason | String | 否 | 数据扫描被截断的原因 |
statistics | Object | 是 | 数据集扫描的一些统计信息 |
statistics 代表本次查询所扫描的原始数据集的统计信息:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
executionTimeInMs | Int | 是 | 本次查询花费的时间,单位毫秒 |
scanCount | Int | 是 | 本次查询所扫描的数据条数 |
histogram | Object | 是 | 本次查询扫描的日志按时间分布的直方图 |
histogram 代表本次查询所扫描的原始数据集的直方图分布信息:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
interval | Int | 是 | 直方图统计单个区间大小 |
startTime | DateTime | 是 | 直方图统计的开始时间,是请求中的startDateTime,统计数据包括该时间 |
endTime | DateTime | 是 | 直方图统计的结束时间,是请求中的endDateTime,统计数据不包括该时间 |
counts | List<Integer> | 是 | 直方图统计区间的扫描条数 |
注:startTime/endTime 遵循 ISO8601 格式标准,例如:2019-12-01T00:00:00Z
示例
- 请求示例
GET /v1/logstore/demo/logrecord?logStreamName=my-stream&marker=JpJYBIUoFqHA4wxXzeRGREbUVg&startDateTime=2019-09-01T22:00:00Z&endDateTime=2019-09-01T23:00:00Z&query=select+count(*) HTTP/1.1
Host: bls-log.bj.baidubce.com
Authorization: bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
- 响应示例
HTTP/1.1 200 OK
Date: Thu, 12 Jun 2014 09:26:46 GMT
Content-Type: application/json; charset=utf-8
X-Bce-Request-Id:47e0ef1a-9bf2-11e1-9279-0100e8cf109a
{
"resultSet": {
"columns": [
"count(*)"
],
"rows": [
[
7195
]
],
"isTruncated": false
},
"datasetScanInfo": {
"isTruncated": false,
"statistics": {
"executionTimeInMs": 1186,
"scanCount": 7195,
"histogram": {
"interval": 300000000000,
"counts": [
600,
600,
590,
600,
600,
600,
600,
600,
600,
600,
605,
600
],
"startTime": "2020-03-04T10:00:26Z",
"endTime": "2020-03-04T11:00:26Z"
}
}
}
}