Logstore の時系列データを構造化プロセス言語 (SPL) 命令を使用して処理した後、時系列 SPL 関数を呼び出して結果を視覚化できます。
関数リスト
関数名 | 説明 |
時間変換関数。秒レベルのタイムスタンプをナノ秒レベルのタイムスタンプに変換します。この関数は、高精度のシナリオに適しています。 | |
時系列予測関数。既存データに基づいて将来のトレンドを予測します。この関数は、モニタリング、分析、計画に適しています。 | |
異常検出関数。機械学習アルゴリズムを使用して、時系列の異常なポイントまたはパターンを識別します。この関数は、モニタリング、アラート、データ分析などのシナリオに適しています。 | |
時系列分解および異常検出関数。時系列分解アルゴリズムを使用して、生データをトレンド、季節性、残差コンポーネントに分割します。次に、統計的手法を使用して残差コンポーネントを分析し、異常なポイントを識別します。この関数は、リアルタイムモニタリング、根本原因分析、データ品質検出などのシナリオに適しています。 | |
時系列分析のためのドリルダウン関数。時間でグループ化された統計に基づいて、特定の期間内のデータを詳細に分析できます。 | |
複数の時系列またはベクトルデータの迅速なグループ分析をサポートします。類似した形状のメトリック曲線を識別したり、異常なパターンを検出したり、データパターンを分類したりできます。 | |
時系列分析のための関数。この関数は、時系列を複数のディメンションから分析し、結果を返します。結果には、データが連続しているかどうか、欠損データのステータス、シーケンスが安定しているかどうか、シーケンスに周期性とその期間の長さがあるかどうか、シーケンスに有意なトレンドがあるかどうかなどが含まれます。 | |
2 つのオブジェクト間の類似性を計算します。この関数は次の特徴を提供します: 1. 両方のオブジェクトが単一のベクターである場合、2 つのシーケンス間の類似性を返します。 2. 一方のオブジェクトがベクターのグループで、もう一方が単一のベクターである場合、グループ内の各ベクターと単一のベクターとの間の類似性を返します。 3. 両方のオブジェクトがベクターのグループである場合、2 つのベクターグループ間のペアごとの類似性のマトリックスを返します。 |
second_to_nano 関数
second_to_nano 関数は、タイムスタンプを秒からナノ秒に変換する時間変換関数です。通常、ログの時間フィールドを処理するために使用され、特に高精度のタイムスタンプが必要なシナリオで使用されます。
精度: データベースとアプリケーションがナノ秒レベルの時間データを処理するのに十分な精度をサポートしていることを確認してください。
データの型:
BIGINTなどの適切なデータの型を選択して、ナノ秒レベルのデータを格納し、オーバーフローや精度の低下を防ぎます。
構文
second_to_nano(seconds)パラメーター
パラメーター | 説明 |
seconds | 秒単位のタイムスタンプ。値は整数または浮動小数点数にすることができます。 |
戻り値
対応するタイムスタンプをナノ秒単位の整数として返します。
例
ナノ秒レベルで異なる期間における異なるリクエストの数をカウントします。
クエリおよび分析文
* | extend ts = second_to_nano(__time__) | stats count=count(*) by ts,request_method出力

