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

Simple Log Service:SPL 関数

最終更新日:Jun 21, 2026

Logstore 内の時系列データ を SPL インストラクションで処理した後、時系列 SPL 関数で結果を可視化できます。

関数リスト

関数

説明

second_to_nano

タイムスタンプを秒からナノ秒に変換します。高精度の用途に最適です。

series_forecast

履歴データから将来の傾向を予測します。モニタリング、分析、計画に使用します。

series_pattern_anomalies

機械学習を用いて、時系列内の異常を特定します。モニタリング、アラート、データ分析に最適です。

series_decompose_anomalies

時系列を傾向、季節性、残差成分に分解し、統計手法で残差成分を分析して異常を特定します。リアルタイムモニタリング、根本原因分析、データ品質の検出に最適です。

series_drilldown

時系列をドリルダウンし、時間単位でグループ化した統計情報に基づいて特定の期間を詳細に分析できるようにします。

cluster

複数の時系列またはベクターデータに対して迅速にグループ分析を実行し、形状が類似したメトリック曲線を特定したり、異常パターンを検出したり、データパターンを分類したりします。

series_describe

データの連続性、データの欠損、安定性、周期性、顕著な傾向など、複数の観点から時系列を分析します。

correlation

2 つのオブジェクト間の類似度を計算します。ベクター同士、またはベクターとベクターのグループを比較できます。また、2 つのベクターグループの類似度マトリックスを返すこともできます。

second_to_nano

タイムスタンプを秒からナノ秒に変換します。この関数は通常、ログ内の時刻フィールドを処理するために使用され、特に高精度タイムスタンプが必要なシナリオで役立ちます。

重要
  • 精度: データベースとアプリケーションが、ナノ秒レベルの時刻データを処理するための十分な精度に対応していることを確認してください。

  • データ型: オーバーフローや精度の損失を防ぐために、BIGINT などの適切なデータ型を選択してナノ秒レベルのデータを格納してください。

構文

second_to_nano(seconds)

パラメーター

パラメーター

説明

seconds

秒単位のタイムスタンプ。値は整数または浮動小数点数を指定できます。

戻り値

ナノ秒単位のタイムスタンプを整数として返します。

異なる期間にわたるリクエストを、メソッド別にナノ秒レベルでカウントします。

  • クエリ

    * | extend ts = second_to_nano(__time__)
    | stats count=count(*) by ts,request_method
  • 出力

    クエリは ts、request_method、count の 3 列を返します。例えば、クエリが 7 行を返し、ナノ秒レベルのタイムスタンプとリクエストメソッドごとに集計された各グループのカウントが 5 になることがあります。

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 値は時系列予測が成功したことを示します。それ以外の場合は、失敗の理由を示します。

request_method ごとに、次の 10 時点の inflow_avg 値を予測します。

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

    クエリは request_method でグループ化された 2 行を返します。GET リクエストの場合、latency_avg は 200.0 です。POST リクエストの場合、latency_avg は 500.0 です。いずれのリクエストタイプでも、inflow_avg は 200.0 です。出力には、タイムスタンプ配列である _ts_ 列と、予測結果を含む test 列も含まれます。

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

パラメーター

説明

"pred":"10min"

予測結果におけるデータポイント間の間隔です。サポートされる単位:

D        日次
H        時間単位
T, min   分単位
S        秒単位

"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:周期名です。

    • period:周期の日数です。

    • fourier_order:フーリエ次数です。

  • サービスは、デフォルトで日次、週次、年次の周期をサポートします。それ以外の周期にフィットさせる場合は、seasonality_config.seasons で設定してください。

series_pattern_anomalies 関数

series_pattern_anomalies 関数は、機械学習アルゴリズムを使用して時系列データ内の異常なパターンを検出します。この関数は、モニタリング、アラート、データ分析に役立ちます。

制限事項

  • make-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 値は異常検出が成功したことを示します。それ以外の場合、このフィールドには失敗を説明するメッセージが含まれます。

