Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Utwórz serię określonych zagregowanych wartości wzdłuż określonej osi.
Składnia
T| make-series [MakeSeriesParameters] [Kolumna=] Agregacja [ default= DefaultValue] [, ...] onOśKolumn [frompoczątek] [ to koniec] step krok [by [ ] = [ ...]]
Dowiedz się więcej na temat konwencji składni.
Parametry
| Nazwisko | Typ | Wymagania | opis |
|---|---|---|---|
| Kolumna | string |
Nazwa kolumny wyników. Domyślnie nazwa pochodzi z wyrażenia . | |
| DefaultValue | skalar | Wartość domyślna, która ma być używana zamiast braków wartości. Jeśli nie ma wiersza z określonymi wartościami kolumn AxisColumn i GroupExpression, odpowiedni element tablicy ma przypisaną wartość 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. Operator może używać make-series tylko funkcji agregacji, które zwracają wyniki liczbowe. |
| Kolumna osi | string |
✔️ | Kolumna, według której jest uporządkowana seria. Zazwyczaj wartości kolumn są typu datetime lub timespan wszystkie typy liczbowe są akceptowane. |
| skalar | ✔️ | Niska wartość granicy kolumny AxisColumn dla każdej serii do skompilowania. Jeśli nie określono wartości początkowej , jest to pierwszy pojemnik lub krok zawierający dane w każdej serii. | |
| koniec | skalar | ✔️ | Wysoka niezwiązana wartość inkluzywna kolumny AxisColumn. Ostatni indeks szeregów czasowych jest mniejszy niż ta wartość i rozpoczyna się plus liczba całkowita wielokrotności kroku , która jest mniejsza niż koniec. Jeśli koniec nie zostanie określony, jest to górna granica ostatniego pojemnika lub kroku, która zawiera dane dla każdej serii. |
| krok | skalar | ✔️ | 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 zawiera zestaw unikatowych wartości. Zazwyczaj jest to nazwa kolumny, która zawiera już ograniczony zestaw wartości. | ||
| MakeSeriesParameters | Zero lub więcej parametrów rozdzielonych spacjami w postaci wartości nazwy=, która kontroluje zachowanie. Zobacz obsługiwane parametry serii. |
Uwaga
Parametry start, endi step służą do tworzenia tablicy wartości AxisColumn . Tablica składa się z wartości między start i end, z wartością step reprezentującą 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
| Nazwisko | opis |
|---|---|
kind |
Tworzy wynik domyślny, gdy dane wejściowe operatora serii make-series są puste. Wartość: nonempty |
hint.shufflekey=<key> |
Zapytanie shufflekey współudzieli obciążenie zapytania w węzłach klastra przy użyciu klucza do partycjonowania danych. Zobacz zapytanie mieszania |
Uwaga
Tablice generowane przez serię make są ograniczone do 1048 576 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 [ ] = [ ] [default ...] =,onosi [ [in] range( [ ...]]
Wygenerowana seria z alternatywnej składni różni się od głównej składni w dwóch aspektach:
- Wartość zatrzymania jest inkluzywna.
- Łą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.
Zalecamy użycie 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 początkowymbin_at( Następnie określone funkcje agregacji są obliczane dla każdej grupy, tworząc wiersz dla każdej grupy. Wynik zawiera by kolumny, kolumnę AxisColumn , a także co najmniej jedną kolumnę dla każdej obliczonej agregacji. (Agregacje w wielu kolumnach lub nieliczbowych wynikach nie są obsługiwane).
Ten wynik pośredni zawiera tyle wierszy, ile istnieje odrębnych kombinacji wartości początkowych bybin_at( kroku,
Na koniec wiersze z wyniku pośredniego rozmieszczone w grupach o tych samych wartościach by wyrażeń i wszystkie zagregowane wartości są rozmieszczane w tablice (wartości dynamic typu). Dla każdej agregacji istnieje jedna kolumna zawierająca jej tablicę o tej samej nazwie. Ostatnia kolumna to tablica zawierająca wartości kolumny AxisColumn binned zgodnie z określonym krokiem.
Uwaga
Mimo że 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 |
| kowariancja() | Zwraca wariancję próbną dwóch zmiennych losowych |
| covarianceif() | Zwraca współwariancję próbki dwóch zmiennych losowych z predykatem |
| covariancep() | Zwraca kowariancję populacji dwóch zmiennych losowych |
| covariancepif() | Zwraca wariancję populacji dwóch zmiennych losowych z predykatem |
| dcount() | Zwraca przybliżoną liczbę unikatowych 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ść percentyla 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ę próbki w grupie |
| wariancja() | Zwraca wariancję próbki w grupie z predykatem |
| variancep() | Zwraca wariancję populacji w grupie |
| variancepif() | Zwraca wariancję populacji w grupie z predykatem |
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ę wsteczną 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 z brakującymi wartościami w serii |
| series_fill_linear() | Wykonuje interpolację liniową brakujących wartości w serii |
- Uwaga: Funkcje interpolacji domyślnie zakładają
null, że jest to brakująca wartość. W związku z tym określdefault=(null), 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łniane 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 są make-series 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
Wyjście
| Liczba |
|---|
| 0 |
Użycie kind=nonempty metody w make-series tworzy wynik niepusty 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
Wyjście
| 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" ] |
Używanie wartości make-series i mv-expand do wypełniania brakujących rekordów:
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
Wyjście
| Czas | Wartość | inny |
|---|---|---|
| 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 |