series_forecast 関数
series_forecast 関数は時系列予測に使用されます。機械学習アルゴリズムを使用して、既存の時系列データに基づいて将来のデータポイントを予測します。この関数は、モニタリング、トレンド分析、容量計画などのシナリオでよく使用されます。
制限
make-series を使用して、データを series フォーマットで構築する必要があります。時間単位はナノ秒である必要があります。
各行には少なくとも 31 個のデータポイントが含まれている必要があります。
構文
series_forecast(array(T) field, bigint periods)または
series_forecast(array(T) field, bigint periods, varchar params)パラメーター
パラメーター | 説明 |
field | 入力時系列のメトリック列。 |
periods | 予測するデータポイントの数。 |
params | 任意。JSON フォーマットのアルゴリズムパラメーター。 |
戻り値
row(
time_series array(bigint),
metric_series array(double),
forecast_metric_series array(double),
forecast_metric_upper_series array(double),
forecast_metric_lower_series array(double),
forecast_start_index bigint,
forecast_length bigint,
error_msg varchar)列名 | 型 | 説明 |
time_series | array(bigint) | ナノ秒レベルのタイムスタンプの配列。入力期間と予測期間のタイムスタンプが含まれます。 |
metric_series | array(double) | `time_series` と同じ長さのメトリック配列。 元の入力メトリックは変更され (たとえば、NaN 値が変更されます)、予測期間は NaN 値で拡張されます。 |
forecast_metric_series | array(double) | `time_series` と同じ長さの予測結果の配列。 入力メトリックの適合値と予測期間の予測値が含まれます。 |
forecast_metric_upper_series | array(double) | 予測結果の上限の配列。長さは `time_series` と同じです。 |
forecast_metric_lower_series | array(double) | 予測結果の下限の配列。長さは `time_series` と同じです。 |
forecast_start_index | bigint | タイムスタンプ配列内の予測期間の開始インデックス。 |
forecast_length | bigint | タイムスタンプ配列内の予測期間のデータポイント数。 |
error_msg | varchar | エラーメッセージ。値が null の場合、時系列予測は成功です。それ以外の場合、値は失敗の理由を示します。 |
例
次の 10 データポイントについて、異なる request_method 値の数をカウントします。
SPL 文
* | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(status as double)), inflow_avg = min(cast (status as double)) by ts, request_method | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by request_method | extend test=series_forecast(inflow_avg, 10)出力

アルゴリズムパラメーター
パラメーター | 説明 |
"pred":"10min" | 期待される予測結果のデータポイント間の間隔。サポートされている単位は次のとおりです: |
"uncertainty_config": {"interval_width": 0.9999} |
|
"seasonality_config": {"seasons": [{"name": "month", "period": 30.5, "fourier_order": 1}]} |
|
series_pattern_anomalies 関数
series_pattern_anomalies 関数は、時系列データの異常なパターンを検出します。機械学習アルゴリズムを使用して、時系列内の異常なポイントまたはパターンを自動的に識別します。この関数は、モニタリング、アラート、データ分析などのシナリオに適しています。
制限
make-series を使用して、データを series フォーマットで構築する必要があります。時間単位はナノ秒である必要があります。
各行には少なくとも 11 個のデータポイントが含まれている必要があります。
構文
series_pattern_anomalies(array(T) metric_series)パラメーター
パラメーター | 説明 |
metric_series | 入力時系列のメトリック列。数値型のみがサポートされています。 |
戻り値
row(
anomalies_score_series array(double),
anomalies_type_series array(varchar)
error_msg varchar
) 列名 | 型 | 説明 |
anomalies_score_series | array(double) | 異常スコア系列。入力時系列に対応します。値は [0, 1] の範囲にあり、各データポイントの異常スコアを表します。 |
anomalies_type_series | array(varchar) | 異常タイプ記述系列。入力時系列に対応します。各データポイントの異常タイプを表します。通常のデータポイントは null として表されます。 |
error_msg | varchar | エラーメッセージ。値が null の場合、時系列異常検出は成功です。それ以外の場合、値は失敗の理由を示します。 |
例
現在のデータポイントでシーケンスの異常を検出します。
SPL 文
* | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(status as double)), inflow_avg = min(cast (status as double)) by ts, request_method | where request_method is not null | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by request_method | extend test=series_pattern_anomalies(inflow_avg)出力

