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] [,
...] on
AxisColumn [from
start] [to
end] step
step [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()
gibicount()
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şleciylemake-series
kullanılabilir.AxisColumn: Serinin genellikle veya
timespan
türündedatetime
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 sorgusuhint.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] [,
...] on
AxisColumnin
range(
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çindemake-series
double(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
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" ] |