Delen via


operator make-series

Maak een reeks opgegeven geaggregeerde waarden langs een opgegeven as.

Syntax

T| make-series [MakeSeriesParameters] [Column=] Aggregation [default=DefaultValue] [, ...] onAxisColumn [frombegin] [toeinde] stepstap [by [Kolom=] GroupExpression [, ...]]

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Kolom string De naam voor de resultaatkolom. De standaardinstelling is een naam die is afgeleid van de expressie.
Standaardwaarde Scalaire Een standaardwaarde die moet worden gebruikt in plaats van ontbrekende waarden. Als er geen rij is met specifieke waarden van AxisColumn en GroupExpression, wordt aan het bijbehorende element van de matrix een DefaultValue toegewezen. De standaardwaarde is 0.
Aggregatie string ✔️ Een aanroep van een aggregatiefunctie, zoals count() of avg(), met kolomnamen als argumenten. Bekijk de lijst met aggregatiefuncties. Alleen aggregatiefuncties die numerieke resultaten retourneren, kunnen worden gebruikt met de make-series operator.
AxisColumn string ✔️ De kolom waarop de reeks wordt geordend. Meestal zijn de kolomwaarden van het type datetime of timespan worden alle numerieke typen geaccepteerd.
start Scalaire ✔️ De lage waarde van de AxisColumn voor elk van de reeksen die moeten worden gemaakt. Als start niet is opgegeven, is dit de eerste bin of stap die gegevens in elke reeks bevat.
Einde Scalaire ✔️ De hoge niet-inclusieve waarde van de AxisColumn. De laatste index van de tijdreeks is kleiner dan deze waarde en is begin plus geheel getal van stap die kleiner is dan einde. Als einde niet is opgegeven, is dit de bovengrens van de laatste bin, of stap, die gegevens per reeks bevat.
Stap Scalaire ✔️ Het verschil, of bin-grootte, tussen twee opeenvolgende elementen van de matrix AxisColumn . Zie periode voor een lijst met mogelijke tijdsintervallen.
Groepsexpressie Een expressie over de kolommen die een set afzonderlijke waarden biedt. Meestal is het een kolomnaam die al een beperkte set waarden bevat.
MakeSeriesParameters Nul of meer door spaties gescheiden parameters in de vorm van Naamwaarde= die het gedrag bepalen. Zie ondersteunde make series-parameters.

Notitie

De parameters begin, einde en stap worden gebruikt om een matrix met AxisColumn-waarden te maken. De matrix bestaat uit waarden tussen begin en einde, waarbij de stapwaarde het verschil aangeeft tussen het ene matrixelement en het volgende. Alle aggregatiewaarden worden respectievelijk in deze matrix gerangschikt.

Ondersteunde make series-parameters

Naam Beschrijving
kind Produceert een standaardresultaat wanneer de invoer van de operator make-series leeg is. Waarde: nonempty
hint.shufflekey=<key> De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. Bekijk willekeurige query

Notitie

De matrices die door make-series worden gegenereerd, zijn beperkt tot 1048576 waarden (2^20). Als u een grotere matrix met make-series probeert te genereren, resulteert dit in een fout of een afgekapte matrix.

Alternatieve syntaxis

T| make-series [Kolom=] Aggregatie [default=Standaardwaarde] [, ...] onAxisColumninrange(Start,Stoppen,Stap) [by [Kolom=] GroupExpression [, ...]]

De gegenereerde reeks van de alternatieve syntaxis verschilt in twee aspecten van de hoofdsyntaxis:

  • De stopwaarde is inclusief.
  • Binning van de indexas wordt gegenereerd met bin() en niet bin_at(), wat betekent dat start mogelijk niet wordt opgenomen in de gegenereerde reeks.

Het is raadzaam om de hoofdsyntaxis van make-series te gebruiken en niet de alternatieve syntaxis.

Retouren