series_decompose_anomalies 関数
series_decompose_anomalies 関数は、時系列の分解と異常検出に使用されます。時系列分解アルゴリズムを使用して、生の時系列データをトレンド、季節性、残差コンポーネントに分割します。次に、残差コンポーネントを分析して異常なポイントを検出します。
制限
make-series を使用して、データを series フォーマットで構築する必要があります。時間単位はナノ秒である必要があります。
各行には少なくとも 11 個のデータポイントが含まれている必要があります。
構文
series_decompose_anomalies(array(T) metric_series)または
series_decompose_anomalies(array(T) metric_series, varchar params)パラメーター
パラメーター | 説明 |
metric_series | 入力時系列のメトリック列。 |
params | 任意。JSON フォーマットのアルゴリズムパラメーター。 |
戻り値
row(
metric_baseline_series array(double)
anomalies_score_series array(double),
anomalies_type_series array(varchar)
error_msg varchar
) 列名 | 型 | 説明 |
metric_baseline_series | array(double) | アルゴリズムによって適合されたメトリックデータ。 |
anomalies_score_series | array(double) | 異常スコア系列。入力時系列に対応します。値は [0, 1] の範囲にあり、各データポイントの異常スコアを表します。 |
anomalies_type_series | array(varchar) | 異常タイプ記述系列。入力時系列に対応します。各データポイントの異常タイプを表します。通常のデータポイントは null として表されます。 |
error_msg | varchar | エラーメッセージ。値が null の場合、時系列異常検出は成功です。それ以外の場合、値は失敗の理由を示します。 |
例
すべての時系列で異常検出を実行した後、異常スコアが 0 以上の過去 5 分間の時系列を保持します。
SPL 文
* | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(status as double)), inflow_avg = min(cast (status as double)) by ts, request_method | where request_method is not null | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by request_method | extend test=series_decompose_anomalies(inflow_avg, '{"confidence":"0.005"}') | extend anomalies_score_series = test.anomalies_score_series | where array_max(slice(anomalies_score_series, -5, 5)) >= 0出力

