Operátor make-series
Vytvoří řadu zadaných agregovaných hodnot podél zadané osy.
Syntax
T| make-series
[MakeSeriesParameters] [Sloupec=
] Agregace [default
=
DefaultValue] [,
...] on
AxisColumn [from
start] [to
end] step
krok [by
[Column=
] GroupExpression [,
...]]
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Sloupec | string |
Název sloupce výsledků Výchozí hodnota je název odvozený z výrazu . | |
Defaultvalue | Skalár | Výchozí hodnota, která se použije místo chybějících hodnot. Pokud neexistuje žádný řádek s konkrétními hodnotami AxisColumn a GroupExpression, bude odpovídajícímu prvku pole přiřazena DefaultValue. Výchozí hodnota je 0. | |
Agregace | string |
✔️ | Volání agregační funkce, například count() nebo avg() , s názvy sloupců jako argumenty. Podívejte se na seznam agregačních funkcí. S operátorem make-series je možné použít pouze agregační funkce, které vracejí číselné výsledky. |
Sloupec osy | string |
✔️ | Sloupec, podle kterého budou řady seřazeny. Hodnoty sloupců budou obvykle typu datetime , ale timespan přijímají se všechny číselné typy. |
Spustit | Skalár | ✔️ | Nízká hodnota AxisColumn pro každou řadu, která má být sestavena. Pokud není zadaný parametr start , bude to první přihrádka nebo krok, který obsahuje data v každé řadě. |
Konec | Skalár | ✔️ | Horní mez non-inclusive hodnota AxisColumn. Poslední index časové řady je menší než tato hodnota a bude počáteční plus celočíselný násobek kroku , který je menší než konec. Pokud není zadaný konec , bude to horní mez poslední přihrádky nebo kroku, která obsahuje data pro každou řadu. |
Krok | Skalár | ✔️ | Rozdíl nebo velikost intervalu mezi dvěma po sobě jdoucími prvky pole AxisColumn . Seznam možných časových intervalů najdete v části časový rozsah. |
GroupExpression | Výraz nad sloupci, který poskytuje sadu jedinečných hodnot. Obvykle se jedná o název sloupce, který už poskytuje omezenou sadu hodnot. | ||
MakeSeriesParameters | Žádné nebo více parametrů oddělených mezerami ve formě Name= Value , které řídí chování. Projděte si podporované parametry řady. |
Poznámka
Parametry start, end a step se používají k vytvoření pole hodnot AxisColumn . Pole se skládá z hodnot mezi začátkem a koncem, přičemž hodnota kroku představuje rozdíl mezi jedním prvkem pole a dalším. Všechny hodnoty agregace jsou seřazené podle tohoto pole.
Podporované parametry vy make series
Název | Description |
---|---|
kind |
Vytvoří výchozí výsledek, pokud je vstup operátoru vytvářecí řady prázdný. Hodnota: nonempty |
hint.shufflekey=<key> |
Dotaz shufflekey sdílí zatížení dotazů na uzlech clusteru pomocí klíče k dělení dat. Viz dotaz náhodného prohazování. |
Poznámka
Pole generovaná vymyšlací řadou jsou omezena na 1048576 hodnoty (2^20). Při pokusu o vygenerování většího pole s vymyšlovací řadou by došlo k chybě nebo zkrácené matici.
Alternativní syntaxe
T| make-series
[Column=
] Aggregation [default
=
DefaultValue] [,
...] on
in
range(
Sloupec osySpustit,
Stop,
Krok)
[by
[Column=
] GroupExpression [,
...]]
Vygenerovaná řada z alternativní syntaxe se liší od hlavní syntaxe ve dvou aspektech:
- Hodnota stop je včetně.
- Binning osy indexu se generuje pomocí bin() a nikoli bin_at(), což znamená, že začátek nemusí být součástí vygenerované řady.
Doporučuje se používat hlavní syntaxi řady, a ne alternativní syntaxi.
Návraty
Vstupní řádky jsou uspořádány do skupin se stejnými hodnotami výrazůa počátečníhoby
výrazu bin_at(
kroku,
)
AxisColumn,
. Pak se pro každou skupinu počítají zadané agregační funkce a pro každou skupinu se vytvoří řádek. Výsledek obsahuje by
sloupce, sloupec AxisColumn a také alespoň jeden sloupec pro každou vypočítanou agregaci. (Agregace nad více sloupci nebo nečíselné výsledky nejsou podporované.)
Tento průběžný výsledek má tolik řádků, kolik je jedinečných kombinací počátečních by
hodnotkroků,
)
a bin_at(
AxisColumn,
.
Nakonec řádky z mezivýsehlého výsledku uspořádané do skupin se stejnými hodnotami by
výrazů a všechny agregované hodnoty jsou uspořádány do polí (hodnoty dynamic
typu). Pro každou agregaci existuje jeden sloupec obsahující pole se stejným názvem. Poslední sloupec je pole obsahující hodnoty AxisColumn rozdělené do intervalů podle zadaného kroku.
Poznámka
I když můžete poskytnout libovolné výrazy pro agregační i seskupovací výrazy, je efektivnější používat jednoduché názvy sloupců.
Seznam agregačních funkcí
Funkce | Description |
---|---|
avg() | Vrátí průměrnou hodnotu ve skupině. |
avgif() | Vrátí průměr s predikátem skupiny. |
count() | Vrátí počet skupin. |
countif() | Vrátí počet s predikátem skupiny. |
dcount() | Vrátí přibližný jedinečný počet prvků skupiny. |
dcountif() | Vrátí přibližný počet jedinečných položek s predikátem skupiny. |
max() | Vrátí maximální hodnotu ve skupině. |
maxif() | Vrátí maximální hodnotu s predikátem skupiny. |
min() | Vrátí minimální hodnotu ve skupině. |
minif() | Vrátí minimální hodnotu s predikátem skupiny. |
percentil() | Vrátí hodnotu percentilu napříč skupinou. |
take_any() | Vrátí náhodnou neprázdnou hodnotu pro skupinu. |
stdev() | Vrátí směrodatnou odchylku napříč skupinou. |
sum() | Vrátí součet prvků v rámci skupiny. |
sumif() | Vrátí součet prvků s predikátem skupiny. |
variance() | Vrátí odchylku napříč skupinou. |
Seznam funkcí analýzy řad
Funkce | Description |
---|---|
series_fir() | Použije filtr Konečný impulsní odpověď . |
series_iir() | Použije filtr nekonečné impulsní odpovědi . |
series_fit_line() | Najde přímku, která je nejlepší aproximací vstupu. |
series_fit_line_dynamic() | Najde čáru, která je nejlepší aproximací vstupu a vrátí dynamický objekt. |
series_fit_2lines() | Najde dva řádky, které jsou nejlepší aproximací vstupu. |
series_fit_2lines_dynamic() | Najde dvě čáry, které jsou nejlepší aproximací vstupu, vracející dynamický objekt. |
series_outliers() | Skóre bodů anomálií v řadě |
series_periods_detect() | Vyhledá nejvýznamnější období, která existují v časové řadě. |
series_periods_validate() | Zkontroluje, jestli časová řada obsahuje pravidelné vzory daných délek. |
series_stats_dynamic() | Vrátí více sloupců se společnou statistikou (min/max/variance/stdev/average). |
series_stats() | Vygeneruje dynamickou hodnotu se společnou statistikou (min/max/variance/stdev/average). |
Úplný seznam funkcí analýzy řad najdete v tématu: Funkce zpracování řad.
Seznam interpolačních funkcí řad
Funkce | Description |
---|---|
series_fill_backward() | Provádí zpětnou interpolaci výplně chybějících hodnot v řadě. |
series_fill_const() | Nahradí chybějící hodnoty v řadě zadanou konstantní hodnotou. |
series_fill_forward() | Provádí interpolaci dopředného výplně chybějících hodnot v řadě. |
series_fill_linear() | Provádí lineární interpolaci chybějících hodnot v řadě. |
- Poznámka: Interpolační funkce ve výchozím nastavení předpokládají
null
jako chybějící hodnotu. Proto zadejtedefault=
double(null
) vmake-series
, pokud chcete použít interpolační funkce pro řadu.
Příklady
Tabulka, která zobrazuje pole čísel a průměrných cen jednotlivých druhů ovoce od jednotlivých dodavatelů objednaných podle časového razítka se zadaným rozsahem. Ve výstupu je řádek pro každou jedinečnou kombinaci ovoce a dodavatele. Výstupní sloupce zobrazují ovoce, dodavatele a pole: počet, průměr a celou časovou osu (od 1. 1. 2016 do 10. 1. 2016). Všechna pole jsou seřazena podle příslušného časového razítka a všechny mezery jsou vyplněny výchozími hodnotami (v tomto příkladu 0). Všechny ostatní vstupní sloupce se ignorují.
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 | časové razítko |
---|---|
[ 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" ] |
Když je vstup do make-series
prázdný, výchozí chování make-series
vytvoří prázdný výsledek.
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
Výstup
Počet |
---|
0 |
Použití kind=nonempty
v make-series
vytvoří neprázdný výsledek výchozích hodnot:
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
Výstup
avg_metric | časové razítko |
---|---|
[ 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" ] |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro