SQL on log 同比分析各種指標

2021-09-20 05:04:36 字數 1925 閱讀 5094

在業務分析,以及線上監控中,我們常常遇到這些需求:

對比分析今天的uv和昨天的uv,以及增長率。

對比分析今天每個小時的pv,和昨天每個小時的pv,進行對比畫圖。

最近15分鐘和上乙個15分鐘對比,如果pv下降,立即簡訊通知告警。

同比函式用於把當前區間的計算結果和之前乙個指定區間的結果進行比較。

value為double或long型別,time_window為秒。比較當前視窗計算出來的value值和 time_window計算出來的結果進行比較,返回值為陣列型別,分別是當前值,time_window之前的值,當前相對於之前的增長比例。

樣例:查詢的起止時間為: from=2018-7-25 14:00:00, to=2018-07-25 15:00:00

* | select compare( pv , 86400) from (select count(1)  as pv from log)
引數中86400表示當前視窗減去86400秒

返回結果:

[9.0,19.0,0.47368421052631579]

其中9.0為從`2018-7-25 14:00:00`到`2018-07-25 15:00:00`的pv值。

19.0表示`2018-7-24 14:00:00`到`2018-07-24 15:00:00`的pv值。

0.47368421052631579表示當前視窗相對於之前視窗的比值。

如果要把陣列展開成3列數字,需要這樣寫:

* | select diff[1],diff[2],diff[3] from(select compare( pv , 86400) as diff from (select count(1)  as pv from log))
查詢的起止時間為:from=2018-7-25 14:00:00, to=2018-07-25 15:00:00:

*| select t, compare( pv , 86400) as diff  from (select count(1)  as pv, date_format(from_unixtime(__time__), '%h:%i') as t from log group by t) group by t order by t
輸出結果:

tdiff

14:00

[9520.0,7606.0,1.2516434393899554]

14:01

[8596.0,8553.0,1.0050274757395066]

14:02

[8722.0,8435.0,1.0340248962655603]

14:03

[7499.0,5912.0,1.2684370771312586]

其中diff列的內容是乙個陣列,分別表示當前視窗的pv值,之前視窗的pv值,當前視窗/之前視窗的比例。

若要展開成曲線,則這樣寫:

*|select t, diff[1] as current, diff[2] as yestoday, diff[3] as percentage from(select t, compare( pv , 86400) as diff  from (select count(1)  as pv, date_format(from_unixtime(__time__), '%h:%i') as t from log group by t) group by t order by t)
結果可以配置成曲線圖,兩條曲線分別代表今天的值,昨天的值:

使用商業智慧型分析系統進行同比 定比 環比分析

財務分析指標中,存貨周轉率衡量企業營運能力的重要指標之一,通常,我們按照下述方法是用該指標 在企業財務分析中,有乙個重要的分析方法,就是趨勢分析法。即將兩期或連續數期財務報告中某一指標進行對比,確定其增減變動的方向 數額和幅度,以該指標的變動趨勢。趨勢分析法中的指標,有同比分析 定比 定基比 分析和...

io對比分析

1 同步阻塞io 使用者執行緒通過系統呼叫read發起io讀操作,由使用者空間轉到核心空間。核心等到資料報到達後,然後將接收的資料拷貝到使用者空間,完成read操作。使用者執行緒使用同步阻塞io模型的偽 描述為 2同步非阻塞io 使用者執行緒系統系統呼叫read 後直接返回,然後通過不斷輪訓的方式,...

開源License對比分析

bsd開源協議 original bsd license freebsd license original bsd license bsd開源協議是乙個給於使用者很大自由的協議。基本上使用者可以 為所欲為 可以自由的使用,修改源 也可以將修改後的 作為開源或者專有軟體再發布。但 為所欲為 的前提當你...