跨日志库(Logstore)查询与分析

更新时间:
复制为 MD 格式

数据视图(Storeview) 支持多 Store 联合查询分析能力,本文介绍日志型数据视图(Storeview)的创建,以及查询分析的使用方式。

创建日志型数据视图

前提条件

已创建Project、标准型Logstore并完成日志采集配置。具体操作,请参见管理Project创建基础LogStore数据采集概述

操作步骤

  1. 登录日志服务控制台,在Project列表,单击打开目标Project。

  2. 在左侧导航栏选择数据视图 > 日志型数据视图,然后单击立即创建image创建日志型数据视图

    image

  3. 创建数据视图对话框,输入数据视图名称,并添加关联的Logstore,然后单击确定。数据视图创建需要等待大约一分钟。image

    说明
    • 每个日志服务Project支持总共最多创建10日志型数据视图

    • 每个日志型数据视图最多关联50Logstore

    • 日志型数据视图中的所有Logstore必须属于同一个阿里云账号。

    警告

    如果存在跨境联合查询场景,需要阅读数据跨境合规承诺,并单击确定

查询功能说明

日志型数据视图支持跨logstore查询能力,即如果日志型数据视图中关联了logstore-1logstore-2两个Store,logstore-1logstore-2中均包含字段a,对于查询分析语句:* | select a from log where a > 1的结果将返回logstore-1logstore-2中字段a符合a > 1的日志结果。

假如日志型数据视图中包含两个日志内容完全一致Logstore。此时查询对应的关键字,即可返回不同Logstore里面的所有结果,可以通过tag字段判断日志是来自哪一个Logstore。

image

分析功能说明

数据视图支持跨Store聚合统计分析能力,即如果StoreView中关联了logstore-1logstore-2两个Store,logstore-1logstore-2中均包含字段 a,对于查询分析语句:* | select a, count(1) group by a 的结果将返回logstore-1 和logstore-2的字段a的总数。

由于聚合分析需要字段key一致,对于日志内容相同但是key名不一致的场景,可以通过预定义对部分数据进行过滤及对字段重命名。比如需要聚合logstore-1a字段和logstore-2b字段时,需要先将b重命名为a

说明

日志型数据视图(StoreView)支持在创建StoreView时对于关联的Store通过SPL预法进行预定义(预定义SPL仅支持extendwhere关键字)。预定义可以用于对部分数据进行过滤及适配聚合分析中字段命名不一致问题等场景(聚合分析需要字段 key 一致,即要聚合logstore-1a字段和logstore-2b字段时需要通过extend a = b使得列名保持一致)。

以下列两个场景为例:

  • 场景 1:

    日志型数据视图关联的是相同服务的不同Logstore,Logstore日志内容均一致。该场景下,需要先检查不同Logstore的索引配置是否相同(如均是全文索引,或需要的字段索引配置一致),而后将需要关联的Logstore添加到日志型数据视图中。

    创建日志型数据视图后,即可正常使用SQL进行分析,如图所示统计近期15分钟的不同status的结果为两个logstore所有日志的聚合结果。

    image

  • 场景 2

    日志型数据视图关联的是相同服务的不同Logstore,但是Logstore的日志部分字段命名不同。此时可以通过预定义SPL重新定义一个新的字段与另一个Logstorekey名对齐。如图所示,使用SPL语句*|extend request_method = methodmethod字段重命名为 request_method字段。点击预览数据,可以预览预定义的结果数据。

    image.png后续可以使用 request_method进行查询分析。

    image.png

常见的查询/分析结果示例

场景描述

CreateStoreView时预定义Query

StoreView查询分析页面输入Query

输出结果

logstore-1、logstore-2均包含key 列

key:123

包含key:123的行

logstore-1、logstore-2均包含a、b

*| select a where b=1

满足b =1的全部a

logstore-1、logstore-2均包含key、a

key:123

*| select a

满足key:123的全部a

logstore-1、logstore-2均包含key、a

key:123|where a>1

*| select a

同时满足key:123a > 1a

logstore-1、logstore-2均包含key、a

key:123|where a>1 |extend y=upper(a)

*| select *

返回满足条件的所有列(包括y列)

logstore-1包含a,b,c,logstore-2包含b,c,d

select a,b,c,d

返回a、b、c、d列,空值填null

logstore-1有 ab两个索引字段, logstore-2有 bc两个索引字段

a:*** and b:*** | select a, count(1) group by a

logstore-2中没有a的情况下,只统计logstore-1的数据。

部分不一致情况的处理

  • 查询语句同一个字段在两个Logstore配置的字段类型不一致时,可以正常返回。

  • 分析语句中仅在某些Store中包含对应字段场景时,仅返回包含对应字段Store的结果数据。

  • 分析语句多个Store之间索引字段Key索引配置不一致时,将返回报错,不返回结果。

后续步骤

查询日志型数据视图

在左侧导航栏选择数据视图 > 日志型数据视图,查看已创建的日志型数据视图。

image

更新日志型数据视图

  1. 在数据视图列表,鼠标悬浮在目标数据视图上,单击image,然后单击修改

    image

  2. 修改数据视图面板,您可以修改已关联的日志库,然后单击确定

    image

删除日志型数据视图

在数据视图列表,鼠标悬浮在目标数据视图上,单击image,然后单击删除

image

相关文档

数据视图(StoreView)概述

管理数据视图的API接口,请参见: