Megosztás a következőn keresztül:


make-series operátor

Meghatározott összesített értékek sorozatának létrehozása egy megadott tengely mentén.

Syntax

T| make-series [MakeSeriesParameters] [Column=] Aggregation [default=DefaultValue] [, ...] onAxisColumn [fromstart] [toend] stepstep [by [Column=] GroupExpression [, ...]]

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Oszlop string Az eredményoszlop neve. A kifejezésből származtatott név alapértelmezett értéke.
DefaultValue Skalár A hiányzó értékek helyett használandó alapértelmezett érték. Ha nincs axisColumn és GroupExpression értékeket tartalmazó sor, akkor a tömb megfelelő eleme defaultValue értékhez lesz rendelve. Az alapértelmezett érték 0.
Összesítés string ✔️ Egy aggregációs függvény meghívása, például count() vagy avg(), argumentumként oszlopnevekkel. Tekintse meg az összesítő függvények listáját. Az operátorral make-series csak olyan aggregációs függvények használhatók, amelyek numerikus eredményeket adnak vissza.
AxisColumn string ✔️ Az az oszlop, amellyel az adatsor rendezve lesz. Az oszlopértékek általában vagy timespan típusúak datetime lesznek, de minden numerikus típus elfogadott.
Elkezd Skalár ✔️ Az egyes összeállítandó sorozatok AxisColumn értékének alacsony kötött értéke. Ha az indítás nincs megadva, akkor az lesz az első intervallum vagy lépés, amely minden adatsorban tartalmaz adatokat.
Végén Skalár ✔️ Az AxisColumn nagy kötött, nem befogadó értéke. Az idősor utolsó indexe kisebb ennél az értéknél, és a végpontnál kisebb lépés egész számával kezdődik. Ha nincs megadva vég , akkor az lesz az utolsó intervallum vagy lépés felső határa, amely adatsoronként tartalmaz adatokat.
Lépés Skalár ✔️ Az AxisColumn tömb két egymást követő eleme közötti különbség vagy intervallumméret. A lehetséges időintervallumok listáját az időtartományban találja.
GroupExpression Az oszlopok fölötti kifejezés, amely különböző értékek halmazát biztosítja. Ez általában egy olyan oszlopnév, amely már korlátozott értékkészletet biztosít.
MakeSeriesParameters Nulla vagy több szóközzel elválasztott paraméter névérték= formájában, amely a viselkedést vezérli. Lásd a támogatott adatsor-paramétereket.

Megjegyzés

A start, a end és a step paraméterek az AxisColumn értékek tömbjének összeállítására szolgálnak. A tömb a kezdő és a záró értékből áll, és a lépés értéke az egyik tömbelem és a következő közötti különbséget jelöli. Az összes összesítési érték ebben a tömbben van rendezve.

Támogatott adatsorparaméterek

Név Leírás
kind Alapértelmezett eredményt ad vissza, ha a make-series operátor bemenete üres. Érték: nonempty
hint.shufflekey=<key> A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. Lásd: elosztási lekérdezés

Megjegyzés

A make-series által létrehozott tömbök 1048576 értékekre korlátozódnak (2^20). Ha nagyobb tömböt próbál létrehozni make-series használatával, az hibát vagy csonkolt tömböt eredményez.

Másodlagos szintaxis

T| make-series [Oszlop=] Összesítés [default=DefaultValue] [, ...] onAxisColumninrange(Elkezd,állj,Lépés) [by [Oszlop=] GroupExpression [, ...]]

Az alternatív szintaxisból generált adatsorok két szempontból különböznek a fő szintaxistól:

  • A stop érték a befogadó.
  • Az indextengely dobozolása bin() és nem bin_at() használatával jön létre, ami azt jelenti, hogy az indítás nem szerepelhet a generált sorozatban.

Javasoljuk, hogy a make-series fő szintaxisát használja, és ne az alternatív szintaxist.

Válaszok

A bemeneti sorok csoportokba vannak rendezve, amelyek a kifejezések és az bybin_at(AxisColumn,lépéskezdő), kifejezés értékeit tartalmaznak. Ezután a megadott aggregációs függvények számítása minden csoportra történik, és minden csoporthoz egy sort hoz létre. Az eredmény tartalmazza az oszlopokat, az byAxisColumn oszlopot és minden számított összesítéshez legalább egy oszlopot. (A több oszlopra vagy nem numerikus eredményre vonatkozó összesítések nem támogatottak.)

Ennek a köztes eredménynek annyi sora van, mint a és bin_at(az AxisColumn,lépésindítási), értékeinek különböző kombinációiby.

Végül a köztes eredmény sorait a kifejezések azonos értékeit by tartalmazó csoportokba rendezi, és az összes összesített érték tömbökbe (típusú értékekbe dynamic ) van rendezve. Minden összesítéshez egy oszlop tartalmazza a tömböt ugyanazzal a névvel. Az utolsó oszlop egy tömb, amely a megadott lépés szerint rögzített AxisColumn értékeit tartalmazza.

