Operatore make-series
Crea una serie di valori aggregati specificati lungo un asse specificato.
Sintassi
T| make-series
[MakeSeriesParameters] [Column=
] Aggregazione [default
=
DefaultValue] [,
...] on
AxisColumn [start] [to
from
fine] passaggio [by
[Colonna=
] step
GroupExpression [,
...]]
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
Colonna | string |
Nome della colonna dei risultati. Il valore predefinito è un nome derivato dall'espressione. | |
Defaultvalue | scalare | Valore predefinito da usare anziché valori assenti. Se non è presente alcuna riga con valori specifici di AxisColumn e GroupExpression, l'elemento corrispondente della matrice verrà assegnato a DefaultValue. Il valore predefinito è 0. | |
Aggregazione | string |
✔️ | Una chiamata a una funzione di aggregazione, ad count() esempio o avg() , con nomi di colonna come argomenti. Vedere l' elenco delle funzioni di aggregazione. Con l'operatore make-series è possibile usare solo funzioni di aggregazione che restituiscono risultati numerici. |
AxisColumn | string |
✔️ | Colonna in base alla quale verrà ordinata la serie. In genere i valori di colonna saranno di tipo datetime o timespan ma tutti i tipi numerici vengono accettati. |
start | scalare | ✔️ | Valore a basso limite di AxisColumn per la compilazione di ogni serie. Se l'avvio non è specificato, sarà il primo bin o il primo passaggio, che contiene dati in ogni serie. |
end | scalare | ✔️ | Valore non inclusivo associato elevato di AxisColumn. L'ultimo indice della serie temporale è minore di questo valore e verrà avviato più intero più di un passaggio minore rispetto alla fine. Se la fine non è specificata, sarà il limite superiore dell'ultimo bin o passaggio, che contiene dati per ogni serie. |
Passo | scalare | ✔️ | Differenza o dimensione bin, tra due elementi consecutivi della matrice AxisColumn . Per un elenco di possibili intervalli di tempo, vedere timepan. |
GroupExpression | Espressione sulle colonne che fornisce un set di valori distinti. In genere è un nome di colonna che fornisce già un set limitato di valori. | ||
MakeSeriesParameters | Zero o più parametri separati dallo spazio sotto forma diValorenome= che controllano il comportamento. Vedere i parametri di serie supportati. |
Nota
I parametri start, end e step vengono usati per compilare una matrice di valori AxisColumn . La matrice è costituita da valori tra inizio e fine, con il valore del passaggio che rappresenta la differenza tra un elemento matrice e quello successivo. Tutti i valori di Aggregazione vengono ordinati rispettivamente in base a questa matrice.
Parametri di serie supportati
Nome | Descrizione |
---|---|
kind |
Genera il risultato predefinito quando l'input dell'operatore make-series è vuoto. Valore: nonempty |
hint.shufflekey=<key> |
La shufflekey query condivide il carico di query nei nodi del cluster usando una chiave per partizionare i dati. Vedere query shuffle |
Nota
Le matrici generate da serie make-series sono limitate ai valori 1048576 (2^20). Il tentativo di generare una matrice di dimensioni maggiori con serie make-series comporta un errore o una matrice troncata.
Sintassi alternativa
T| make-series
[Colonna=
] Aggregazione [DefaultValue] [,
default
=
...] on
AxisColumnin
range(
Iniziare,
Fermare,
Passo)
[by
[Colonna=
] GroupExpression [,
...]]
La serie generata dalla sintassi alternativa è diversa da quella della sintassi principale per due aspetti:
- Il valore di stop è inclusivo.
- Il riempimento dei bin dell'asse di indice viene generato con bin() e non con bin_at(), il che significa che il valore di start potrebbe non essere incluso nella serie generata.
È consigliabile usare la sintassi principale di make-series e non la sintassi alternativa.
Restituisce
Le righe di input sono disposte in gruppi con gli stessi valori dell'espressione by
e dell'espressione bin_at(
AxisColumn,
step,
start)
. Vengono quindi calcolate per ogni gruppo le funzioni di aggregazione specificate, generando una riga per ogni gruppo. Il risultato contiene le colonne by
, AxisColumn e anche almeno una colonna per ogni aggregazione calcolata. Le aggregazioni su più colonne o risultati non numerici non sono supportati.
Questo risultato intermedio include tutte le righe che costituiscono combinazioni distinte di by
e dei valori di bin_at(
AxisColumn,
step,
start)
.
Infine, le righe del risultato intermedio vengono disposte in gruppi con gli stessi valori delle espressioni by
e tutti i valori aggregati vengono disposti in matrici (valori di tipo dynamic
). Per ogni aggregazione è presente una colonna contenente la matrice con lo stesso nome. L'ultima colonna è una matrice contenente i valori di AxisColumn binned in base al passaggio specificato.
Nota
Anche se è possibile specificare espressioni arbitrarie per le espressioni di aggregazione e raggruppamento, è preferibile usare nomi di colonna semplici.
Elenco di funzioni di aggregazione
Funzione | Descrizione |
---|---|
avg() | Restituisce un valore medio nel gruppo |
avgif() | Restituisce una media con il predicato del gruppo |
count() | Restituisce un conteggio del gruppo |
countif() | Restituisce un conteggio con il predicato del gruppo |
dcount() | Restituisce un numero approssimativo di valori distinti degli elementi del gruppo |
dcountif() | Restituisce un numero approssimativo di valori distinti con il predicato del gruppo |
max() | Restituisce il valore massimo nel gruppo |
maxif() | Restituisce il valore massimo con il predicato del gruppo |
min() | Restituisce il valore minimo nel gruppo |
minif() | Restituisce il valore minimo con il predicato del gruppo |
percentile() | Restituisce il valore percentile nel gruppo |
take_any() | Restituisce un valore casuale non vuoto per il gruppo |
stdev() | Restituisce la deviazione standard del gruppo |
sum() | Restituisce la somma degli elementi all'interno del gruppo |
sumif() | Restituisce la somma degli elementi con il predicato del gruppo |
variance() | Restituisce la varianza del gruppo |
Elenco di funzioni di analisi delle serie
Funzione | Descrizione |
---|---|
series_fir() | Applica il filtro Finite Impulse Response |
series_iir() | Applica il filtro Infinite Impulse Response |
series_fit_line() | Trova una linea retta che rappresenta la migliore approssimazione dell'input |
series_fit_line_dynamic() | Trova una linea che rappresenta la migliore approssimazione dell'input, restituendo un oggetto dinamico |
series_fit_2lines() | Trova due linee che rappresentano la migliore approssimazione dell'input |
series_fit_2lines_dynamic() | Trova due linee che rappresentano la migliore approssimazione dell'input, restituendo un oggetto dinamico |
series_outliers() | Assegna un punteggio ai punti anomali di una serie |
series_periods_detect() | Trova i periodi più significativi esistenti in una serie temporale |
series_periods_validate() | Verifica se una serie temporale contiene modelli periodici di lunghezze specificate |
series_stats_dynamic() | Restituisce più colonne con la statistica comune (min/max/varianza/deviazione standard/media) |
series_stats() | Genera un valore dinamico con la statistica comune (min/max/varianza/deviazione standard/media) |
Per un elenco completo delle funzioni di analisi delle serie, vedere: Funzioni di elaborazione delle serie
Elenco di funzioni di interpolazione della serie
Funzione | Descrizione |
---|---|
series_fill_backward() | Esegue l'interpolazione di riempimento all'indietro dei valori mancanti in una serie |
series_fill_const() | Sostituisce i valori mancanti in una serie con un valore costante specificato |
series_fill_forward() | Esegue l'interpolazione di riempimento in avanti dei valori mancanti in una serie |
series_fill_linear() | Esegue l'interpolazione lineare dei valori mancanti in una serie |
- Nota: Le funzioni di interpolazione per impostazione predefinita presuppongono
null
come valore mancante. Pertanto, specificaredefault=
double(null
) inmake-series
se si prevede di usare le funzioni di interpolazione per la serie.
Esempio
Una tabella che mostra una matrice di numeri e prezzi medi di ogni frutto offerto da ogni fornitore ordinati per timestamp con l'intervallo specificato. L'output include una riga per ogni combinazione distinta di frutta e fornitore. La colonna di output mostra la frutta, il fornitore e le matrici di conteggio, media e sequenza temporale completa (dal 1° gennaio 2016 al 10 gennaio 2016). Tutte le matrici sono ordinate in base al rispettivo timestamp e tutti i valori mancanti vengono sostituiti dai valori predefiniti (0 in questo esempio). Tutte le altre colonne di input vengono ignorate.
T | make-series PriceAvg=avg(Price) default=0
on Purchase from datetime(2016-09-10) to datetime(2016-09-13) step 1d by Supplier, Fruit
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| make-series avg(metric) on timestamp from stime to etime step interval
avg_metric | timestamp |
---|---|
[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Quando l'input di make-series
è vuoto, il comportamento predefinito di make-series
produce un risultato vuoto.
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval
| count
Output
Conteggio |
---|
0 |
L'uso di kind=nonempty
in make-series
produce un risultato non vuoto dei valori predefiniti:
let data=datatable(timestamp:datetime, metric: real)
[
datetime(2016-12-31T06:00), 50,
datetime(2017-01-01), 4,
datetime(2017-01-02), 3,
datetime(2017-01-03), 4,
datetime(2017-01-03T03:00), 6,
datetime(2017-01-05), 8,
datetime(2017-01-05T13:40), 13,
datetime(2017-01-06), 4,
datetime(2017-01-07), 3,
datetime(2017-01-08), 8,
datetime(2017-01-08T21:00), 8,
datetime(2017-01-09), 2,
datetime(2017-01-09T12:00), 11,
datetime(2017-01-10T05:00), 5,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);
data
| take 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval
Output
avg_metric | timestamp |
---|---|
[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] |
[ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per