この例では、series_pattern_anomalies 関数を使用して時系列の異常を検出する方法を示します。

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

    クエリ結果は request_method でグループ化され、latency_avginflow_avgtsrequest_methodtest の 5 つの列が含まれます。latency_avg は、POST リクエストでは 500.0、GET リクエストでは 200.0 です。inflow_avg は両方とも 200.0 です。test 列には、series_pattern_anomalies 関数からの構造化された結果が含まれます。

series_decompose_anomalies 関数

series_decompose_anomalies 関数は、時系列をトレンド、季節性、残差の各コンポーネントに分解することで異常を検出します。その後、残差コンポーネントを分析することで異常点を識別します。

制限事項

  • make-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 の場合は、異常検出が成功したことを示します。それ以外の場合、この値は失敗の理由を示します。

この例では、すべての時系列で異常を検出し、直近 5 分間の最大異常スコアが 0 以上の系列のみを返します。

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

    クエリ結果には 5 つの列が含まれます:latency_avginflow_avgrequest_methodtest (予測値)、anomalies_score_series (異常スコア)。GET および POST リクエストメソッドに対して 2 行が返されます。test 列の値は 200 に近いベースライン値の配列です。anomalies_score_series 列の値は 0 に近く、異常が検出されなかったことを示しています。

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

パラメーター

説明

auto_period

varchar

"true"

時系列の周期を自動的に検出するかどうかを指定します。有効な値は truefalse です。true に設定した場合、period_num および period_unit パラメーターは無視されます。

period_num

varchar

"[1440]"

1 周期あたりのデータポイント数。複数の長さを指定できます。最も長いものだけが使用されます。

period_unit

varchar

"[\"min\"]"

周期の時間単位。複数の時間単位を指定できます。時間単位の数は、指定した周期の長さの数と同じにする必要があります。

period_config

varchar

"{\"cpu_util\": {\"auto_period\":\"true\", \"period_num\":\"720\", \"period_unit\":\"min\"}}"

異なる特徴に対して異なる周期を設定します。値は JSON オブジェクトで、各キーは特徴名、各値は auto_periodperiod_numperiod_unit フィールドを含むオブジェクトです。

trend_sampling_step

varchar

"8"

時系列分解におけるトレンドコンポーネントのダウンサンプリング率。値は正の整数である必要があります。レートが高いほどトレンドコンポーネントの適合が速くなりますが、精度が低下する可能性があります。デフォルト値は 1 です。

season_sampling_step

varchar

"1"

時系列分解における季節性コンポーネントのダウンサンプリング率。値は正の整数である必要があります。レートが高いほど季節性コンポーネントの適合が速くなりますが、精度が低下する可能性があります。デフォルト値は 1 です。

batch_size

varchar

"2880"

異常分析のためのスライディングウィンドウのサイズ。ウィンドウサイズが小さいほど分析速度が向上しますが、精度が低下する可能性があります。デフォルトでは、ウィンドウサイズはシーケンスの長さです。

confidence

varchar

"0.005"

異常分析の感度。(0, 1.0) の範囲の値で指定します。値が小さいほど感度が低くなり、検出される異常が少なくなります。

confidence_trend

varchar

"0.005"

トレンドコンポーネントの異常に対する感度。設定した場合、confidence パラメーターを上書きします。値が小さいほど感度が低くなり、検出される異常が少なくなります。

confidence_noise

varchar

"0.005"

残差コンポーネントの異常に対する感度。設定した場合、confidence パラメーターを上書きします。値が小さいほど感度が低くなり、検出される異常が少なくなります。

series_drilldown

この関数は、時間でグループ化された統計情報に基づき、時系列のドリルダウンを実行し、特定の期間内のデータをきめ細かく分析します。

構文

