operator make-series
Utwórz serię określonych zagregowanych wartości wzdłuż określonej osi.
Składnia
T| make-series
[MakeSeriesParameters] [Column=
] Agregacja [default
=
DefaultValue] [,
...] on
OśKolumn [from
start] [koniec]to
krok [by
[Kolumna=
] step
GroupExpression [,
...]]
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Kolumna | string |
Nazwa kolumny wyników. Wartość domyślna to nazwa pochodząca z wyrażenia. | |
Defaultvalue | Wartość skalarna | Wartość domyślna do użycia zamiast nieobecnych wartości. Jeśli nie ma wiersza z określonymi wartościami elementu AxisColumn i GroupExpression, odpowiedni element tablicy zostanie przypisany do wartości DefaultValue. Wartość domyślna to 0. | |
Agregacja | string |
✔️ | Wywołanie funkcji agregacji, takiej jak count() lub avg() , z nazwami kolumn jako argumentami. Zobacz listę funkcji agregacji. Z operatorem make-series można używać tylko funkcji agregacji, które zwracają wyniki liczbowe. |
Ośkolumn | string |
✔️ | Kolumna, według której zostanie uporządkowana seria. Zazwyczaj wartości kolumn będą typu datetime lub timespan wszystkie typy liczbowe są akceptowane. |
Uruchomić | Wartość skalarna | ✔️ | Niska wartość powiązana kolumny AxisColumn dla każdej serii do skompilowania. Jeśli uruchomienie nie zostanie określone, będzie to pierwszy pojemnik lub krok zawierający dane w każdej serii. |
Końcu | Wartość skalarna | ✔️ | Wysoka wartość niewzwiązana włącznie z kolumną AxisColumn. Ostatni indeks szeregów czasowych jest mniejszy niż ta wartość i zostanie uruchomiona wraz z wielokrotną liczbą całkowitą , która jest mniejsza niż koniec. Jeśli koniec nie zostanie określony, będzie górną granicą ostatniego pojemnika lub kroku, który zawiera dane dla każdej serii. |
Krok | Wartość skalarna | ✔️ | Różnica lub rozmiar pojemnika między dwoma kolejnymi elementami tablicy AxisColumn . Aby uzyskać listę możliwych interwałów czasu, zobacz przedział czasu. |
GroupExpression | Wyrażenie w kolumnach, które udostępnia zestaw odrębnych wartości. Zazwyczaj jest to nazwa kolumny, która zawiera już ograniczony zestaw wartości. | ||
MakeSeriesParameters | Zero lub więcej parametrów rozdzielanych spacjami w postaci wartości nazwy= , która kontroluje zachowanie. Zobacz obsługiwane parametry serii make. |
Uwaga
Parametry początkowe, końcowe i krok są używane do tworzenia tablicy wartości AxisColumn . Tablica składa się z wartości między rozpoczęciem i końcem, a wartość kroku reprezentująca różnicę między jednym elementem tablicy a następnym. Wszystkie wartości agregacji są uporządkowane odpowiednio dla tej tablicy.
Obsługiwane parametry serii make
Nazwa | Opis |
---|---|
kind |
Generuje wynik domyślny, gdy dane wejściowe operatora serii make-series są puste. Wartość: nonempty |
hint.shufflekey=<key> |
shufflekey Zapytanie współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. Zobacz zapytanie shuffle |
Uwaga
Tablice generowane przez serię make-series są ograniczone do 1048576 wartości (2^20). Próba wygenerowania większej tablicy z serią make-series spowoduje błąd lub obciętą tablicę.
Składnia alternatywna
T| make-series
[Kolumna=
] Agregacja [default
=
DefaultValue] [,
...] on
Ośkolumnin
range(
Uruchomić,
Zatrzymać,
Krok)
[by
[Kolumna=
] GroupExpression [,
...]]
Wygenerowana seria z składni alternatywnej różni się od głównej składni w dwóch aspektach:
- Wartość zatrzymania jest włącznie.
- Łączenie osi indeksu jest generowane z wartością bin() i nie bin_at(), co oznacza, że rozpoczęcie może nie być uwzględnione w wygenerowanej serii.
Zaleca się używanie głównej składni make-series, a nie alternatywnej składni.
Zwraca
Wiersze wejściowe są rozmieszczane w grupach o tych samych wartościach by
wyrażeń i wyrażeniu bin_at(
startowym)
kroku,
AxisColumn,
. Następnie określone funkcje agregacji są obliczane dla każdej grupy, tworząc wiersz dla każdej grupy. Wynik zawiera kolumny, kolumnę by
AxisColumn , a także co najmniej jedną kolumnę dla każdej obliczonej agregacji. (Agregacje dla wielu kolumn lub wyników nieliczbowych nie są obsługiwane).
Ten wynik pośredni zawiera tyle wierszy, ile istnieje różne kombinacje by
wartości i bin_at(
Wartośćpoczątkowa)
kroku,
AxisColumn,
.
Na koniec wiersze z wyniku pośredniego rozmieszczone w grupach o tych samych wartościach by
wyrażeń, a wszystkie zagregowane wartości są rozmieszczane w tablice (wartości dynamic
typu). Dla każdej agregacji znajduje się jedna kolumna zawierająca tablicę o tej samej nazwie. Ostatnia kolumna to tablica zawierająca wartości kolumny AxisColumn binned zgodnie z określonym krokiem.
Uwaga
Chociaż można podać dowolne wyrażenia zarówno dla wyrażeń agregacji, jak i grupowania, bardziej wydajne jest używanie prostych nazw kolumn.
Lista funkcji agregacji
Funkcja | Opis |
---|---|
avg() | Zwraca średnią wartość w grupie |
avgif() | Zwraca średnią z predykatem grupy |
count() | Zwraca liczbę grup |
countif() | Zwraca liczbę z predykatem grupy |
dcount() | Zwraca przybliżoną odrębną liczbę elementów grupy |
dcountif() | Zwraca przybliżoną liczbę unikatowych wartości z predykatem grupy |
Max() | Zwraca maksymalną wartość w grupie |
maxif() | Zwraca wartość maksymalną z predykatem grupy |
Min() | Zwraca minimalną wartość w grupie |
minif() | Zwraca wartość minimalną z predykatem grupy |
percentyl() | Zwraca wartość percentylu w grupie |
take_any() | Zwraca losową wartość niepustą dla grupy |
stdev() | Zwraca odchylenie standardowe w grupie |
Sum() | Zwraca sumę elementów w grupie |
sumif() | Zwraca sumę elementów z predykatem grupy |
wariancja() | Zwraca wariancję w grupie |
Lista funkcji analizy serii
Funkcja | Opis |
---|---|
series_fir() | Stosuje filtr skończonej odpowiedzi impulsowej |
series_iir() | Stosuje filtr Nieskończona odpowiedź impulsowa |
series_fit_line() | Znajduje linię prostą, która jest najlepszym przybliżeniem danych wejściowych |
series_fit_line_dynamic() | Znajduje wiersz, który jest najlepszym przybliżeniem danych wejściowych, zwracając obiekt dynamiczny |
series_fit_2lines() | Znajduje dwa wiersze, które są najlepszym przybliżeniem danych wejściowych |
series_fit_2lines_dynamic() | Znajduje dwa wiersze, które są najlepszym przybliżeniem danych wejściowych, zwracając obiekt dynamiczny |
series_outliers() | Ocenia punkty anomalii w serii |
series_periods_detect() | Znajduje najbardziej znaczące okresy, które istnieją w szeregach czasowych |
series_periods_validate() | Sprawdza, czy szereg czasowy zawiera okresowe wzorce danej długości |
series_stats_dynamic() | Zwracanie wielu kolumn ze wspólnymi statystykami (minimalna/maksymalna/wariancja/stdev/average) |
series_stats() | Generuje wartość dynamiczną z typowymi statystykami (minimalna/maksymalna/wariancja/stdev/average) |
Aby uzyskać pełną listę funkcji analizy serii, zobacz: Funkcje przetwarzania serii
Lista funkcji interpolacji serii
Funkcja | Opis |
---|---|
series_fill_backward() | Wykonuje interpolację uzupełniania wstecznego brakujących wartości w serii |
series_fill_const() | Zamienia brakujące wartości w serii na określoną wartość stałą |
series_fill_forward() | Wykonuje interpolację wypełnienia do przodu brakujących wartości w serii |
series_fill_linear() | Wykonuje interpolację liniową brakujących wartości w serii |
- Uwaga: Funkcje interpolacji domyślnie zakładają
null
, że brakuje wartości. W związku z tym określdefault=
wartość double(null
),make-series
jeśli zamierzasz używać funkcji interpolacji dla serii.
Przykłady
Tabela przedstawiająca tablice liczb i średnich cen każdego owocu od każdego dostawcy uporządkowanego według znacznika czasu z określonym zakresem. W danych wyjściowych znajduje się wiersz dla każdej odrębnej kombinacji owoców i dostawcy. W kolumnach wyjściowych są wyświetlane owoce, dostawca i tablice: liczba, średnia i cała oś czasu (od 2016-01-01 do 2016-01-10). Wszystkie tablice są sortowane według odpowiedniego znacznika czasu, a wszystkie luki są wypełnione wartościami domyślnymi (0 w tym przykładzie). Wszystkie inne kolumny wejściowe są ignorowane.
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 | sygnatura czasowa |
---|---|
[ 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" ] |
Gdy dane wejściowe make-series
są puste, domyślne zachowanie elementu powoduje wygenerowanie pustego make-series
wyniku.
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
Dane wyjściowe
Liczba |
---|
0 |
Użycie kind=nonempty
polecenia w make-series
spowoduje wygenerowanie niepustego wyniku wartości domyślnych:
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
Dane wyjściowe
avg_metric | sygnatura czasowa |
---|---|
[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ] |
[ "2017-01-01T00:00:00.000000Z", "2017-01-02T00:00:00.000000Z", "2017-01-03T00:00:00.000000Z", "2017-01-04T00:00:00.000000Z", "2017-01-05T00:00:00.000000Z", "2017-01-06T00:00:00.000000Z", "2017-01-07T00:00:00.000000Z", "2017-01-08T00:00:00.000000Z", "2017-01-09T00:00:00.000000Z" ] |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla