make-series işleci

Belirtilen bir eksen boyunca belirtilen toplanmış değer serisini oluşturun.

T | make-series sum(amount) default=0, avg(price) default=0 on timestamp from datetime(2016-01-01) to datetime(2016-01-10) step 1d by fruit, supplier

Syntax

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

Bağımsız değişkenler

  • Sütun: Sonuç sütunu için isteğe bağlı ad. Varsayılan olarak ifadeden türetilen bir addır.

  • DefaultValue: Eksik değerler yerine kullanılacak varsayılan değer. AxisColumn ve GroupExpression değerlerini içeren bir satır yoksa, sonuçlarda dizinin karşılık gelen öğesine defaultValue atanır. DefaultValue atlanırsa, 0 varsayılır.

  • Toplama: sütun adlarını bağımsız değişken olarak içeren veya avg()gibi count()bir toplama işlevine yapılan çağrı. Toplama işlevlerinin listesine bakın. Yalnızca sayısal sonuçlar döndüren toplama işlevleri işleciyle make-series kullanılabilir.

  • AxisColumn: Serinin genellikle veya timespantüründe datetime sıralandığı ancak tüm sayısal türlerin de kabul olduğu bir sütun.

  • start: (isteğe bağlı) Oluşturulacak serilerin her biri için AxisColumn'un düşük sınır değeri. start, end ve step , belirli bir aralık içinde bir AxisColumn değerleri dizisi oluşturmak ve belirtilen adım kullanılarak kullanılır. Tüm Toplama değerleri sırasıyla bu diziye sıralanır. Bu AxisColumn dizisi, çıktıda AxisColumn ile aynı ada sahip olan son çıkış sütunudur. Başlangıç değeri belirtilmezse başlangıç, her seride veri içeren ilk bölmedir (adım).

  • end: (isteğe bağlı) AxisColumn'un yüksek sınır (dahil olmayan) değeri. Zaman serisinin son dizini bu değerden küçüktür (ve başlangıç artı sonundan küçük olan adımın tamsayı katı olur). Bitiş değeri sağlanmazsa, her seri için veri içeren son bölmenin (adım) üst sınırı olur.

  • step: AxisColumn dizisinin ardışık iki öğesi arasındaki fark (yani bölme boyutu). Olası zaman aralıklarının listesi için bkz. zaman aralığı.

  • GroupExpression: Bir dizi ayrı değer sağlayan sütunlar üzerindeki ifade. Genellikle kısıtlı bir değer kümesi sağlayan bir sütun adıdır.

  • MakeSeriesParameters: Davranışı denetleen NameValue= biçiminde sıfır veya daha fazla (boşlukla ayrılmış) parametre. Aşağıdaki parametreler desteklenir:

    Adı Açıklama
    kind Seri yapma işlecinin girişi boş olduğunda varsayılan sonucu verir. Değer: nonempty
    hint.shufflekey=<key> Sorgu, shufflekey verileri bölümleme anahtarını kullanarak küme düğümlerinde sorgu yükünü paylaşır. Bkz . karıştırma sorgusu
    hint.strategy=shuffle Strateji shuffle sorgusu, her düğümün verilerin bir bölümünü işleyeceği küme düğümlerinde sorgu yükünü paylaşır. Bkz . karıştırma sorgusu

Not

Derleme serisi tarafından oluşturulan diziler 1048576 değerlerle sınırlıdır (2^20). Make-series ile daha büyük bir dizi oluşturmaya çalışmak hataya veya kesilmiş bir diziye neden olabilir.

Alternatif Söz Dizimi

T| make-series [Sütun=] Toplama [default=DefaultValue] [, ...] onAxisColumninrange(Başlatmak,Durdurmak,Adım) [by [Sütun=] GroupExpression [, ...]]

Alternatif söz diziminden oluşturulan seri, ana söz diziminden iki açıdan farklıdır:

  • Durdurma değeri dahil.
  • Dizin ekseninin gruplanması, bin_at() ile değil bin() ile oluşturulur; bu da başlangıç işleminin oluşturulan seriye dahil edilemediğini gösterir.

Alternatif söz diziminin değil, make-series ana söz diziminin kullanılması önerilir.

Döndürülenler

Giriş satırları, ifadelerin by ve AxisColumnstepstart), ifadesinin , aynı değerlerine bin_at( sahip gruplar halinde düzenlenir. Ardından, belirtilen toplama işlevleri her grup üzerinde hesaplanır ve her grup için bir satır oluşturulur. Sonuç, AxisColumn sütununu ve hesaplanan her toplama için en az bir sütunu içerirby. (Birden çok sütun veya sayısal olmayan sonuçlar üzerinde toplamalar desteklenmez.)

Bu ara sonuç, ve bin_at(AxisColumnstepstart), değerlerinin , ayrı birleşimleri by olduğu kadar çok satıra sahiptir.

Son olarak, ara sonuçtaki satırlar ifadelerin by aynı değerlerine sahip gruplar halinde düzenlenir ve tüm toplanan değerler diziler halinde düzenlenir (türdeki değerler dynamic ). Her toplama için, aynı ada sahip dizisini içeren bir sütun vardır. Son sütun, belirtilen adıma göre gruplandırılmış AxisColumn değerlerini içeren bir dizidir.

Not

Hem toplama hem de gruplandırma ifadeleri için rastgele ifadeler sağlayabilmenize rağmen, basit sütun adlarını kullanmak daha verimlidir.

Toplama işlevlerinin listesi

İşlev Açıklama
avg() Grup genelinde ortalama bir değer döndürür
avgif() Grubun koşuluyla bir ortalama döndürür
count() Grubun sayısını döndürür
countif() Grubun koşuluna sahip bir sayı döndürür
dcount() Grup öğelerinin yaklaşık ayrı sayısını döndürür
dcountif() Grubun koşuluyla yaklaşık bir ayrı sayı döndürür
max() Grup genelindeki en büyük değeri verir
maxif() Grubun koşuluyla en büyük değeri verir
min() Grup genelinde en düşük değeri verir
minif() Grubun koşuluyla en düşük değeri verir
percentile() Grup genelinde yüzdebirlik değeri verir
take_any() Grup için rastgele boş olmayan bir değer döndürür
stdev() Grup genelinde standart sapması verir
sum() Grup içindeki öğelerin toplamını döndürür
sumif() Grubun koşuluna sahip öğelerin toplamını döndürür
variance() Grup genelinde varyansı verir

Seri çözümleme işlevlerinin listesi

İşlev Açıklama
series_fir() Sonlu Dürtü Yanıtı filtresi uygular
series_iir() Sonsuz Dürtü Yanıtı filtresi uygular
series_fit_line() Girişin en iyi tahmini olduğu düz bir çizgi bulur
series_fit_line_dynamic() Girişin en iyi yaklaşık değeri olan ve dinamik nesne döndüren bir satır bulur
series_fit_2lines() Girişin en iyi tahmini olan iki satırı bulur
series_fit_2lines_dynamic() Girişin en iyi yaklaşık değeri olan ve dinamik nesne döndüren iki satır bulur
series_outliers() Serideki anomali puanlarını puanlar
series_periods_detect() Bir zaman serisinde var olan en önemli dönemleri bulur
series_periods_validate() Zaman serisinin belirli uzunluklarda düzenli desenler içerip içermediğini denetler
series_stats_dynamic() Ortak istatistiklerle birden çok sütun döndürme (min/max/varyans/stdev/ortalama)
series_stats() Ortak istatistiklerle dinamik bir değer oluşturur (min/max/varyans/stdev/average)

Seri analizi işlevlerinin tam listesi için bkz. Seri işleme işlevleri

Seri ilişkilendirme işlevlerinin listesi

İşlev Açıklama
series_fill_backward() Serideki eksik değerleri geriye doğru doldurma ilişkilendirmesi gerçekleştirir
series_fill_const() Bir serideki eksik değerleri belirtilen sabit değerle değiştirir
series_fill_forward() Serideki eksik değerlerin ileriye doğru dolgu ilişkilendirmesini gerçekleştirir
series_fill_linear() Serideki eksik değerlerin doğrusal ilişkilendirmesini gerçekleştirir
  • Not: İlişkilendirme işlevleri varsayılan olarak eksik bir değer olarak varsayılır null . Bu nedenle, seri için ilişkilendirme işlevlerini kullanmayı planlıyorsanız içinde make-seriesdouble(null) değerini belirtindefault=.

Örnekler

Belirtilen aralığa sahip zaman damgası tarafından sipariş edilen her tedarikçinin her bir meyvenin sayı dizilerini ve ortalama fiyatlarını gösteren tablo. Her farklı meyve ve tedarikçi birleşimi için çıkışta bir satır vardır. Çıkış sütunları meyve, sağlayıcı ve dizilerini gösterir: sayı, ortalama ve zaman çizelgesinin tamamı (2016-01-01'den 2016-01-10'a kadar). Tüm diziler ilgili zaman damgasına göre sıralanır ve tüm boşluklar varsayılan değerlerle doldurulur (bu örnekte 0). Diğer tüm giriş sütunları yoksayılır.

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

Three tables. The first lists raw data, the second has only distinct supplier-fruit-date combinations, and the third contains the make-series results.

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

girişi make-series boş olduğunda, varsayılan davranışı make-series boş bir sonuç da üretir.

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
| limit 0
| make-series avg(metric) default=1.0 on timestamp from stime to etime step interval 
| count 
Count
0

içinde make-series kullanıldığında kind=nonempty varsayılan değerlerin boş olmayan bir sonucu elde edilir:

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
| limit 0
| make-series kind=nonempty avg(metric) default=1.0 on timestamp from stime to etime step interval 
avg_metric timestamp
[
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"
]