アルゴリズムパラメーター
パラメーター | 型 | 例 | 説明 |
auto_period | varchar | "true" | 時系列期間の自動検出を有効にするかどうかを指定します。有効な値: "true" および "false"。このパラメーターを "true" に設定した場合、カスタムの `period_num` および `period_unit` パラメーターは有効になりません。 |
period_num | varchar | "[1440]" | シーケンス期間に含まれるデータポイントの数。複数の期間の長さを入力できます。サービスは最も長い期間のみを考慮します。 |
period_unit | varchar | "[\"min\"]" | シーケンス期間内の各データポイントの時間単位。複数の時間単位を入力できます。時間単位の数は、指定された期間の数と同じである必要があります。 |
period_config | varchar | "{\"cpu_util\": {\"auto_period\":\"true\", \"period_num\":\"720\", \"period_unit\":\"min\"}}" | 特徴ごとに異なる期間を設定するには、`period_config` フィールドを設定します。`period_config` では、フィールド名は設定する特徴の名前であり、フィールド値は `auto_period`、`period_num`、および `period_unit` フィールドを設定するオブジェクトです。 |
trend_sampling_step | varchar | "8" | 時系列分解中のトレンドコンポーネントのダウンサンプリングレート。値は正の整数である必要があります。サンプルレートが高いほど、トレンドコンポーネントの適合速度は速くなりますが、適合精度は低下します。デフォルト値: "1"。 |
season_sampling_step | varchar | "1" | 時系列分解中の季節性コンポーネントのダウンサンプリングレート。値は正の整数である必要があります。サンプルレートが高いほど、季節性コンポーネントの適合速度は速くなりますが、適合精度は低下します。デフォルト値: "1"。 |
batch_size | varchar | "2880" | 異常分析では、スライドウィンドウを使用してデータをセグメントで処理します。`batch_size` はウィンドウのサイズを指定します。ウィンドウサイズが小さいほど分析速度は向上しますが、精度が低下する可能性があります。デフォルトでは、ウィンドウサイズはシーケンス長と同じです。 |
confidence | varchar | "0.005" | 異常分析の感度です。値は (0, 1.0) の範囲の浮動小数点数である必要があります。値が小さいほど、アルゴリズムの異常に対する感度が低くなり、検出される異常の数が減少します。 |
confidence_trend | varchar | "0.005" | トレンドコンポーネントを分析するときの異常に対する秘密度。このパラメーターを設定すると、`confidence` パラメーターは無視されます。値が小さいほど、アルゴリズムはトレンドコンポーネントの異常に対して感度が低くなり、トレンドコンポーネントで検出される異常の数が減少します。 |
confidence_noise | varchar | "0.005" | 残差コンポーネントを分析するときの異常に対する秘密度。このパラメーターを設定すると、`confidence` パラメーターは無視されます。値が小さいほど、アルゴリズムは残差コンポーネントの異常に対して感度が低くなり、残差コンポーネントで検出される異常の数が減少します。 |
series_drilldown 関数
series_drilldown 関数は、時系列分析のためのドリルダウン関数です。時間でグループ化された統計に基づいて、特定の期間内のデータを詳細に分析できます。
構文
series_drilldown(array(varchar) label_0_array,array(varchar) label_1_array,array(varchar) label_2_array, ... ,array(array(bigint)) time_series_array,array(array(double)) metric_series_array,bigint begin_time,bigint end_time)または
series_drilldown(array(varchar) label_0_array,array(varchar) label_1_array,array(varchar) label_2_array, ... ,array(array(bigint)) time_series_array,array(array(double)) metric_series_array,bigint begin_time,bigint end_time,varchar config)パラメーター
パラメーター | 説明 |
label_x_array | 配列内の各要素は、対応する時系列のラベルです。関数のオーバーロードは、最大 7 つのラベル配列をサポートします。 |
time_series_array | 外側の配列の各要素は時系列です。 |
metric_sereis_array | 外側の配列の各要素はメトリック系列です。 |
begin_time | 根本原因のドリルダウンを実行する時間範囲の開始時刻。これは通常、異常の開始時刻に設定されます。単位はナノ秒です。 |
end_time | 根本原因のドリルダウンを実行する時間範囲の終了時刻。これは通常、異常の終了時刻に設定されます。単位はナノ秒です。 |
config | 任意。JSON フォーマットのアルゴリズムパラメーター。 |
戻り値
row(dirlldown_result varchar, error_msg varchar)列名 | 型 | 説明 |
dirlldown_result | varchar | JSON フォーマットのドリルダウン結果。 |
error_msg | varchar | エラーメッセージ。値が null の場合、時系列予測は成功です。それ以外の場合、値は失敗の理由を示します。 |
dirlldown_result パラメーターの説明
{
"attrs": [
{
"api": "/ids/ml/annotationdataset",
"resource": "test"
},
{
"api": "/console/logs/getLogs"
}
],
"statistics": {
"relative_ratio": 0.5003007763190033,
"relative_ratio_predict": 1.0000575873881987,
"unexpected_difference": -4.998402840764594,
"relative_unexpected_difference": -0.499660063545782,
"difference": -4.999183856137503,
"predict": 5.005203022057271,
"relative_ratio_real": 1.9987568734256989,
"real": 10.004386878194774,
"support": 50
}
}attrs パラメーターの説明
このパラメーターは、統計結果に対応するディメンションフィルタリング条件を識別します。配列内の条件は OR 関係で評価されます。
この例では、
apiは/ids/ml/annotationdatasetまたは/console/logs/getLogsです。"attrs": [ { "api": "/ids/ml/annotationdataset", "resource": "test" }, { "api": "/console/logs/getLogs" } ]この例では、attrs の最初の要素は
apiが/ids/ml/annotationdatasetであり、resourceがtestであることを示します。{ "api": "/ids/ml/annotationdataset", "resource": "test" }
statistics パラメーターの説明
このパラメーターは、根本原因分析または異常検出のための時系列の統計分析結果を提供します。
メトリック名 | 型 | 説明 |
support | int | 現在の根本原因範囲内の統計サンプルサイズ (データポイント数など)。 |
real | float | 現在の根本原因範囲内のメトリックの実際の観測値。 |
predict | float | 現在の根本原因範囲内のメトリックの予測値。 |
difference | float | 現在の根本原因範囲内のメトリックの実際の値と予測値の絶対差。式: `predict - real`。 |
unexpected_difference | float | 通常の変動 (期待される変化) を除いた後の予測値と実際の値の差。この値は、現在の根本原因範囲内の予期しない変化を示します。 |
relative_unexpected_difference | float | 現在の根本原因範囲内のメトリックの予期しない変化と期待される変化の比率。 |
relative_ratio | float | 現在の根本原因範囲内のメトリックの実際の値とベースライン値の比率。式: `predict / real`。 |
relative_ratio_predict | float | 現在の根本原因範囲内のメトリックの予測値と、根本原因範囲外のメトリックの予測値の比率。 |
relative_ratio_real | float | 現在の根本原因範囲内のメトリックの実際の値と、根本原因範囲外のメトリックの実際の値の比率。 |
例
SPL 文
* | extend ts= (__time__- __time__%60)*1000000000 | stats access_count = count(1) by ts, Method, ProjectName | extend access_count = cast( access_count as double) | make-series access_count = access_count default = 'null' on ts from 'sls_begin_time' to 'sls_end_time' step '1m' by Method, ProjectName | stats m_arr = array_agg(Method), ProjectName = array_agg(ProjectName), ts_arr = array_agg(__ts__), metrics_arr = array_agg(access_count) | extend ret = series_drilldown(ARRAY['Method', 'Project'], m_arr, ProjectName, ts_arr, metrics_arr, 1739192700000000000, 1739193000000000000, '{"fill_na": "1", "gap_size": "3"}') | project ret出力

