You need to enable JavaScript to run this app.
导航
检索分析 JSON 日志常见问题
最近更新时间:2024.11.08 10:53:42首次发布时间:2024.11.08 10:53:42

如何配置索引?

在为 JSON 日志配置索引时,可参考如下配置思路和示例。

索引类型的选择

日志服务提供全文索引和键值索引这两种索引配置方式,您可以参考如下说明,选择索引配置方式。更多信息,请参考配置索引

说明

如果您同时配置了全文索引和键值索引,则对于配置了键值索引的字段,将以键值索引的配置为准。

  • 全文索引:如果要检索日志中的所有字段,建议创建全文索引。
  • 键值索引:如果明确仅检索部分字段,则可针对这些目标字段建立键值索引,减少索引费用。
    如果对字段有 SQL 分析需求,则必须对目标字段建立键值索引,并开启统计功能。例如您仅统计分析 status 字段和 method 字段,则只需要配置这两个字段的键值索引,并开启统计功能。

索引字段数据类型的选择

日志服务支持的索引字段的数据类型包括 text、long、double 和 JSON。更多信息,请参见索引数据类型
在为目标字段选择合适的数据类型时,可参考如下思路:

  • 非标准 JSON 格式:如果字段值包含了 JSON 格式的内容,但并非标准 JSON 格式,则建议设置为 text 类型。
  • 标准 JSON 格式:如果字段值是标准 JSON 格式,建议设置为 JSON 类型。设置为 JSON 类型后,日志服务会自动展开该 JSON 内容。
    • 设置为 JSON 类型后,针对非完全合法的 JSON 格式内容,日志服务支持解析合法部分。
    • 设置为 JSON 类型后,如果需要对 JSON 对象中的子字段进行进一步分析,则可以为子字段单独建立索引,索引数据类型可选 text、long 或 double。设置后,检索分析时的粒度可以精确到子字段,提高子字段的检索分析速度,但同时也会产生额外的索引费用。

      说明

      • 日志服务支持为 JSON 对象中的子字段建立索引,但不建议为包含子字段的子字段建立索引。若您为 JSON 对象中嵌套 JSON 对象建立索引,日志服务将把该子字段处的 JSON 对象值序列化成字符串处理。
      • 日志服务不支持值为 JSON 数组的字段建立索引,也不支持为 JSON 数组中的字段建立索引。

配置示例

  • 日志样例
    logging 字段和 process_info 字段均为 JSON 类型。
    Image

  • 检索分析需求

    • 通过 logging.level 字段统计各个日志级别的日志数量。
    • 通过 process_info.delivered 字段统计每分钟加工输出的日志数量。
    • 通过 task_idprocess_info.failed 字段统计指定时间范围内各个加工任务加工失败的日志数量。
  • 索引配置说明

    字段

    说明

    logging

    • logging 字段为 JSON 格式,设置其索引数据类型为 JSON 类型,并开启统计功能。
    • logging.level 字段表示日志级别,设置其索引数据类型为 text 类型,并开启统计功能。
    • logging.message 字段的查询场景较少,无需单独建立索引。在需要分析时,可通过 JSON 相关的函数进行分析。JSON 函数说明,请参考JSON 函数

    process_info

    • process_info 字段为 JSON 格式,设置其索引数据类型为 JSON 类型,并开启统计功能。
    • process_info.faild 字段表示加工任务运行过程中输出失败的日志数量,设置其索引数据类型为 long 类型,并开启统计功能。
    • process_info.delivered 字段表示加工任务运行过程中输出的数量,设置其索引数据类型为 long 类型,并开启统计功能。

    task_id

    task_id 字段表示加工任务 ID,设置其索引数据类型为 text 类型,并开启统计功能。

  • 索引配置示例
    Image

JSON 自动索引和手动配置索引的区别?

操作

说明

为 JSON 父字段开启自动索引及统计功能

已添加部分二级字段索引的场景

  • JSON 父字段无键值索引和统计功能,即不支持检索和 SQL 分析。
  • 手动配置的二级字段有索引和统计功能,即支持检索与 SQL 分析。
  • 其他由系统自动创建索引的子字段,有键值索引但无统计功能,即支持检索但不支持 SQL 分析。

未添加二级字段索引的场景

  • JSON 父字段无键值索引,但具备统计功能,即不支持键值检索但支持 SQL 分析。
  • 其他由系统自动创建索引的子字段,有键值索引但无统计功能,即支持检索但不支持 SQL 分析。

为 JSON 父字段开启统计但关闭自动索引功能

已添加部分二级字段索引的场景

  • JSON 父字段无键值索引和统计功能,即不支持检索和 SQL 分析。
  • 手动配置的二级字段有索引和统计功能,即支持检索与 SQL 分析。

未添加二级字段索引的场景

JSON 父字段有键值索引和统计功能,即支持检索与 SQL 分析。