最近更新时间:2024.01.22 17:33:41
首次发布时间:2022.11.18 10:32:18
为日志数据建立键值索引时,您可以将字段的数据类型设置为 text、long、double 或 json。本文介绍各个数据类型的配置说明及注意事项。
在日志服务中为日志字段设置键值索引时,需要为每个开启键值索引的字段设置数据类型。索引字段的数据类型设置决定了您可以用何种方式检索该字段的数据,同时影响检索的精度和准确性。
常见场景下,日志数据的字段值通常为文本类型或数值类型,您可以根据实际的字段值设置 text(字符串)、long(整型)或 double(浮点型)类型的键值索引,满足日志检索需求。对于 JSON 等相对更加复杂的结构化数据,您也可以配置 JSON 类型的键值索引,日志服务支持展开标准合法的 JSON 字段,为其叶子节点设置 text、long 或 double 类型的键值索引,以满足 JSON 嵌套结构的叶子节点字段检索需求。
各索引字段的数据类型说明如下:
类型 | 说明 |
---|---|
text | 适用于字符串类型的字段。 |
long | 适用于数值类型的字段,例如整型(Int 64)。字段类型设置为 long 之后,您可以通过数值范围查询日志字段,例如使用 |
double | 适用于数值类型的字段,例如浮点型(64 bit)。字段类型设置为 double 之后,您可以通过数值范围查询日志字段,例如使用 |
json | 适用于 JSON 类型的字段。日志服务支持对标准 JSON 类型字段建立索引,即字段类型设置为 json 后,可以设置其展开后每个子字段的数据类型。 |
text 类型适用于字符串类型的字段。
__time__
以外所有字段)设置为 text 类型。long 类型适用于数值类型的字段,例如整型(Int 64)。字段类型设置为 long 之后,您可以通过数值范围查询日志字段,例如使用>
等范围操作符进行检索。
double 类型适用于数值类型的字段,例如浮点型(64 bit)。字段类型设置为 double 之后,您可以通过数值范围查询日志字段,例如使用>
等范围操作符进行检索。
json 类型适用于格式为 JSON 对象的字段。日志服务支持对标准 JSON 类型字段建立索引,即字段类型设置为 json 后,可以设置其展开后每个子字段的数据类型。
设置方式:
子字段名称规则:
.
来表示JSON数据结构中子字段之间的层级关系,例如 key1.key2.key3
表示 key2
是 key1
的子字段且 key3
是 key2
的子字段,子字段的名称不包含最顶层配置为 JSON 类型的根字段名。key1.key2
和 key1.key2.key3
两个子字段,但您可同时配置 key1.key2.key3
和 key1.key2.key4
两个子字段。设置限制:
异常场景处理:
例如在应用服务日志的采集场景下,每一条日志表示一次用户请求,其中,info 字段为 JSON 对象格式的字段,表示某次服务请求的详细信息,info 字段中还嵌套了 JSON 对象格式的字段 response 和 developers。
日志样例如下:
{ "product":"NewApp", "total_users":1000000, "avg_pv_per_day":1000000.0, "regions":[ "cn-beijing", "cn-shanghai" ], "info":{ "api":"CreateIndex", "ip":[ "192.168.1.101", "192.168.1.102" ], "request_time":1667232000, "latency_time":0.01, "response":{ "request_id":"a**********", "status":200, "error_msg":"" }, "developers":[ { "name":"张三", "email":"zhangsan@test.com" }, { "name":"李四", "email":"lisi@test.com" } ] } }
索引配置如下:
检索分析示例如下:
分析场景 | 分析语句 |
---|---|
检索包含 NewApp 的日志 |
|
检索总用户量大于 10000 且日均访问量大于 10000.0 的日志 |
|
查看全部日志 |
|
筛选产品名称为 NewApp 的日志 |
|
筛选总用户量大于 10000,且日均访问量大于 10000.0 的日志 |
|
筛选请求 API 为 CreateIndex 的日志 |
|
统计响应状态码不为200的日志数量 |
|
统计按照请求 NewApp API 进行聚合的日志数量 |
|