ログストアには多くの時系列データが含まれています。Simple Log Service は、時系列 SPL 命令と関数を使用して、このデータの処理を簡素化します。
時系列とは
時系列は、時間とメトリックディメンションシーケンスで構成される 2 次元データ構造であり、時間とともに変化する観測値のコレクションを表すのに適しています。これは表形式のデータに対応します。
時系列モデルとテーブルモデル
側面 | テーブルモデル | 時系列モデル |
データ構成 | 離散的な時点のレコード(行指向ストレージ) | 連続的な時系列(列指向ストレージ) |
クエリモード | 離散点に基づく集約計算 | スライドウィンドウなどの時系列操作をサポート |
ストレージ効率 | 低頻度の離散イベントに適しています | 高頻度の連続メトリックストレージ向けに最適化 |
例
NGINX アクセスログを分析する際に、URI ごとに 1 分あたりの平均応答時間を計算します。
テーブルモデル
*
| extend ts = to_unixtime(date_trunc('hour',date_parse(time_local, '%d/%b/%Y:%H:%i:%s')))
| stats avg_latency = avg(cast(upstream_response_time as double)) by ts,request_uri離散的な時点の集約結果の例:

時系列モデルの実装
*
| stats avg_latency=avg(cast(upstream_response_time as double)) by time_local, request_uri
| make-series avg_latency default = 'last'
on time_local
from 'sls_begin_time' to 'sls_end_time'
step '1m'
by request_uri連続的な時系列の可視化の例:

SPL 命令
SPL 命令は、表形式のデータを時系列データに変換するために使用されます。
命令 | 説明 |
表形式のデータを時系列データに構築します。 | |
SPL クエリ結果を可視化のためにチャートとしてレンダリングします。 |
SPL 関数
データが時系列に処理された後、SPL 関数を呼び出して可視化できます。
関数名 | 説明 |
時間変換関数: 秒レベルのタイムスタンプをナノ秒レベルに変換します。高精度のシナリオに適しています。 | |
時系列予測関数: 既存データに基づいて将来の傾向を予測します。監視、分析、計画に適しています。 | |
異常検出関数: 機械学習アルゴリズムに基づいて、時系列の異常な点やパターンを識別します。監視、アラート、データ分析のシナリオに適しています。 | |
時系列分解と異常検出関数: 時系列分解アルゴリズムに基づいて、元のデータをトレンド、季節性、残差成分に分割し、統計的手法を使用して残差成分を分析して異常を識別します。リアルタイム監視、根本原因分析、データ品質検出のシナリオに適しています。 | |
時系列分析のドリルダウン関数。時間グループ化された統計に基づいて、特定の期間内のデータをより詳細に分析できます。 | |
複数の時系列 (またはベクトルデータ) の迅速なグループ分析をサポートし、類似のメトリック曲線を識別したり、異常なパターンを検出したり、データパターンを分類したりします。 | |
時系列分析のための関数です。この関数は、時系列を複数のディメンションから分析し、データが連続しているかどうか、データの欠落ステータス、シーケンスが安定しているかどうか、シーケンスに周期性と周期の長さがあるかどうか、シーケンスに有意な傾向があるかどうかなどの結果を返します。 | |
2 つのオブジェクト間の類似度を計算するために使用されます。具体的な機能は次のとおりです。 1. 両方のオブジェクトが単一のベクトルの場合、2 つのシーケンス間の類似度を返します。 2. 一方のオブジェクトがベクトルグループで、もう一方が単一のベクトルの場合、ベクトルグループ内の各ベクトルと単一のベクトル間の類似度を返します。 3. 両方のオブジェクトがベクトルグループの場合、2 つのベクトルグループ間のペアワイズ類似度の行列を返します。 |