cluster 関数
cluster 関数は、複数の時系列またはベクトルデータの迅速なグループ分析をサポートします。類似した形状のメトリック曲線を識別したり、異常なパターンを検出したり、データパターンを分類したりできます。
構文
cluster(array(array(double)) array_vector, varchar cluster_mode,varchar params)パラメーター
パラメーター | 説明 |
array_vector | 2 次元のベクター。各行のベクターの長さが同じであることを確認する必要があります。 |
cluster_mode | クラスタリングモデル。Simple Log Service は 2 つのモデルを提供します: |
params | アルゴリズムパラメーターは、クラスタリングモデルによって異なります。 |
クラスタリングモデル
kmeans
{
"n_clusters": "5",
"max_iter": "100",
"tol": "0.0001",
"init_mode": "kmeans++",
"metric": "cosine/euclidean"
}以下に、k-means アルゴリズムのパラメーターを調整するための最適化メソッドと提案を示します:
**n_clusters** (クラスター数): 現在の値は 5 です。エルボー法を使用して適切なクラスター数を選択します。二乗誤差の合計 (SSE) の傾向を観察し、結果に基づいて値を 3、7、または別の値に調整します。
**max_iter** (最大反復回数): 現在の値は 100 です。大規模なデータセットの場合、収束を確実にするために反復回数を増やす必要がある場合があります。結果が早期に安定する場合は、この値を減らして計算リソースを節約できます。値は通常 100 から 300 の範囲です。
**tol** (収束の Toleration): このパラメーターは、アルゴリズムの収束条件を制御し、クラスターセンターの変化のしきい値を定義します。高精度の要件がある場合は、値を 0.00001 に減らすことができます。大規模なデータセットの場合は、値を 0.001 に増やして効率を向上させることができます。計算効率と精度のバランスを取る必要があります。
**init_mode** (初期化モード): 現在の値は `kmeans++` で、通常は良好な初期クラスターセンターを提供します。必要に応じて `random` 初期化を試すことができますが、より多くの反復が必要になる場合があります。初期クラスターセンターが結果に大きな影響を与える場合は、さまざまな初期化戦略を検討してください。
**metric** (cosine/euclidean):
**cosine** (余弦類似度): ベクトル間の角度の余弦を計算して、方向の類似性を測定します。このメトリックは、テキスト埋め込みや画像特徴ベクトルなどの高次元データ、およびレコメンデーションシステムなどの類似性マッチングタスクに適しています。データが単位ベクトルに正規化されると、余弦類似度は内積と等価になります。
**euclidean** (ユークリッド距離): 2 点間の直線距離を計算して、絶対距離の差を測定します。このメトリックは、座標点などの低次元空間における幾何学的問題や、k-means クラスタリングや k-最近傍分類または回帰などの距離に敏感なタスクに適しています。また、データの絶対値の差を保持する必要があるシナリオにも適しています。
dbscan
{
"epsilon": "0.1", // 注: epsilon の値が 0 以下の場合、アルゴリズムはこのパラメーターを自動的に推測します。
"min_samples": "5"
}Density-Based Spatial Clustering of Applications with Noise (DBSCAN) アルゴリズムには、クラスターの密度基準を定義する 2 つの主要なパラメーター、epsilon (ε) と min_samples があります:
epsilon (
ε): 点の近傍範囲を定義して、点が隣接しているかどうかを判断します。ε 値が小さいとノイズポイントが多くなり、ε 値が大きいと無関係な点がマージされる可能性があります。適切な ε 値は、通常、k-距離グラフのエルボーポイントを観察して選択されます。min_samples: 密なクラスターを形成するために必要な最小点数を定義します。値が高いほどアルゴリズムは厳密になり、クラスターの数が減り、ノイズポイントの数が増えます。値が低いと、密度の低いエリアが含まれる可能性があります。値は通常、データのディメンションに基づいて選択されます。たとえば、2 次元データの場合は値を 4 または 5 に設定できます。
これら 2 つのパラメーターは、クラスターの形成方法とノイズポイントの識別方法を birlikte 決定します。DBSCAN の利点は、クラスターの数を指定しなくても、任意の形状のクラスターを識別できることです。ただし、そのパフォーマンスはパラメーターの選択に非常に敏感です。通常、最適なクラスタリング結果を得るには、実験とデータ特性に基づいてパラメーターを調整する必要があります。
戻り値
row(
n_clusters bigint,
cluster_sizes array(bigint),
assignments array(bigint),
error_msg varchar
)列名 | 型 | 説明 |
n_clusters | bigint | 返されたクラスタリング結果のクラスター数。 |
cluster_sizes | array(bigint) | 各クラスターセンターに含まれるサンプル数。 |
assignments | array(bigint) | 各入力サンプルが属するクラスターの ID。 |
error_msg | varchar | 呼び出しが失敗した場合に返されるエラーメッセージ。 |
例
SPL 文
* and __tag__:__job__: sql-calculate-metric | extend time = cast(time as bigint) - cast(time as bigint) % 300 | extend time = second_to_nano(time) | stats avg_latency = avg(cast(sum_latency as double)) by time, Method | make-series avg_latency = avg_latency default = '0' on time from 'sls_begin_time' to 'sls_end_time' step '5m' by Method | stats method_array = array_agg(Method), ts_array = array_agg(__ts__), ds_array = array_agg(avg_latency) | extend ret = cluster(ds_array, 'kmeans', '{"n_clusters":"5"}') | extend n_clusters = ret.n_clusters, cluster_sizes = ret.cluster_sizes, assignments = ret.assignments, error_msg = ret.assignments出力

