百度日志服务BLS

    QueryLogRecord

    描述

    用户通过提交 Query 检索或分析指定日志集中的数据,每次只能查询一个日志集的内容。

    Query 语句格式支持 检索 + SQL分析,通过竖线分隔,即在检索的结果集上执行 SQL,形如:Search | SQL

    例如 method:GET and status >= 400 | select host, count(*) group by host

    注:

    • 如果只需要检索原日志,不需要执行 SQL 分析,可以省略竖线和 SQL 语句。
    • 如果不需要检索,只需要 SQL 分析,那么检索语句可以写为 *,表示匹配所有记录。即 * | SQL。如果查询的日志集没有开启索引,也可以省略检索语句和竖线,只写 SQL 语句。

    查询相关限制如下:

    • 每个账户支持最多的查询并发数是 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 结束日期时间,不包括结束时间
    marker String No Query 用来标记扫描开始的位置,不带 marker 则从时间范围内的第一条开始返回
    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 数据扫描被截断的原因
    nextMarker String 标记数据扫描被截断的位置
    marker String 透传请求中的 marker,用来标识本次查询的起始位置
    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"
                }
            }
        }
    }
    上一篇
    PullLogRecord
    下一篇
    FastQuery 相关接口