timeSeriesLinearRegressionToGrid
Introduit dans : v26.9.0 Fonction d’agrégation qui prend en entrée des données de séries temporelles sous forme de paires timestamp-valeur, et ajuste une droite aux valeurs sur une grille temporelle régulière définie par un timestamp de début, un timestamp de fin et un pas. Pour chaque point de la grille, une droite est ajustée aux échantillons compris dans la fenêtre temporelle spécifiée, et la fonction renvoie le tuple(intercept, slope) : intercept est la valeur de cette droite au timestamp du point de la grille et slope est sa pente par seconde. Les deux valent NULL si la fenêtre ne contient pas suffisamment d’échantillons.
Le résultat de timeSeriesPredictLinearToGrid avec le décalage t est égal à intercept + slope * t, et le résultat de timeSeriesDerivToGrid est égal à slope. La fonction PromQL predict_linear repose sur cette fonction, ce qui permet au décalage de prédiction de varier d’un point de la grille à l’autre, comme dans predict_linear(v, time()).
Les échantillons peuvent être transmis sous l’une des trois formes suivantes :
- deux arguments
timestampetvalue, chaque ligne contenant un seul échantillon ; - deux tableaux de timestamps et de valeurs, chaque ligne contenant une série temporelle complète ;
- un seul tableau de tuples
(timestamp, value), chaque ligne contenant une série temporelle complète.
Cette fonction est en aperçu privé ; activez-la en définissant
enable_time_series_aggregate_functions=true.start_timestamp— Indique le début de la grille. Il peut également s’agir d’un nombre fractionnaire, ou d’une string contenant un nombre ou une date-heure sous forme de texte.UInt32ouDateTimeouDateTime64ouFloat*ouDecimal*ouStringend_timestamp— Indique la fin de la grille. Il peut également s’agir d’un nombre fractionnaire, ou d’une string contenant un nombre ou une date-heure sous forme de texte.UInt32ouDateTimeouDateTime64ouFloat*ouDecimal*ouStringgrid_step— Indique le pas de la grille, en secondes. Il peut également s’agir d’un nombre fractionnaire, ou d’une string contenant un nombre ou une durée telle que ’15s’ ou ‘1m’.UInt32ouFloat*ouDecimal*ouStringstaleness— Indique l’ancienneté (« staleness ») maximale, en secondes, des échantillons pris en compte. La fenêtre d’ancienneté est un intervalle ouvert à gauche et fermé à droite. Il peut également s’agir d’un nombre fractionnaire, ou d’une string contenant un nombre ou une durée telle que ’15s’ ou ‘1m’.UInt32ouFloat*ouDecimal*ouString
timestamp— Timestamp de l’échantillon. Peut être une valeur individuelle ou un tableau.UInt32ouDateTimeouDateTime64ouArray(UInt32)ouArray(DateTime)ouArray(DateTime64)value— Valeur de la série temporelle correspondant au timestamp. Peut être une valeur individuelle ou un tableau.Float*ouArray(Float*)samples— Échantillons de la série temporelle, passés sous forme de tableau de tuples(timestamp, value)dont les éléments ont les types de timestamp et de valeur indiqués ci-dessus. Alternative au passage des timestamps et des valeurs sous forme de deux arguments distincts.Array(Tuple(T1, T2))
(intercept, slope) pour chaque point de la grille : la valeur de la droite ajustée au timestamp du point de la grille, et sa pente par seconde. Les deux éléments valent NULL si la fenêtre ne contient pas suffisamment d’échantillons pour un point de la grille donné. Array(Tuple(intercept Nullable(Float64), slope Nullable(Float64)))
Exemples
Ajuster une droite sur la grille [100, 110, 120] et comparer avec timeSeriesPredictLinearToGrid et timeSeriesDerivToGrid
Query
Response