日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

時序分析函數(shù)

時間序列分析函數(shù)用于處理互聯(lián)網(wǎng)服務(wù)系統(tǒng)或商務(wù)運作中產(chǎn)生的指標數(shù)據(jù),這些數(shù)據(jù)可用于預(yù)測未來趨勢和檢測運作過程中的異常情況。日志服務(wù)支持時間序列分析函數(shù),本文介紹時間序列分析函數(shù)的基本語法和示例。

背景信息

  • 本文介紹時間序列分析函數(shù)示例的日志包含三個字段索引。更多信息,請參見創(chuàng)建索引

    image

  • 日志樣例如下:

    {"metric_id":1,"metric_value":90.0,"time_period":"2024-01-01 00:00:00"}
    {"metric_id":1,"metric_value":92.0,"time_period":"2024-01-01 00:01:00"}
    {"metric_id":1,"metric_value":93.0,"time_period":"2024-01-01 00:02:00"}
    {"metric_id":2,"metric_value":85.0,"time_period":"2024-01-01 00:00:00"}
    {"metric_id":2,"metric_value":87.0,"time_period":"2024-01-01 00:01:00"}
    {"metric_id":2,"metric_value":89.0,"time_period":"2024-01-01 00:02:00"}
    {"metric_id":3,"metric_value":96.0,"time_period":"2024-01-01 00:00:00"}
    {"metric_id":3,"metric_value":97.0,"time_period":"2024-01-01 00:01:00"}
    {"metric_id":3,"metric_value":98.0,"time_period":"2024-01-01 00:02:00"}

時序分析函數(shù)列表

函數(shù)名稱

語法

說明

返回值類型

ts_forecast函數(shù)

ts_forecast(array(timestamp) time_periods, array(double) metric_values, timestamp data_begin_time, timestamp data_end_time, timestamp prediction_end_time, varchar time_unit, varchar options)

用于時序預(yù)測,根據(jù)給定的時間序列預(yù)測未來指定時間段的指標變化。預(yù)測的結(jié)果以JSON格式返回。

varchar

ts_extract_features或ts_extract_features_in_json函數(shù)

ts_extract_features(array(double) period_unix_time_array, array(double) metric_value_array)

用于時序特征提取,以便于利用這些特征進行后續(xù)的機器模式識別。

array(double)

ts_extract_features_in_json(array(double) period_unix_time_array, array(double) metric_value_array)

varchar

ts_fill_missing或ts_impute函數(shù)

  • ts_fill_missing(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime, end_unixtime, varchar time_unit, varchar fill_option)

  • ts_impute(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime, end_unixtime, varchar time_unit, varchar fill_option)

  • ts_fill_nan(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime, end_unixtime, varchar time_unit, varchar fill_option)

用于時序填充,對缺失的時間點補充數(shù)據(jù)。

array(array(double))

ts_analyze_cycles函數(shù)

ts_analyze_cycles(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime, end_unixtime, varchar time_unit, varchar fill_option)

用于時序周期分析,分析一個時間序列的近似的多個周期。

varchar

ts_forecast函數(shù)

根據(jù)給定的時間序列,預(yù)測未來指定時間段的指標變化。預(yù)測的結(jié)果以JSON格式返回。

varchar ts_forecast(array(varchar) time_periods, array(double) metric_values, varchar data_begin_time, varchar data_end_time, timestamp prediction_end_time, varchar time_unit, varchar options)

參數(shù)

說明

time_periods

時序中時間部分的數(shù)組。

入?yún)㈩愋头譃?種:

  • timestamp類型。

  • varchar類型,例如2024-01-01 10:00:00

  • double類型的Unix時間。

metric_values

時序中指標部分的數(shù)組,專注于非零數(shù)值的數(shù)據(jù)點。函數(shù)需指定時間段范圍以便于對缺失數(shù)據(jù)進行填充。

data_begin_time

時序數(shù)據(jù)的時間段范圍的開始時刻。

