日志服务支持通过索引模式查询和分析日志。本文介绍索引,查询和分析的基本概念。
索引
通常我们使用关键词从原始日志中检索想要的内容,例如包含curl
的日志:curl/7.74.0
。如果不进行切分,该日志文本会作为一个整体,不能和关键词curl
完全对应,因此不会被日志服务检索到。
为了便于检索,需要将日志切分成独立、可搜索的词。日志切分由分词符实现,这些符号决定了日志文本内容被切分的位置。以该日志为例,使用分词符\n\t\r,;[]{}()&^*#@~=<>/\?:'"
进行分割,得到的词是curl
、7.74.0
。日志服务基于切分出的关键词建立索引。创建索引后,您才能对日志进行查询和分析。
日志服务Project支持创建全文索引和字段索引。如果您同时创建了全文索引和字段索引,以字段索引的配置为准。
全文索引
全文索引根据分词符直接将整个日志切分成多个text类型的词语。创建全文索引后,可以通过关键词进行查询,例如查询语句:Chrome or Safari
,查询包括Chrome
或Safari
的日志。
分词符不支持中文,开启包含中文选项,日志服务会自动按照中文分词。
如果只配置全文索引,则只能使用全文查询功能。更多信息,请参见查询语法与功能。
字段索引
字段索引将日志根据字段名称(KEY)进行区分,然后在字段内使用分词符进行分割。字段索引支持text、long、double和JSON四种类型的数据。更多信息,请参见数据类型。创建字段索引后,可以指定字段名称和字段值(Key:Value
)进行查询,也可以使用SELECT语句。更多信息,请参见字段查询。
如需对字段进行查询或分析(SELECT语句),必须创建字段索引。字段索引的优先级高于全文索引,如果同时创建了全文索引和字段索引,以字段索引的配置为准。
text类型的字段,可以使用全文查询语句、字段查询语句和分析语句(SELECT)。
如果未开启全文索引,全文查询语句是从所有text类型的字段中查询结果。
如果已开启全文索引,全文查询语句是从所有日志中查询结果。
long和double类型的字段,可以使用字段查询语句和分析语句(SELECT)进行查询和分析。
查询与分析
日志服务支持秒级查询十亿到千亿级别的日志,并支持通过SQL对查询结果进行统计分析。查询语句可单独使用,分析语句必须与查询语句一起使用,即分析功能是基于查询结果或全量数据进行的。在Logstore中进行查询和分析操作,请参见查询和分析日志。
查询简介
查询语句用于指定日志查询时的过滤规则,返回符合条件的日志。格式为:
查询语句
,例如status: 200
。查询条件可使用关键词、数值、数值范围、空格、
*
等。 如果为空格或*
,表示无过滤条件。更多信息,请参见查询语法与功能。
分析简介
查询语句和分析语句以
|
分割。格式为:查询语句|分析语句
,例如:* | SELECT status, count(*) AS PV GROUP BY status
。如需使用分析功能,则必须将日志采集到Standard Logstore中,且在配置索引时打开对应字段的开启统计开关。
分析语句对查询结果或全量数据进行计算和统计。日志服务支持的分析函数和语法,请参见:
SQL函数:SQL函数通常用于对数据进行计算、转换和格式化。例如,计算总和、平均值、字符串操作、日期处理等。
SQL子句:SQL子句用于构建完整的SQL查询或数据操作语句,决定数据的来源、条件、分组、排序等。
嵌套子查询:嵌套子查询是指将一个SELECT语句嵌套在另一个SELECT语句中,用于复杂的分析场景。
Logstore和MySQL联合查询分析:日志服务支持通过Join语法将Logstore和MySQL数据库进行联合查询,并把查询结果保存到MySQL数据库中。
相关文档
创建索引:如需使用查询或分析功能,必须创建索引。
重建索引:如需对历史数据配置索引或修改索引时,可以使用重建索引功能。
查询语法与功能:介绍查询语句的基本用法以及更多高级功能。
SQL分析语法与功能:介绍SQL分析语句的常用函数以及子句。
使用SPL查询和分析日志:如需对日志数据进行结构化信息提取、字段操作和数据过滤时,可以通过使用SPL语言(SLS Processing Language)来解决这些问题。
机器学习语法与函数:在日志查询分析中通过分析语句和机器学习函数调用机器学习算法,分析某一字段或若干字段在一段时间内的特征。
关联外部数据源:可用于日志服务与MySQL数据库、阿里云对象存储OSS、托管的CSV文件进行关联。
日志服务与Elasticsearch的兼容性:日志服务提供Elasticsearch兼容接口,支持您将日志采集到日志服务后,仍可以沿用Elasticsearch的查询方案。