series_describe 関数
series_describe 関数は時系列分析に使用されます。この関数は、時系列を複数のディメンションから分析し、結果を返します。結果は、データが連続しているかどうか、欠損データのステータス、シーケンスが安定しているかどうか、シーケンスに周期性とその期間の長さがあるかどうか、シーケンスに有意なトレンドがあるかどうかを示します。
制限
make-series を使用して、データを `series` フォーマットで構築する必要があります。時間単位はナノ秒である必要があります。
構文
series_describe(__ts__ array<bigint>, __ds__ array<double>)または
series_describe(__ts__ array<bigint>, __ds__ array<double>,config varchar)パラメーター
パラメーター | 説明 |
__ts__ | 時系列の各データポイントのナノ秒単位の Unix タイムスタンプを表す単調増加の時系列。 |
__ds__ | 浮動小数点数型の数値シーケンス。対応するデータポイントの数値を表し、時系列と同じ長さを持ちます。 |
config | 任意。アルゴリズムパラメーター。以下にデフォルトのパラメーターを示します。パラメーターをカスタマイズすることもできます。
例: |
戻り値
row(statistic varchar, error_msg varchar)列名 | 型 | 説明 |
statistic | varchar | シーケンスの統計情報を保存するために使用される JSON シリアル化文字列。 |
cluster_sizes | array(bigint) | 各クラスターセンターに含まれるサンプル数。 |
statistic の例
返される結果は JSON シリアル化文字列です。
{
"duplicate_count": 0,
"total_count": 1,
"mean": 3.0,
"variance": null,
"min": 3.0,
"max": 3.0,
"median": 3.0,
"interval": null,
"missing_count": 0,
"adf_test": null,
"is_stable": false,
"period": null,
"trend": null
}パラメーター | 説明 |
duplicate_count | 重複値の数。 |
total_count | データポイントの総数。 |
mean | 平均値。 |
variance | 分散。この例では、値は |
min | 最小値。 |
max | 最大値。 |
median | 中央値。 |
interval | 時間間隔。この例では、値は |
missing_count | 欠損値の数。 |
adf_test | ADF テストの結果。この例では、値は null であり、テストが実行されていないか、適用できないことを示します。 |
is_stable | データが安定しているかどうかを示します。これはブール値です。 |
period | 期間です。この例では、値が |
trend | 傾向。この例では、値は |
例
SPL 文
* and entity.file_name: "239_UCR_Anomaly_taichidbS0715Master.test.csv" | extend time = cast(__time__ as bigint) | extend time = time - time % 60 | stats value = avg(cast(value as double)) by time | extend time = second_to_nano(time) | make-series value = value default = 'nan' on time from 'min' to 'max' step '1m' | extend ret = series_describe(value)出力