De invoerrijen zijn gerangschikt in groepen met dezelfde waarden als de byexpressies en debeginexpressie) van de bin_at(stap AxisColumn,,. Vervolgens worden de opgegeven aggregatiefuncties berekend voor elke groep, waardoor een rij voor elke groep wordt geproduceerd. Het resultaat bevat de by kolommen, de kolom AxisColumn en ten minste één kolom voor elke berekende aggregatie. (Aggregaties over meerdere kolommen of niet-numerieke resultaten worden niet ondersteund.)

Dit tussenliggende resultaat heeft net zoveel rijen als er afzonderlijke combinaties van en bin_at(Beginwaarden) van byde AxisColumn-stap,, zijn.

Ten slotte worden de rijen van het tussenliggende resultaat gerangschikt in groepen met dezelfde waarden van de by expressies en worden alle geaggregeerde waarden gerangschikt in matrices (waarden van het dynamic type). Voor elke aggregatie is er één kolom met de bijbehorende matrix met dezelfde naam. De laatste kolom is een matrix met de waarden van AxisColumn binned volgens de opgegeven stap.

Notitie

Hoewel u willekeurige expressies kunt opgeven voor zowel de aggregatie- als groeperingsexpressie, is het efficiënter om eenvoudige kolomnamen te gebruiken.

Lijst met aggregatiefuncties

Functie Beschrijving
avg() geeft als resultaat een gemiddelde waarde voor de hele groep
avgif() geeft als resultaat een gemiddelde met het predicaat van de groep
count() geeft als resultaat een telling van de groep
countif() geeft als resultaat een telling met het predicaat van de groep
dcount() geeft als resultaat een geschatte afzonderlijke telling van de groepselementen
dcountif() geeft als resultaat een bij benadering uniek aantal met het predicaat van de groep
max() Retourneert de maximumwaarde voor de groep
maxif() Geeft als resultaat de maximumwaarde met het predicaat van de groep
min() geeft als resultaat de minimumwaarde voor de groep
minif() geeft als resultaat de minimumwaarde met het predicaat van de groep
percentiel() Retourneert de percentielwaarde in de groep
take_any() Retourneert een willekeurige niet-lege waarde voor de groep
stdev() geeft als resultaat de standaarddeviatie in de groep
sum() Geeft als resultaat de som van de elementen in de groep
sumif() Geeft als resultaat de som van de elementen met het predicaat van de groep
variantie() Retourneert de variantie in de groep

Lijst met reeksanalysefuncties

Functie Beschrijving
series_fir() Past het filter Eindige impulsreactie toe
series_iir() Het filter Infinite Impulse Response toepassen
series_fit_line() Hiermee wordt een rechte lijn gevonden die de beste benadering van de invoer is
series_fit_line_dynamic() Hiermee wordt een lijn gevonden die de beste benadering van de invoer is en dynamisch object retourneert
series_fit_2lines() Hiermee vindt u twee regels die de beste benadering van de invoer zijn
series_fit_2lines_dynamic() Hiermee vindt u twee regels die de beste benadering van de invoer zijn, waarbij dynamisch object wordt geretourneerd
series_outliers() Scores voor anomaliepunten in een reeks
series_periods_detect() Hiermee vindt u de belangrijkste perioden in een tijdreeks
series_periods_validate() Controleert of een tijdreeks periodieke patronen van opgegeven lengten bevat
series_stats_dynamic() Meerdere kolommen retourneren met de algemene statistieken (min/max/variantie/stdev/gemiddelde)
series_stats() Genereert een dynamische waarde met de algemene statistieken (min/max/variantie/stdev/gemiddelde)

Zie voor een volledige lijst met reeksanalysefuncties: Reeksverwerkingsfuncties

Lijst met reeksinterpolatiefuncties

Functie Beschrijving
series_fill_backward() Voert achterwaartse opvulinterpolatie uit van ontbrekende waarden in een reeks
series_fill_const() Ontbrekende waarden in een reeks vervangen door een opgegeven constante waarde
series_fill_forward() Voert forward fill interpolatie van ontbrekende waarden in een reeks uit
series_fill_linear() Voert lineaire interpolatie van ontbrekende waarden in een reeks uit
  • Opmerking: Interpolatiefuncties gaan standaard uit van null een ontbrekende waarde. Geef default= daarom double(null) op in make-series als u interpolatiefuncties voor de reeks wilt gebruiken.

Voorbeelden

Een tabel met matrices van de getallen en de gemiddelde prijzen van elk fruit van elke leverancier die is besteld op basis van de tijdstempel met het opgegeven bereik. Er is een rij in de uitvoer voor elke afzonderlijke combinatie van fruit en leverancier. De uitvoerkolommen bevatten de vruchten, leveranciers en matrices van: aantal, gemiddelde en de hele tijdlijn (van 01-01-2016 tot 2016-01-10). Alle matrices worden gesorteerd op de respectieve tijdstempel en alle hiaten worden opgevuld met standaardwaarden (0 in dit voorbeeld). Alle andere invoerkolommen worden genegeerd.

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

Drie tabellen. De eerste bevat onbewerkte gegevens, de tweede bevat alleen afzonderlijke combinaties van leverancier-fruit-datums en de derde bevat de resultaten van de 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 tijdstempel
[ 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" ]

Wanneer de invoer voor make-series leeg is, produceert het standaardgedrag van make-series een leeg resultaat.

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 

Uitvoer

Count
0

Als u in make-series gebruiktkind=nonempty, wordt een niet-leeg resultaat van de standaardwaarden geproduceerd:

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 

Uitvoer

avg_metric tijdstempel
[
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"
]