数据集(StoreView)概述

在业务场景中,日志数据可能存储在日志服务Project的不同Logstore/MetricStore中或不同地域的Project中。日志服务Project的数据集功能支持跨地域、跨Store联合查询,可帮助您提升工作效率。本文为您介绍如何使用日志型数据集和时序型数据集。

什么是StoreView

在日志服务的Project中,StoreviewLogstoreMetricStore都是重要的资源。但是Storeview并不是用于存储日志的实体资源,而是基于LogstoreMetricStore创建的虚拟资源,它们用于管理和保存多个Logstore或多个MetricStore之间的关联关系。通过数据集(Storeview),您可以对不同Logstore(或不同MetricStore)中的日志进行统一查询,但是数据集(Storeview)不支持对日志的修改操作。数据集(Storeview)分为日志型数据集时序型数据集,其中日志型数据集支持对不同Logstore进行查询与分析以及对关联的Store通过SPL语法进行预定义,时序型数据集仅支持不同MetricStore之间进行查询。

image

日志型数据集/时序型数据集中不同Logstore/MetricStore的日志内容支持关联查询,如Logstore1、Logstore2中均包含age字段,同时Logstore1、Logstore2通过数据集1关联,则在数据集1中查询age字段将返回Logstore1、Logstore2中的全部结果。

创建索引的草稿 (2)

权限说明

使用RAM用户或扮演RAM角色使用数据集时,需要具备相应的权限。使用阿里云主账号为RAM用户或RAM角色授权的操作步骤,请参见创建RAM用户及授权创建可信实体为阿里云服务的RAM角色及授权使用RAM角色实现跨云账号的资源访问

您可以为用户授予系统权限策略自定义权限策略

  • 系统权限策略:统一由阿里云创建,用户只能使用,不能修改,策略的版本更新由阿里云维护。

  • 自定义权限策略:用户可以自主创建、更新和删除,策略的版本更新由用户自己维护。

    • 新建数据集或在数据集中查询时,RAM用户或RAM角色需要具有关联的所有Logstore、MetricStoreGetLogs - 查询日志库日志权限,即在自定义权限策略中添加如下内容:

      重要
      • 权限策略中的Logstore包括了LogstoreMetricStore。当您的操作对象为MetricStore时,如下策略同样适用。

      • 权限策略中的storeview包括了日志型数据集时序型数据集

      {
        "Version": "1",
        "Statement": [
          {
            "Action": "log:GetLogStoreLogs",
            "Resource":[
              "acs:log:*:*:project/${projectName}/Logstore/*",
              "acs:log:*:*:project/${projectName}/storeview/*"
            ],
            "Effect": "Allow"
          }
        ]
      }

使用限制

  • 每个日志服务Project支持总共最多创建10日志型数据集/时序型数据集

  • 每个日志型数据集/时序型数据集最多关联50Logstore/MetricStore

  • 日志型数据集/时序型数据集中的所有Logstore/MetricStore必须属于同一个阿里云账号。

预定义能力说明

概念

日志型数据集(StoreView)支持在创建StoreView 时对于关联的Store通过SPL语法进行预定义(预定义SPL仅支持extendwhere关键字),预定义可以用于对于部分数据进行过滤及适配聚合分析中字段命名不一致问题等场景(聚合分析需要字段 key 一致,即要聚合logstore1a字段和logstore2b字段时需要通过extend a = b使得列名保持一致),具体详情请参见示例

使用限制

目前日志型数据集(StoreView)支持预定义,时序型数据集(StoreView)不支持预定义。

支持指令

日志型数据集(StoreView)预定义支持extendwhere算子。

SQLSPL支持的函数请参见函数概览

示例

创建或者修改日志型数据集请参见创建日志型数据集

例如,当需要聚合Logstore1a字段和Logstore2b字段时,可以在创建数据集或者修改数据集的时候通过extend a = b(预定义)使列名保持一致。

示例1

Logstore1预定义* | where a>1,则表示StoreView中仅命中a>1的日志参与后续的分析。

image

示例2

Logstore1预定义 *| extend b = a ,表示StoreView中在 Logstore1中增加一列b,与a列的值相同,用于后续聚合。

image

查询能力说明

日志型数据集(StoreView)

日志型数据集(StoreView)支持跨logstore查询能力,即如果日志型数据集中关联了logstore-1logstore-2两个Store,logstore-1logstore-2中均包含字段request_method,对于查询语句:(request_method:GET or request_method:POST) and status in [200 299] 的结果将返回logstore-1logstore-2中符合的日志结果。日志型数据集(StoreView)查询详情请参见查询语法与功能

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

image

时序型数据集(StoreView)

时序型数据集(StoreView)支持跨Store查询能力,即如果时序型数据集(StoreView)中关联了metricstore1metricstore2 两个Store,直接在查询框中输入PromQL语句,后端计算引擎会自行完成跨多个时序库的计算处理。时序型数据集(StoreView)查询详情请参见时序数据查询和分析语法。创建或者修改时序型数据集(StoreView)请参见跨时序库(Metricstore)查询

说明

目前时序型数据集(Storeview)支持PromQL查询,不支持SQL查询、分析和预定义功能。

image.png

分析能力说明

概念

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

由于聚合分析需要字段key一致,对日志内容相同但是key名不一致的场景,可以通过预定义对部分数据进行过滤及对字段重命名。具体操作请参见预定义能力说明

使用限制

目前日志型数据集(StoreView)支持数据分析,时序型数据集(StoreView)不支持数据分析。

支持函数

SQLSPL支持的函数请参见函数概览

示例

示例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

数据集(Storeview)与常规Store功能区别

功能项

logstore/metricstore

Storeview

快速分析

支持

支持

统计图表

支持

支持

仪表盘

支持

支持

日志下载

支持

支持

快速查询

支持

不支持

定时SQL

支持

不支持

告警

支持

不支持

日志聚类

支持

不支持

字段分析

支持

不支持

相关文档

    OSZAR »