correlation 関数
correlation 関数は 2 つのオブジェクト間の類似性を計算します。関数の動作は入力によって異なります:
制限
入力パラメーターは、make-series を使用して構築された `series` フォーマットのデータである必要があります。
構文
オーバーロード 1
correlation(arr_1 array(double), arr_2 array(double), params varchar)オーバーロード 2
correlation(arr_arr_1, array(array(double)), arr_2 array(double), params varchar)過負荷 3
correlation(arr_arr_1 array(array(double)), arr_arr_2 array(array(double)), params varchar)
パラメーター
オーバーロード 1
パラメーター
説明
arr_1
時系列。make-series によって生成された単一のユニットです。
arr_2
時系列。make-series によって生成された単一のユニットです。
params
任意。JSON フォーマットのアルゴリズムパラメーター。
オーバーロード 2
パラメーター
説明
arr_arr_1
make-series によって生成された単一のユニットである時系列は、array_agg 関数を使用して処理され、2 次元配列として返されます。
arr_2
時系列。make-series によって生成された単一のユニットです。
params
任意。JSON フォーマットのアルゴリズムパラメーター。
オーバーロード 3
パラメーター
説明
arr_arr_1
make-series によって生成された単一のユニットである時系列は、array_agg 関数を使用して処理され、2 次元配列として返されます。
arr_arr_2
make-series によって生成された単一のユニットである時系列は、array_agg 関数を使用して処理され、2 次元配列として返されます。
params
任意。JSON フォーマットのアルゴリズムパラメーター。
アルゴリズムパラメーター
パラメーター名 | パラメーターの説明 | パラメーターの型 | 必須 |
measurement | 相関係数を計算するために使用されるメソッド。ほとんどの場合、"Pearson" を使用できます。 有効な値:
| varchar | はい |
max_shift | 最初の変数 (最初のパラメーターに対応するベクター) を左にシフトできる時系列ポイントの最大数。負の値は、最初の変数を右にシフトできることを示します。出力相関係数は、シフトが許可されている場合の最大相関係数です。 | integer | いいえ。デフォルト値: 0。値 0 はシフトが許可されていないことを示します。 |
flag_shift_both_direction | 有効な値:
| boolean | いいえ。デフォルト値: "false"。 |
戻り値
オーバーロード 1
row(result double)列名
型
説明
result
double
入力パラメーター `arr_1` と `arr_2` の間の相関係数。
オーバーロード 2
row(result array(double))列名
型
説明
result
array(double)
`arr_arr_1` の各ベクターと `arr_2` の間の相関係数の配列。返される配列の長さは、`arr_arr_1` のベクターの数です。
オーバーロード 3
row(result array(array(double)))列名
型
説明
result
array(array(double))
マトリックス。データが空でない場合、行 i と列 j の要素は `arr_arr_1[i]` と `arr_arr_2[j]` の間の相関係数です。
例
例 1
SPL 文
* | where Method != 'GetProjectQuery' | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(avg_latency as double)), inflow_avg = min(cast (sum_inflow as double)) by ts, Method | make-series latency_avg default = 'next', inflow_avg default = 'next' on ts from 'sls_begin_time' to 'sls_end_time' step '1m' by Method | extend correlation_scores = correlation( latency_avg, inflow_avg )出力

例 2
SPL 文
* | where Method='GetProjectQuery' | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(avg_latency as double)), inflow_avg = min(cast (sum_inflow as double)) by ts, Method | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by Method | extend scores = correlation( latency_avg, inflow_avg, '{"measurement": "SpearmanRank", "max_shift": 4}' )出力

例 3
SPL 文
* | where Method='GetProjectQuery' | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(avg_latency as double)), inflow_avg = min(cast (sum_inflow as double)) by ts, Method | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by Method | extend scores = correlation( latency_avg, inflow_avg, '{"measurement": "KendallTau", "max_shift": 5, "flag_shift_both_direction": true}')出力
