Simple Log Service (SLS) は、Logstore 内の時系列データを処理するための時系列 SPL 命令と関数を提供します。
シリーズとは
シリーズとは、時間ディメンションのシーケンスとメトリックディメンションのシーケンスで構成される 2 次元のデータ構造であり、時間の経過とともに変化する観測値を表します。シリーズの対になる概念は、表形式データです。
テーブルモデルとの比較
|
観点 |
テーブルモデル |
シリーズモデル |
|
データ構成 |
離散的な時点のレコード (行ストレージ) |
連続的な時系列 (列ストレージ) |
|
クエリモード |
離散点に基づく集計計算 |
スライディングウィンドウなどの時系列操作をサポート |
|
ストレージ効率 |
低頻度の離散イベントに適しています |
高頻度の連続メトリックストレージに最適化されています |
例
次の例では、NGINX アクセスログから URI ごとに 1 分あたりの平均レスポンスタイムを計算します。
テーブルモデル
*
| extend ts = to_unixtime(date_trunc('minute',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 関数
データが make-series を使用してシリーズに変換された後、SPL 関数を適用して可視化できます。
関数名 | 説明 |
時間変換関数。秒レベルのタイムスタンプをナノ秒レベルのタイムスタンプに変換します。この関数は、高精度のシナリオに適しています。 | |
時系列予測関数。既存データに基づいて将来のトレンドを予測します。この関数は、モニタリング、分析、計画に適しています。 | |
異常検出関数。機械学習アルゴリズムを使用して、時系列の異常なポイントまたはパターンを識別します。この関数は、モニタリング、アラート、データ分析などのシナリオに適しています。 | |
時系列分解および異常検出関数。時系列分解アルゴリズムを使用して、生データをトレンド、季節性、残差コンポーネントに分割します。次に、統計的手法を使用して残差コンポーネントを分析し、異常なポイントを識別します。この関数は、リアルタイムモニタリング、根本原因分析、データ品質検出などのシナリオに適しています。 | |
時系列分析のためのドリルダウン関数。時間でグループ化された統計に基づいて、特定の期間内のデータを詳細に分析できます。 | |
複数の時系列またはベクトルデータの迅速なグループ分析をサポートします。類似した形状のメトリック曲線を識別したり、異常なパターンを検出したり、データパターンを分類したりできます。 | |
時系列分析のための関数。この関数は、時系列を複数のディメンションから分析し、結果を返します。結果には、データが連続しているかどうか、欠損データのステータス、シーケンスが安定しているかどうか、シーケンスに周期性とその期間の長さがあるかどうか、シーケンスに有意なトレンドがあるかどうかなどが含まれます。 | |
2 つのオブジェクト間の類似性を計算します。この関数は次の特徴を提供します: 1. 両方のオブジェクトが単一のベクターである場合、2 つのシーケンス間の類似性を返します。 2. 一方のオブジェクトがベクターのグループで、もう一方が単一のベクターである場合、グループ内の各ベクターと単一のベクターとの間の類似性を返します。 3. 両方のオブジェクトがベクターのグループである場合、2 つのベクターグループ間のペアごとの類似性のマトリックスを返します。 |