Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Changer de service à l’aide de la liste déroulante Version . En savoir plus sur la navigation.
S’applique à : ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
La fonction est une fonction series_downsample_fl() définie par l’utilisateur (UDF) qui met à l’échelle une série chronologique par un facteur entier. Cette fonction prend une table contenant plusieurs séries chronologiques (tableau numérique dynamique) et descend chaque série. La sortie contient à la fois la série grossière et son tableau de temps respectifs. Pour éviter l’alias, la fonction applique un filtre à faible passe simple sur chaque série avant le sous-échantillonnage.
Syntaxe
T | invoke series_downsample_fl(
, t_col y_col,ds_t_col sampling_factor ds_y_col,,
En savoir plus sur les conventions de syntaxe.
Paramètres
| Nom | Type | Requise | Description |
|---|---|---|---|
| t_col | string |
✔️ | Nom de la colonne qui contient l’axe temporel de la série vers le bas. |
| y_col | string |
✔️ | Nom de la colonne qui contient la série vers le bas. |
| ds_t_col | string |
✔️ | Nom de la colonne pour stocker l’axe temporel échantillonné de chaque série. |
| ds_y_col | string |
✔️ | Nom de la colonne pour stocker la série échantillonné vers le bas. |
| sampling_factor | int |
✔️ | Entier spécifiant l’échantillonnage inférieur requis. |
Définition de fonction
Vous pouvez définir la fonction en incorporant son code en tant que fonction définie par une requête ou en la créant en tant que fonction stockée dans votre base de données, comme suit :
Définissez la fonction à l’aide de l’instruction let suivante. Aucune autorisation n'est requise.
Important
Une instruction let ne peut pas s’exécuter par elle-même. Elle doit être suivie d’une instruction d’expression tabulaire. Pour exécuter un exemple de travail, consultez l’exempleseries_downsample_fl().
let series_downsample_fl=(tbl:(*), t_col:string, y_col:string, ds_t_col:string, ds_y_col:string, sampling_factor:int)
{
tbl
| extend _t_ = column_ifexists(t_col, dynamic(0)), _y_ = column_ifexists(y_col, dynamic(0))
| extend _y_ = series_fir(_y_, repeat(1, sampling_factor), true, true) // apply a simple low pass filter before sub-sampling
| mv-apply _t_ to typeof(DateTime), _y_ to typeof(double) on
(extend rid=row_number()-1
| where rid % sampling_factor == ceiling(sampling_factor/2.0)-1 // sub-sampling
| summarize _t_ = make_list(_t_), _y_ = make_list(_y_))
| extend cols = bag_pack(ds_t_col, _t_, ds_y_col, _y_)
| project-away _t_, _y_
| evaluate bag_unpack(cols)
};
// Write your query to use the function here.
Exemple
L’exemple suivant utilise l’opérateur Invoke pour exécuter la fonction.
Pour utiliser une fonction définie par une requête, appelez-la après la définition de la fonction incorporée.
let series_downsample_fl=(tbl:(*), t_col:string, y_col:string, ds_t_col:string, ds_y_col:string, sampling_factor:int)
{
tbl
| extend _t_ = column_ifexists(t_col, dynamic(0)), _y_ = column_ifexists(y_col, dynamic(0))
| extend _y_ = series_fir(_y_, repeat(1, sampling_factor), true, true) // apply a simple low pass filter before sub-sampling
| mv-apply _t_ to typeof(DateTime), _y_ to typeof(double) on
(extend rid=row_number()-1
| where rid % sampling_factor == ceiling(sampling_factor/2.0)-1 // sub-sampling
| summarize _t_ = make_list(_t_), _y_ = make_list(_y_))
| extend cols = bag_pack(ds_t_col, _t_, ds_y_col, _y_)
| project-away _t_, _y_
| evaluate bag_unpack(cols)
};
demo_make_series1
| make-series num=count() on TimeStamp step 1h by OsVer
| invoke series_downsample_fl('TimeStamp', 'num', 'coarse_TimeStamp', 'coarse_num', 4)
| render timechart with(xcolumn=coarse_TimeStamp, ycolumns=coarse_num)
Sortie
La série chronologique a basculé de 4 :
Pour référence, voici la série chronologique d’origine (avant l’échantillonnage inférieur) :
demo_make_series1
| make-series num=count() on TimeStamp step 1h by OsVer
| render timechart with(xcolumn=TimeStamp, ycolumns=num)