入?yún)㈩愋头譃?種:

  • timestamp類型。

  • varchar類型,例如2024-01-01 10:00:00

  • double類型的Unix時間。

data_end_time

時序數(shù)據(jù)的時間段范圍的結(jié)束時刻。

入?yún)㈩愋头譃?種:

  • timestamp類型。

  • varchar類型,例如2024-01-01 10:00:00

  • double類型的Unix時間。

說明

時間區(qū)間[data_begin_time, data_end_time)包括data_begin_time但不包括data_end_time

prediction_end_time

往前預(yù)測到這個時刻為止,不包含這個時刻。

可以為兩種類型入?yún)ⅲ?/span>

  1. timestamp類型。

  2. double類型的Unix時間。

time_unit

時間序列數(shù)據(jù)的單位時間間隔。例如'10 second' '1 minute''1 hour''1 day''1 week''1 month''1 year'等。

options

可選參數(shù),指定數(shù)據(jù)填充方法及是否輸出歷史數(shù)據(jù)。

  • 數(shù)據(jù)填充方法:

    • 指定值(value)

    • 均值(mean)

    • 中位數(shù)(median)

    • 最小值(min)

    • 最大值(max)

    • 局部插值(local-interpolation)

  • 是否輸出歷史數(shù)據(jù):

    • true:輸出

    • false:不輸出

  • 參數(shù)示例

    • fillnan=value:0,outputhist=false:用0填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=mean,outputhist=false:用平均值填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=local-interpolation,outputhist=false:使用局部插值填充缺失值,不輸出歷史數(shù)據(jù)。