series_drilldown(array(varchar) label_name_array, 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_name_array, 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_series_array

外側の配列の各要素はメトリック系列です。

begin_time

根本原因のドリルダウンの開始時刻です。通常はアノマリーの開始時刻に設定します。単位はナノ秒です。

end_time

根本原因のドリルダウンの終了時刻です。通常はアノマリーの終了時刻に設定します。単位はナノ秒です。

config

オプション。JSON 形式で指定する、この関数の アルゴリズムパラメーター です。

戻り値

row(drilldown_result varchar, error_msg varchar)

列名

説明

drilldown_result

varchar

JSON 形式のドリルダウン結果です。

error_msg

varchar

エラーメッセージです。このフィールドが null の場合、操作は成功しています。それ以外の場合は、失敗の理由が示されます。

drilldown_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フィールド

このフィールドは、統計結果のディメンションフィルターを指定します。各オブジェクト内の条件は AND の関係にあり、配列内のオブジェクト同士は OR の関係にあります。

  • この例では、api の値が /ids/ml/annotationdataset で、resource の値が test の場合、または api の値が /console/logs/getLogs の場合にフィルターが一致します。

      "attrs": [
        {
          "api": "/ids/ml/annotationdataset",
          "resource": "test"
        },
        {
          "api": "/console/logs/getLogs"
        }
      ]
  • attrs の 1 つ目の要素は、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', 'ProjectName'], m_arr, ProjectName, ts_arr, metrics_arr, 1739192700000000000, 1739193000000000000, '{"fill_na": "1", "gap_size": "3"}')
    | project ret
  • 出力

    drilldown_result 列には、分析レコードの JSON が含まれます。この構造には、/ids/ml/annotationdataset/console/logs/getLogs などの関連する API パスを一覧表示する attrs 配列と、supportrealpredictdifferenceunexpected_differencerelative_unexpected_differencerelative_ratiorelative_ratio_predictrelative_ratio_real などの統計メトリックを含む statistics オブジェクトが含まれます。error_msg 列は操作のステータスを報告します。たとえば、値が Incomplete の場合、分析が完了していないことを示します。

クラスタリング関数

複数の時系列またはベクトルデータに対して高速なクラスタリング分析を実行し、類似したメトリック曲線の特定、異常なパターンの検出、データパターンの分類などを行います。

構文

cluster(array(array(double)) array_vector, varchar cluster_mode, varchar params)

パラメーター

パラメーター

説明

array_vector

ベクトルの 2 次元配列。配列内のすべてのベクトルは、同じ長さである必要があります。

cluster_mode

クラスタリングモデルを指定します。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 (収束許容度):このパラメーターは、クラスター中心の変化のしきい値を定義することによって、アルゴリズムの収束条件を制御します。高精度が求められる場合は、値を 0.00001 に減らします。大規模なデータセットの場合は、効率を向上させるために 0.001 に増やします。計算効率と精度のバランスを取ってください。

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

  5. metric (cosine/euclidean):

    • cosine (コサイン類似度):ベクトル間の角度のコサインを計算して、方向の類似度を測定します。このメトリックは、テキストの埋め込みや画像特徴ベクトルなどの高次元データや、レコメンデーションシステムなどの類似性マッチングタスクに適しています。データが単位ベクトルに正規化されると、コサイン類似度は内積と等しくなります。

    • euclidean (ユークリッド距離):2 点間の直線距離を計算することで、点間の絶対的な差を測定します。このメトリックは、座標点などの低次元空間における幾何学的問題や、k-means クラスタリングや k-近傍法の分類や回帰などの距離に依存するタスクに適しています。また、データの値の絶対差を保持する必要があるシナリオにも適しています。

dbscan
{
  "epsilon": "0.1", // 注:イプシロンの値が 0 以下の場合、アルゴリズムはこのパラメーターを自動的に推測します。
  "min_samples": "5"
}

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) アルゴリズムは、epsilon (ε) と min_samples の 2 つの主要なパラメーターを使用して、クラスターの密度基準を定義します。

  • epsilon (ε):点の近傍範囲を定義して、点が隣接しているかどうかを判断します。εの値が小さいとノイズポイントが多くなり、大きいと無関係な点がマージされる可能性があります。k-距離グラフのエルボー点を観察して、適切なεの値を選択してください。

  • min_samples:密なクラスターを形成するために必要な点の最小数を定義します。値が高いほどアルゴリズムが厳密になり、クラスターの数が減り、ノイズポイントの数が増えます。値が低いと、密度の低い領域が含まれる場合があります。データの次元に基づいてこの値を選択してください。たとえば、2 次元データの場合は、値を 4 または 5 に設定できます。

