跳转至

实时场景指标查询

概述

用户可以在指标平台中按照分钟粒度查询指标结果。本文讲解如何通过指标平台完成以下三类场景的数据查询:

  1. 查询本日至今的销售额,使用指标卡展示当前值以及去年同比增长率

image.png

  1. 以 30 分钟为一个间隔,展示当日的时段订单量以及同比值

image.png

  1. 以5分钟为一个间隔,展示当日的累计销售额趋势

image.png

操作说明

前置条件

  1. 需要数据集中的日期字段为 DATETIME 数据类型,并在指标平台中,配置基础指标,选择该日期字段作为 指标日期标识。

image.png

  1. 配置基础指标 销售额(Sales_Amount)

查询配置

今日销售额

image.png

展示截止到当前时间点的今日销售额累计值,以及对应时段的 52周前的同比增长率

{
  "metrics":[
    "Sales_Amount", 
    "Sales_Amount__sameperiod__-52_wow__growth" // 注释1
  ],
  "dimensions": [ ],
  "timeConstraint": "[metric_time__minute]>=dateTrunc(now(),\"DAY\") and [metric_time__minute]<=dateTrunc(now(),\"minute\")" // 注释2
  }
}
  • 注释1:Sales_Amoun__sameperiod__-52_wow__growth

    • 快速返回指标的 52周前同比增长率
  • 注释2:[metric_time__minute]>=dateTrunc(now(),\"DAY\") and [metric_time__minute]<=dateTrunc(now(),\"minute\")

    • 查询日期为今日且时间小于等于当前时间点的数据结果。

注意:这里如果只筛选 TODAY( ) 会导致计算 52周前的数据范围扩大。

注意:这里如果只筛选 TODAY( ) 会导致计算 52周前的数据范围扩大。

今日销售额分布

image.png

展示柱形图,每30分钟为一个点位,同时展示其52周前同期值作为对比

{
  "metrics":[
    "Sales_Amount", 
    "Sales_Amount__sameperiod__-52_wow__growth" 
  ],
  "dimensions": [
    "metric_time__30minute" // 注释1
    ],
  "timeConstraint": "[metric_time__minute]>=dateTrunc(now(),\"DAY\") and [metric_time__minute]<=dateTrunc(now(),\"minute\")", // 注释2
  }
}
  • 注释1:metric_time__30minute

    • 通过方法 __30minute 可以将查询的粒度快速切换为 30分钟
  • 注释2:[metric_time__minute]>=dateTrunc(now(),\"DAY\") and [metric_time__minute]<=dateTrunc(now(),\"minute\")

    • 查询日期为今日且时间小于等于当前时间点的数据结果。

!!! note "注意:这里如果只筛选 TODAY( ) 会导致系统计算今日的未来时间的 52周前同比值。

比如当前时间点为 12:00,如果不去处理小于等于当前时间点,则会返回去年 12:30、13:00 等未来时间的同比值,造成数据污染" 注意:这里如果只筛选 TODAY( ) 会导致系统计算今日的未来时间的 52周前同比值。

比如当前时间点为 12:00,如果不去处理小于等于当前时间点,则会返回去年 12:30、13:00 等未来时间的同比值,造成数据污染

今日的累计销售额趋势

image.png

通过面积图展示当日的销售额累计值,每5分钟作为一个点位展示累计变化。

{
  "metrics":[
     "Sales_Amount__period__dt10min", // 注释1
  ],
  "dimensions": [
    "metric_time__10minute" // 注释2
    ],
  "timeConstraint": "[metric_time__minute]>=dateTrunc(now(),\"DAY\") and [metric_time__minute]<=dateTrunc(now(),\"minute\")",
  }
}
  • 注释1:Sales_Amount__period__dt10min

    • 通过 __period__dt10min 可以快速计算指标当日至当前10分钟的累计值
  • 注释2:metric_time__10minute

    • 以 10分钟作为一个点位返回当日的多行数据结果

方法总结

单指标查询

可以直接使用指标,配合时间范围筛选的方式进行聚合获得该值结果

指标时段汇总

查询指标的分布时,可以使用日期作为维度,通过 维度+粒度 的快速方法,切换查询的日期粒度

!!! note "metric_time_[ year | quarter | month | week | day | {N}hour | {N}minute  ]

小时、分钟支持切换统计的步长,比如 3hour,表示以0小时开始,每3个小时为一个区间划分。比如 02 小时,会被归类到 00 小时范围中。" metric_time_[ year | quarter | month | week | day | {N}hour | {N}minute  ]

小时、分钟支持切换统计的步长,比如 3hour,表示以0小时开始,每3个小时为一个区间划分。比如 02 小时,会被归类到 00 小时范围中。

指标累计趋势

查询指标的累计趋势时,需要为指标添加临时的时间限定,再通过 维度+粒度 的快速方法,得到多行的数据结果。

!!! note "系统内置了三种为指标添加时间限定的方法,分别为:

类型 语法写法
近N日 image.png 近7日:ordercounts__period__7d
本日至今 image.png 本年至今(日):ordercounts__period__ytd 本日至今(5min):ordercounts__period__dt5min
当前 image.png 本年:ordercounts__period__cy 当前5min:ordercounts__period__c5min
系统内置了三种为指标添加时间限定的方法,分别为:
类型 语法写法
近N日 image.png 近7日:ordercounts__period__7d
本日至今 image.png 本年至今(日):ordercounts__period__ytd 本日至今(5min):ordercounts__period__dt5min
当前 image.png 本年:ordercounts__period__cy 当前5min:ordercounts__period__c5min
## 使用约束
  1. 由于查询性能限制,当前指标暂不支持秒粒度进行分析和查看,最小粒度为分钟,即 最小为 metric_time__minute

  2. 为指标添加快捷时间限定后,需要保证查询的维度与该时间限定的粒度一致。

    1. 比如:ordercounts__period__dt5min(本日至当前5min),该指标的时间粒度为5min,查询时要使用 metric_time__5minute作为维度进行分析。
  3. 注意查询中使用到的 metirc_time 的粒度