使用示例

  • 查詢和分析語句

    * | select metric_id,
        ts_forecast(
          array_agg(time_period),  -- time_period array
          array_agg(metric_value), -- metric_value array
          '2024-01-01 00:00:00',   -- sample start time (inclusive)
          '2024-01-01 00:05:00',   -- sample end time (exclusive)
          '2024-01-01 01:00:00',   -- prediction end time (exclusive)
          '1 miute',               -- time unit
          'avg'                
        ) as forecast_outcome
        from log
    where time_period >= '2024-01-01 00:00:00'
        and time_period < '2024-01-01 00:06:00'
    group by metric_id
  • 返回結(jié)果

    {
       "predictions":[
          {
             "timePeriod":1704067200,
             "prediction":59.2251832913215,
             "actualValue":"NaN",
             "upperBoundBy3StdDev":84.66650365159649,
             "lowerBoundBy3StdDev":33.78386293104651,
             "isForecast":true
          },
          {
             "timePeriod":1704067260,
             "prediction":57.62225491132578,
             "actualValue":"NaN",
             "upperBoundBy3StdDev":83.06357527160077,
             "lowerBoundBy3StdDev":32.18093455105079,
             "isForecast":true
          },
          ...
       ],
       "isHistoryIncluded":false,
       "errorSummary":{
          "meanAbsError":6.359932652686714,
          "meanAbsPercentageError":0.08384313053350512,
          "rootMeanSquareError":8.480440120091664,
          "standardDeviation":8.480440120091664,
          "meanError":-0.31236100941915534,
          "sampleSize":10080,
          "targetMean":97.94062488445213,
          "targetStdDev":11.186867641715377,
          "rsquare":0.92532833455449703,
          "correlation":0.961939880946048
       }
    }

    返回參數(shù)說明:

    參數(shù)

    說明

    predictions

    時間序列預(yù)測結(jié)果以結(jié)構(gòu)體數(shù)組形式呈現(xiàn),每個結(jié)構(gòu)體代表一個時間點的預(yù)測值。預(yù)測的時間范圍由data_end_timeprediction_end_time參數(shù)確定,構(gòu)成一個左開右閉的時間區(qū)間。若在`options`參數(shù)中設(shè)置outputhist=true,則數(shù)組將包含歷史數(shù)據(jù),使得整個數(shù)據(jù)的時間范圍擴展至[data_begin_time, prediction_end_time)

    結(jié)構(gòu)體數(shù)組參數(shù)說明:

    • timePeriod:預(yù)測的時間點。

    • prediction:預(yù)測指標的數(shù)值。

    • actualValue:實際的數(shù)據(jù)值。在[data_end_time, prediction_end_time)時間區(qū)間內(nèi),actualValue的值均為NaN,原因是該時間段尚未產(chǎn)生實際的指標數(shù)據(jù)。當參數(shù)選項中設(shè)置'outputhist=true'時,predictions字段內(nèi)的數(shù)組將包含[data_begin_time, data_end_time)時間范圍的歷史數(shù)據(jù),其中actualValue表示該歷史數(shù)據(jù)中的實際指標。

    • upperBoundBy3StdDevlowerBoundBy3StdDev:這兩個字段描述的是以預(yù)測值(prediction)為中心的訓練預(yù)測誤差的3倍標準差區(qū)間邊界。這些區(qū)間通常代表99%的置信區(qū)間,表明未來收集的真實值有99%的概率落在所預(yù)測的區(qū)間范圍內(nèi)。可以通過結(jié)合prediction值與errorSummary.standardDeviation字段來計算一個自定義的置信區(qū)間,例如,在兩個標準誤差范圍內(nèi)的預(yù)測區(qū)間。然而,當區(qū)間變得更加狹窄時,置信水平也會相應(yīng)降低,例如,兩個標準誤差內(nèi)的置信區(qū)間將大概降至95%。

    • isForecast:判斷數(shù)據(jù)點對應(yīng)的時間是屬于未來還是歷史,通過與預(yù)設(shè)的時間點data_end_time進行比較實現(xiàn)。具體而言,如果數(shù)據(jù)點的時間小于data_end_time,則返回false,表示該數(shù)據(jù)點位于過去;反之,則返回true,表示數(shù)據(jù)點指向未來。

    isHistoryIncluded

    predictions字段里的內(nèi)容是否包含歷史數(shù)據(jù)。

    • true:包含歷史數(shù)據(jù)。

    • false:不包含歷史數(shù)據(jù)。

    errorSummary

    預(yù)測在歷史數(shù)據(jù)上測試模型時的預(yù)測誤差的概括。預(yù)測模型會在歷史數(shù)據(jù)上測試,在指標預(yù)測中,預(yù)測值與實際值之間的差異會產(chǎn)生誤差。通過對歷史數(shù)據(jù)進行預(yù)測并總結(jié)相應(yīng)的統(tǒng)計值,可以評估預(yù)測的整體準確性。

    • meanAbsError:預(yù)測誤差的絕對值的平均值。

    • meanAbsPercentageError:相對百分比誤差的絕對值的平均值。

    • rootMeanSquareError:均方誤差,即誤差的平方的平均值的平方根。

    • standardDeviation:誤差的標準差,表示預(yù)測的平均上下波動的大小。

    • meanError:誤差的平均值。

    • sampleSize:歷史數(shù)據(jù)樣本的個數(shù)(樣本容量)。

    • targetMean:指標歷史數(shù)據(jù)樣本的平均值。

    • targetStdDev:指標歷史數(shù)據(jù)樣本的標準差。

    • rsquare:R平方值是衡量回歸模型預(yù)測精度的一個指標,基于歷史數(shù)據(jù)進行測試,范圍是(0,1),越接近1代表預(yù)測準確度越高。

    • correlationrsquare的平方根。

ts_extract_features或ts_extract_features_in_json函數(shù)

主要對時間序列進行特征提取,方便用戶使用這些特征進行后續(xù)的機器模式識別。

array(double) ts_extract_features(array(double) period_unix_time_array, array(double) metric_value_array)

varchar ts_extract_features_in_json(array(double) period_unix_time_array, array(double) metric_value_array)

參數(shù)

說明

period_unix_time_array

時間序列中的Unix時間的數(shù)組。

metric_value_array

時間序列的指標數(shù)值。

說明

period_unix_time_arraymetric_value_array描述一個時間序列。