これら 2 つのパラメーターを組み合わせることで、クラスターの形成方法とノイズポイントの特定方法が決まります。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.error_msg
  • 出力

    クラスタリングモデルからの出力テーブルには、method_array (API メソッド名の配列)、ts_array (タイムスタンプの配列)、ds_array (特徴データの配列)、ret (クラスタリング結果を含む構造体)、n_clusters (この場合は 5 のクラスター数)、cluster_sizes (この場合は [2, 1, 4, 1, 75] の各クラスターのサイズ)、assignments (各データエントリのクラスター割り当てラベルの配列)、および error_msg (エラー情報) のフィールドが含まれます。

series_describe 関数

この関数は、時系列を複数のディメンションで分析し、データの連続性、欠損値、安定性、周期性、トレンドなどの主要な特性を返します。

制限事項

この関数には、make-series 演算子によるシリーズ形式のデータが必要です。タイムスタンプはナノ秒である必要があります。

構文

series_describe(__ts__ array<bigint>, __ds__ array<double>)

または

series_describe(__ts__ array<bigint>, __ds__ array<double>,config varchar)

パラメーター

パラメーター

説明

__ts__

ナノ秒単位で単調増加する UNIX タイムスタンプの配列。

__ds__

各タイムスタンプに対応する値を持つ浮動小数点数の配列。この配列は、__ts__ 配列と同じ長さである必要があります。

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 文字列。

error_msg

varchar

呼び出しが失敗した場合にエラーメッセージを返します。

統計の詳細

結果は 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(time, value)
  • 出力

    クエリの出力には、系列データを含む列 valuetime、および新しいコンテナー列 ret が含まれます。ret 列には、statisticerror_msg の 2 つのフィールドが含まれます。ret 列内の statistic フィールドには、分析結果の JSON オブジェクトが含まれています。主なフィールドには、duplicate_count (0)、total_count (1440)、mean (-1046.9)、variance (2222880.54)、min (-2047.0)、max (-1592.0)、median (-1591.0)、interval (60000000000.0)、missing_count (0)、adf_test (-1.739)、is_stable (false)、および trend (-1.445) が含まれます。error_msg フィールドは、成功すると null になります。

相関関数

2 つのオブジェクト間の類似度を計算します。この関数の動作は入力によって異なります: 1. 2 つの単一ベクトルの場合、その類似度を返します。 2. ベクトルのグループと単一ベクトルの場合、グループ内の各ベクトルと単一ベクトルの間の類似度を返します。 3. 2 つのベクトルのグループの場合、それらのベクトル間のペアごとの類似度の行列を返します。

制限事項

入力は make-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)

パラメーター

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

パラメーター

説明

必須

measurement

相関係数を計算するために使用されるメソッド。ほとんどの場合、「Pearson」 を使用できます。

有効な値:

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

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

  • KendallTau: ケンドールのタウ順位相関係数。2 つの順序付き変数間の単調関係を測定し、その並べ替えの一貫性に重点を置きます。

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

varchar

はい

max_shift

最初の変数 (最初のパラメーターからのベクトル) を左にシフトできる最大の時点数。負の値は右へのシフトを示します。出力は、許可されているすべてのシフトで見つかった最大の相関係数です。

integer

いいえ。デフォルト値は 0 で、シフトが無効であることを意味します。

flag_shift_both_direction

有効な値:

  • true: 最初の変数を最大 |max_shift| 時点まで左または右にシフトできます。

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

ブール値

いいえ。デフォルト値は "false" です。

戻り値

  • オーバーロード 1

    row(result double)

    列名

    説明

    result

    double

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

    出力には、各 Method ごとに計算された相関係数を含む correlation_scores 列が含まれます。

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

    出力には、SpearmanRank メソッドを使用して計算された相関係数を含む scores 列が含まれます。

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

    出力には、指定されたパラメーターを使用して KendallTau メソッドで計算された相関係数を含む scores 列が含まれます。