Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea una serie di valori aggregati specificati lungo un asse specificato.
Sintassi
T [MakeSeriesParameters| make-series
[] [=
] default
=
[ [,
on
] [from
...]]
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
Istogramma | string |
Nome della colonna del risultato. Il valore predefinito è un nome derivato dall'espressione. | |
DefaultValue | scalare | Valore predefinito da utilizzare anziché valori assenti. Se non è presente alcuna riga con valori specifici di AxisColumn e GroupExpression, all'elemento corrispondente della matrice viene assegnato un valore DefaultValue. Il valore predefinito è 0. | |
Aggregazione | string |
✔️ | Chiamata a una funzione di aggregazione, ad esempio count() 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 viene ordinata la serie. In genere i valori di colonna sono di tipo datetime o timespan ma vengono accettati tutti i tipi numerici. |
avviare | scalare | ✔️ | Valore con limite basso di AxisColumn per ogni serie da compilare. Se l'avvio non è specificato, è il primo bin o il primo passaggio con dati in ogni serie. |
fine | scalare | ✔️ | Valore non inclusivo associato elevato di AxisColumn. L'ultimo indice della serie temporale è minore di questo valore e inizia più numero intero multiplo di passaggio minore di fine. Se la fine non è specificata, si tratta del limite superiore dell'ultimo bin o del passaggio con i 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 intervallo di tempo. |
GroupExpression | un'espressione eseguita 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 da spazi sotto forma di Valore nome= che controllano il comportamento. Vedere i parametri di make series supportati. |
Nota
I start
parametri , end
e step
vengono usati per compilare una matrice di valori AxisColumn . La matrice è costituita da valori tra start
e end
, con il step
valore che rappresenta la differenza tra un elemento di matrice e quello successivo. Tutti i valori di Aggregazione vengono ordinati rispettivamente in base a questa matrice.
Parametri di make series supportati
Nome | Descrizione |
---|---|
kind |
Produce il risultato predefinito quando l'input dell'operatore make-series è vuoto. Valore: nonempty |
hint.shufflekey=<key> |
La shufflekey query condivide il carico delle query sui nodi del cluster, usando una chiave per partizionare i dati. Vedere query shuffle |
Nota
Le matrici generate da make-series sono limitate a 1.048.576 valori (2^20). Il tentativo di generare una matrice più grande con make-series genera un errore o una matrice troncata.
Sintassi alternativa
T| make-series
[Colonna=
] Aggregazione [default
=
DefaultValue] [,
...] on
AxisColumnin
range(
inizio,
fermarsi,
passo)
[by
[Column=
] GroupExpression [,
...]]
La serie generata dalla sintassi alternativa è diversa da quella della sintassi principale per due aspetti:
- Il valore di stop è inclusivo.
- La creazione di binning dell'asse dell'indice viene generata con bin() e non bin_at(), il che significa che l'avvio potrebbe non essere incluso nella serie generata.
È consigliabile usare la sintassi principale di make-series e non la sintassi alternativa.
Valori restituiti
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 supportate.
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 |
covarianza() | Restituisce la covarianza di esempio di due variabili casuali |
covarianceif() | Restituisce la covarianza di esempio di due variabili casuali con predicato |
covariancep() | Restituisce la covarianza della popolazione di due variabili casuali |
covariancepif() | Restituisce la covarianza della popolazione di due variabili casuali con predicato |
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 |
varianza() | Restituisce la varianza campione nel gruppo |
varianceif() | Restituisce la varianza di esempio nel gruppo con predicato |
varianza() | Restituisce la varianza della popolazione nel gruppo |
variancepif() | Restituisce la varianza della popolazione nel gruppo con predicato |
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
- Nota: per impostazione predefinita, le funzioni di interpolazione presuppongono
null
come valore mancante. Pertanto, specificaredefault=
double(null
) inmake-series
se si prevede di usare le funzioni di interpolazione per la serie.
Esempi
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 | Marca temporale |
---|---|
[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ] | [ "2017-01-01T00:00:00.00000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:0100:00.00000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ] |
Quando l'input in 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
Risultato
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
Risultato
avg_metric | Marca temporale |
---|---|
[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] |
[ "2017-01-01T00:00:00.00000000Z", "2017-01-02T00:00:00.00000000Z", "2017-01-03T00:00:00.00000000Z", "2017-01-04T00:00:00.00000000Z", "2017-01-05T00:00:00.00000000Z", "2017-01-06T00:00:00.00000000Z", "2017-01-07T00:00:00.00000000Z", "2017-01-08T00:00:00.00000000Z", "2017-01-09T00:00:00.00000000Z" ] |
Uso di make-series
e mv-expand
per riempire i valori per i record mancanti:
let startDate = datetime(2025-01-06);
let endDate = datetime(2025-02-09);
let data = datatable(Time: datetime, Value: int, other:int)
[
datetime(2025-01-07), 10, 11,
datetime(2025-01-16), 20, 21,
datetime(2025-02-01), 30, 5
];
data
| make-series Value=sum(Value), other=-1 default=-2 on Time from startDate to endDate step 7d
| mv-expand Value, Time, other
| extend Time=todatetime(Time), Value=toint(Value), other=toint(other)
| project-reorder Time, Value, other
Risultato
Tempo | Valore | Altro |
---|---|---|
2025-01-06T00:00:00Z | 10 | -1 |
2025-01-13T00:00:00Z | 20 | -1 |
2025-01-20T00:00:00Z | 0 | -2 |
2025-01-27T00:00:00Z | 30 | -1 |
2025-02-03T00:00:00Z | 0 | -2 |