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] [, ...] onOśKolumn [fromstart] [koniec]tokrok [by [Kolumna=] stepGroupExpression [, ...]]

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] [, ...] onOśkolumninrange(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ę byAxisColumn , 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śl default=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

Trzy tabele. Pierwsza zawiera nieprzetworzone dane, druga zawiera tylko unikatowe kombinacje data-owoce-dostawcy, a trzecia zawiera wyniki serii make-series.

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"
]