使用示例

示例一

  • 查詢和分析語句

    * | select metric_id,
        ts_extract_features(
          array_agg(to_unixtime(time_period)),
          array_agg(metric_value)) as feature_values
          group by metric_id
  • 返回結(jié)果

    feature_values是生成的特征值的數(shù)組。

    metric_id

    feature_values

    1

    [0.123456, ...]

示例二

  • 查詢和分析語句

    * | select metric_id,
        ts_extract_features_in_json(
          array_agg(to_unixtime(time_period)),
          array_agg(metric_value)) as feature_values
          group by metric_id
  • 返回結(jié)果

    • names:特征向量名稱構(gòu)成的數(shù)組。

    • values:特征向量值構(gòu)成的數(shù)組。

    metric_id

    feature_values

    1

    {"values":[1.0,0.0,0.0,0.0,645.0,41685.0,1.0,1.0,0.0,64.5,64.5,10.0,2.8722813232690143],"names":["value__variance_larger_than_standard_deviation","value__has_duplicate_max","value__has_duplicate_min","value__has_duplicate","value__sum_values","value__abs_energy","value__mean_abs_change","value__mean_change"]

ts_fill_missing或ts_impute函數(shù)

用于時序填充,對缺失的時間點補充數(shù)據(jù)。

array(array(double)) ts_fill_missing(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime,  double end_unixtime, varchar time_unit, varchar fill_option)

array(array(double)) ts_impute(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime,  double end_unixtime, varchar time_unit, varchar fill_option)

array(array(double)) ts_fill_nan(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime,  double end_unixtime, varchar time_unit, varchar fill_option)

參數(shù)

說明

unixtime_periods

時間序列中時間部分的數(shù)組,是double數(shù)組類型的Unix時間。

metric_values

時間序列中指標部分的數(shù)組,是double數(shù)組類型。

begin_unixtime

時間序列數(shù)據(jù)的時間段范圍的開始時刻,double類型的Unix時間。

end_unixtime

時間序列數(shù)據(jù)的時間段范圍的結(jié)束時刻。

說明

時間區(qū)間[begin_unixtime, end_unixtime)begin_unixtimeend_unixtime組成,其中包含begin_unixtime但不包含end_unixtime

time_unit

時間序列數(shù)據(jù)的單位時間間隔。例如'10 second' '1 minute''1 hour''1 day''1 week''1 month''1 year'等。

fill_option

可選參數(shù),指定數(shù)據(jù)填充方法及是否輸出歷史數(shù)據(jù)。

  • 數(shù)據(jù)填充方法:

    • 指定值(value)

    • 均值(mean)

    • 中位數(shù)(median)

    • 最小值(min)

    • 最大值(max)

    • 局部插值(local-interpolation)

  • 是否輸出歷史數(shù)據(jù):

    • true:輸出

    • false:不輸出

  • 參數(shù)示例

    • fillnan=value:0,outputhist=false:用0填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=mean,outputhist=false:用平均值填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=local-interpolation,outputhist=false:使用局部插值填充缺失值,不輸出歷史數(shù)據(jù)。

使用示例

  • 查詢和分析語句

    * | select metric_id,
            ts_fill_missing(
                array_agg(to_unixtime(time_period)), -- time periods
                array_agg(metric_value),             -- metric values
                to_unixtime(timestamp '2024-01-01 00:00:00'), -- series begin time
                to_unixtime(timestamp '2024-01-01 00:05:00'), -- series end time
                '1 minute',                          -- series time unit
                'value=0'                 -- fill the missing values with 0
            ) as imputed_time_series
            from log
        where time_period >= '2024-01-01 00:00:00'
          and time_period < '2024-01-01 00:05:00'
        group by metric_id
  • 返回結(jié)果

    metric_id

    imputed_time_series

    1

    [[1704038400.0,1704038460.0,1704038520.0,1704038580.0,1704038640.0],[60.0,61.0,62.0,63.0,64.0]]

    2

    [[1704038400.0,1704038460.0,1704038520.0,1704038580.0,1704038640.0],[70.0,71.0,72.0,73.0,74.0]]

    3

    [[1704038400.0,1704038460.0,1704038520.0,1704038580.0,1704038640.0],[80.0,81.0,82.0,83.0,84.0]]

ts_analyze_cycles函數(shù)

分析一個時間序列的近似的多個周期。

varchar ts_analyze_cycles(array(double) unixtime_periods, array(double) metric_values, double begin_unixtime,  end_unixtime, varchar time_unit, varchar fill_option)

參數(shù)

說明

unixtime_periods

時間序列中時間部分的數(shù)組,是double數(shù)組類型的Unix時間。

metric_values

時間序列中指標部分的數(shù)組,是double數(shù)組類型。

begin_unixtime

時間序列數(shù)據(jù)的時間段范圍的開始時刻,double類型的Unix時間。

end_unixtime

時間序列數(shù)據(jù)的時間段范圍的結(jié)束時刻。

說明

時間區(qū)間[begin_unixtime, end_unixtime)begin_unixtimeend_unixtime組成,其中包含begin_unixtime但不包含end_unixtime

time_unit

時間序列數(shù)據(jù)的單位時間間隔。例如'10 second' '1 minute''1 hour''1 day''1 week''1 month''1 year'等。

fill_option

指定數(shù)據(jù)填充方法及是否輸出歷史數(shù)據(jù)。

  • 數(shù)據(jù)填充方法:

    • 指定值(value)

    • 均值(mean)

    • 中位數(shù)(median)

    • 最小值(min)

    • 最大值(max)

    • 局部插值(local-interpolation)

  • 是否輸出歷史數(shù)據(jù):

    • true:輸出

    • false:不輸出

  • 參數(shù)示例

    • fillnan=value:0,outputhist=false:用0填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=mean,outputhist=false:用平均值填充缺失值,不輸出歷史數(shù)據(jù)。

    • fillnan=local-interpolation,outputhist=false:使用局部插值填充缺失值,不輸出歷史數(shù)據(jù)。

使用示例

  • 查詢和分析語句

    * | select metric_id,
            ts_analyze_cycles(
                array_agg(to_unixtime(time_period)), -- time periods
                array_agg(metric_value),             -- metric values
                to_unixtime(timestamp '2024-01-01 00:00:00'), -- series begin time
                to_unixtime(timestamp '2024-01-01 00:05:00'), -- series end time
                '1 minute',                          -- series time unit
                'value=0'                 -- fill the missing values with 0
            ) as imputed_time_series
            from log
        where time_period >= '2024-01-01 00:00:00'
          and time_period < '2024-01-01 00:05:00'
        group by metric_id
  • 返回結(jié)果

    metric_id

    cycle_analysis

    1

    {"cycleSize":66,"cycleCorrelation":0.9859745299608902,"frequencyWeight":2.8240516697103124E7,"topCycles":[{"cycleSize":66,"cycleCorrelation":0.9859745299608902,"frequencyWeight":2.8240516697103124E7},{"cycleSize":72,"cycleCorrelation":0.9750729127628865,"frequencyWeight":9538762.646349236},{"cycleSize":22,"cycleCorrelation":0.9628902341901314,"frequencyWeight":1.5834018306832194E7},{"cycleSize":33,"cycleCorrelation":0.9518752073734051,"frequencyWeight":1.1270983504364485E7}]}

    返回結(jié)果參數(shù)說明:

    參數(shù)

    說明

    cycleSize

    最相似的周期長度。

    cycleCorrelation

    最相似的周期的相關(guān)程度。

    frequencyWeight

    對時間序列進行功率譜分析之后對應(yīng)周期的譜密度的大小。

    topCycles

    對時間序列的多周期分析,提供最多前五個周期的相關(guān)分析數(shù)據(jù)。每一個周期都包含cycleSize, cycleCorrelation, frequencyWeight這三個字段信息。