すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:SPL 関数

最終更新日:Nov 09, 2025

Logstore の時系列データを構造化プロセス言語 (SPL) 命令を使用して処理した後、時系列 SPL 関数を呼び出して結果を視覚化できます。

関数リスト

関数名

説明

second_to_nano

時間変換関数。秒レベルのタイムスタンプをナノ秒レベルのタイムスタンプに変換します。この関数は、高精度のシナリオに適しています。

series_forecast

時系列予測関数。既存データに基づいて将来のトレンドを予測します。この関数は、モニタリング、分析、計画に適しています。

series_pattern_anomalies

異常検出関数。機械学習アルゴリズムを使用して、時系列の異常なポイントまたはパターンを識別します。この関数は、モニタリング、アラート、データ分析などのシナリオに適しています。

series_decompose_anomalies

時系列分解および異常検出関数。時系列分解アルゴリズムを使用して、生データをトレンド、季節性、残差コンポーネントに分割します。次に、統計的手法を使用して残差コンポーネントを分析し、異常なポイントを識別します。この関数は、リアルタイムモニタリング、根本原因分析、データ品質検出などのシナリオに適しています。

series_drilldown

時系列分析のためのドリルダウン関数。時間でグループ化された統計に基づいて、特定の期間内のデータを詳細に分析できます。

cluster

複数の時系列またはベクトルデータの迅速なグループ分析をサポートします。類似した形状のメトリック曲線を識別したり、異常なパターンを検出したり、データパターンを分類したりできます。

series_describe

時系列分析のための関数。この関数は、時系列を複数のディメンションから分析し、結果を返します。結果には、データが連続しているかどうか、欠損データのステータス、シーケンスが安定しているかどうか、シーケンスに周期性とその期間の長さがあるかどうか、シーケンスに有意なトレンドがあるかどうかなどが含まれます。

correlation

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
  • 出力

    image

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)
  • 出力

    image

アルゴリズムパラメーター

パラメーター

説明

"pred":"10min"

期待される予測結果のデータポイント間の間隔。サポートされている単位は次のとおりです:

D        daily frequency
H        hourly frequency
T, min   minutely frequency
S        secondly frequency

"uncertainty_config": {"interval_width": 0.9999}

  • `uncertainty_config.interval_width` の値は (0, 1) の範囲内である必要があります。値が大きいほど、予測結果の上限と下限の間の範囲が広くなります。

"seasonality_config":

{"seasons": [{"name": "month", "period": 30.5, "fourier_order": 1}]}

  • `seasonality_config.seasons` パラメーターには、カスタムの時系列期間が含まれます。

    • name: 期間の名前。

    • periods: 各期間の日数。

    • fourier_order: 期間の適合強度。

  • サービスは、日次、週次、年次の期間のデフォルト設定を提供します。他の期間を適合させるには、`seasonality_config.seasons` で設定します。

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)
  • 出力

    image

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
  • 出力

    image

アルゴリズムパラメーター

パラメーター

説明

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 であり、resourcetest であることを示します。

        {
          "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
  • 出力

    image

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 アルゴリズムのパラメーターを調整するための最適化メソッドと提案を示します:

  1. **n_clusters** (クラスター数): 現在の値は 5 です。エルボー法を使用して適切なクラスター数を選択します。二乗誤差の合計 (SSE) の傾向を観察し、結果に基づいて値を 3、7、または別の値に調整します。

  2. **max_iter** (最大反復回数): 現在の値は 100 です。大規模なデータセットの場合、収束を確実にするために反復回数を増やす必要がある場合があります。結果が早期に安定する場合は、この値を減らして計算リソースを節約できます。値は通常 100 から 300 の範囲です。

  3. **tol** (収束の Toleration): このパラメーターは、アルゴリズムの収束条件を制御し、クラスターセンターの変化のしきい値を定義します。高精度の要件がある場合は、値を 0.00001 に減らすことができます。大規模なデータセットの場合は、値を 0.001 に増やして効率を向上させることができます。計算効率と精度のバランスを取る必要があります。

  4. **init_mode** (初期化モード): 現在の値は `kmeans++` で、通常は良好な初期クラスターセンターを提供します。必要に応じて `random` 初期化を試すことができますが、より多くの反復が必要になる場合があります。初期クラスターセンターが結果に大きな影響を与える場合は、さまざまな初期化戦略を検討してください。

  5. **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
  • 出力

    image

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

任意。アルゴリズムパラメーター。以下にデフォルトのパラメーターを示します。パラメーターをカスタマイズすることもできます。

  • "with_period": "True": 周期検出を有効にするかどうかを指定します。`True` は周期検出が有効であることを示します。

  • "with_stable": "True": 安定性検出を有効にするかどうかを指定します。`True` は安定性検出が有効であることを示します。

  • "with_trend": "True": シーケンスのトレンド検出を有効にするかどうかを指定します。`True` はトレンド検出が有効であることを示します。

例: series_describe(__ts__, __ds__, '{"with_period": "True"}')

戻り値

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

分散。この例では、値は null で、分散が計算されていないか、該当しないことを示します。

min

最小値。

max

最大値。

median

中央値。

interval

時間間隔。この例では、値は null であり、間隔が計算されないか、適用できないことを示します。

missing_count

欠損値の数。

adf_test

ADF テストの結果。この例では、値は null であり、テストが実行されていないか、適用できないことを示します。

is_stable

データが安定しているかどうかを示します。これはブール値です。

period

期間です。この例では、値が null の場合、期間が検出されないか、パラメーターが適用できないことを示します。

trend

傾向。この例では、値は null であり、傾向が検出されないか、パラメーターが該当しないことを示します。

  • 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)
  • 出力

    image

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" を使用できます。

有効な値:

  • Pearson: ピアソン相関係数。2 つの連続変数間の線形関係を測定します。

  • SpearmanRank: スピアマンの順位相関係数。2 つの順序付けられた変数間の単調な関係を測定して、それらの傾向が一致しているかどうかを確認します。

  • KendallTau: ケンドールのタウ順位相関係数。2 つの順序付けられた変数間の単調な関係を測定し、ソートの一貫性に焦点を当てます。

  • PointBiserial: 点双列相関係数。2 値カテゴリ変数と連続変数との関係を測定します。

varchar

はい

max_shift

最初の変数 (最初のパラメーターに対応するベクター) を左にシフトできる時系列ポイントの最大数。負の値は、最初の変数を右にシフトできることを示します。出力相関係数は、シフトが許可されている場合の最大相関係数です。

integer

いいえ。デフォルト値: 0。値 0 はシフトが許可されていないことを示します。

flag_shift_both_direction

有効な値:

  • true: 最初の変数を左または右に `|max_shift|` 時系列ポイントだけシフトできます。

  • false: 最初の変数は、`max_shift` の符号で指定された方向にのみシフトできます。

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 )
  • 出力

    image

例 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}' )
  • 出力

    image

例 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}')
  • 出力

    image