Megjegyzés

Bár tetszőleges kifejezéseket is megadhat az összesítő és a csoportosítási kifejezésekhez, hatékonyabb az egyszerű oszlopnevek használata.

Összesítő függvények listája

Függvény Leírás
avg() Átlagértéket ad vissza a csoporton belül
avgif() Átlagot ad vissza a csoport predikátumával
count() A csoport számát adja vissza
countif() Egy darabszámot ad vissza a csoport predikátumával
dcount() A csoportelemek hozzávetőleges számát adja eredményül.
dcountif() A csoport predikátumával egy hozzávetőleges eltérő számot ad vissza.
max() A csoporton belüli maximális értéket adja eredményül.
maxif() A csoport predikátumával megadott maximális értéket adja eredményül.
min() A csoporton belüli minimális értéket adja eredményül.
minif() A csoport predikátumával rendelkező minimális értéket adja eredményül.
percentilis() A csoport percentilisértékét adja eredményül.
take_any() Véletlenszerű, nem üres értéket ad vissza a csoporthoz
stdev() A csoport szórását adja eredményül.
sum() A csoport elemeinek összegét adja eredményül.
sumif() A csoport predikátumával rendelkező elemek összegét adja eredményül.
variance() A csoport varianciáját adja eredményül.

Sorozatelemzési függvények listája

Függvény Leírás
series_fir() Véges impulzusválasz szűrő alkalmazása
series_iir() Végtelen impulzusválasz-szűrő alkalmazása
series_fit_line() Megkeres egy egyenes vonalat, amely a bemenet legjobb közelítése
series_fit_line_dynamic() Megkeresi a bemenet legjobb közelítését tartalmazó vonalat, amely dinamikus objektumot ad vissza
series_fit_2lines() Két olyan sor keresése, amelyek a bemenet legjobb közelítését képezik
series_fit_2lines_dynamic() Két olyan sort keres, amely a bemenet legjobb közelítése, dinamikus objektumot ad vissza
series_outliers() Anomáliák pontszáma egy sorozatban
series_periods_detect() Az idősorok közül a legjelentősebb időszakokat keresi meg
series_periods_validate() Annak ellenőrzése, hogy egy idősor adott hosszúságú időszakos mintákat tartalmaz-e
series_stats_dynamic() Több oszlop visszaadása a gyakori statisztikákkal (min/max/variancia/stdev/average)
series_stats() Dinamikus értéket hoz létre a gyakori statisztikákkal (min/max/variancia/stdev/average)

A sorozatelemzési függvények teljes listáját lásd: Sorozatfeldolgozási függvények

Adatsor-interpolációs függvények listája

Függvény Leírás
series_fill_backward() A hiányzó értékek visszamenőleges kitöltési interpolációját hajtja végre egy sorozatban
series_fill_const() Az adatsor hiányzó értékeit egy megadott állandó értékre cseréli
series_fill_forward() A hiányzó értékek előre történő kitöltési interpolációját hajtja végre egy sorozatban
series_fill_linear() A hiányzó értékek lineáris interpolációját hajtja végre egy sorozatban
  • Megjegyzés: Az interpolációs függvények alapértelmezés szerint hiányzó értéket feltételeznek null . Ezért adja meg default= a make-seriesdouble() értéketnull, ha interpolációs függvényeket kíván használni az adatsorhoz.

Példák

Egy táblázat, amely az egyes szállítóktól származó egyes gyümölcsök számainak és átlagárainak tömbjait mutatja be, amelyeket a megadott tartományú időbélyeggel rendeltek meg. A kimenetben egy sor található a gyümölcs és a szállító különböző kombinációihoz. A kimeneti oszlopok a következő gyümölcsöket, szállítókat és tömböket jelenítik meg: darabszám, átlag és a teljes idősor (2016-01-01-től 2016-01-10-ig). Az összes tömb a megfelelő időbélyeg szerint van rendezve, és az összes rés alapértelmezett értékekkel van kitöltve (ebben a példában 0). A rendszer figyelmen kívül hagyja az összes többi bemeneti oszlopot.

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

Három tábla. Az első a nyers adatokat sorolja fel, a második csak a szállító és a gyümölcs dátum kombinációit tartalmazza, a harmadik pedig a make-series eredményeket.

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 időbélyeg
[ 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" ]

Ha a bemenet make-series üres, az alapértelmezett viselkedés make-series üres eredményt ad.

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 

Kimenet

Darabszám
0

Az in make-series használata kind=nonempty az alapértelmezett értékek nem üres eredményét eredményezi:

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 

Kimenet

avg_metric időbélyeg
[
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"
]