operator make-series
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Membuat serangkaian nilai agregat tertentu di sepanjang sumbu yang ditentukan.
Sintaks
T | make-series
[MakeSeriesParameters] [Column =
] Agregasi [default
=
DefaultValue] [,
...] on
AxisColumn [from
start] [to
end] step
step [by
[Column =
] GroupExpression [,
...]]
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
Kolom | string |
Nama untuk kolom hasil. Default-nya adalah nama yang berasal dari ekspresi. | |
DefaultValue | skalar | Nilai default untuk digunakan alih-alih nilai yang tidak ada. Jika tidak ada baris dengan nilai spesifik AxisColumn dan GroupExpression, maka elemen array yang sesuai akan diberi DefaultValue. Defaultnya adalah 0. | |
Agregasi | string |
✔️ | Panggilan ke fungsi agregasi, seperti count() atau avg() , dengan nama kolom sebagai argumen. Lihat daftar fungsi agregasi. Hanya fungsi agregasi yang mengembalikan hasil numerik yang dapat digunakan dengan operator make-series . |
AxisColumn | string |
✔️ | Kolom tempat seri akan diurutkan. Biasanya nilai kolom akan berjenis datetime atau timespan tetapi semua jenis numerik diterima. |
mulai | skalar | ✔️ | Nilai terikat rendah dari AxisColumn untuk setiap seri yang akan dibangun. Jika mulai tidak ditentukan, ini akan menjadi bin pertama, atau langkah, yang memiliki data di setiap seri. |
akhir | skalar | ✔️ | Nilai non-inklusif terikat tinggi dari AxisColumn. Indeks terakhir dari rangkaian waktu lebih kecil dari nilai ini dan akan dimulai ditambah kelipatan bilangan bulat langkah yang lebih kecil dari akhir. Jika akhir tidak ditentukan, itu akan menjadi batas atas bin terakhir, atau langkah, yang memiliki data per setiap seri. |
langkah | skalar | ✔️ | Perbedaan, atau ukuran bin, antara dua elemen berturut-turut dari array AxisColumn . Untuk daftar kemungkinan interval waktu, lihat timespan. |
GroupExpression | Ekspresi di atas kolom yang menyediakan sekumpulan nilai yang berbeda. Biasanya berupa nama kolom yang telah menyediakan kumpulan nilai yang dibatasi. | ||
MakeSeriesParameters | Nol atau lebih parameter yang dipisahkan spasi dalam bentuk Nilai Nama = yang mengontrol perilaku. Lihat parameter seri buatan yang didukung. |
Catatan
Parameter mulai, akhir, dan langkah digunakan untuk membangun array nilai AxisColumn . Array terdiri dari nilai antara awal dan akhir, dengan nilai langkah yang mewakili perbedaan antara satu elemen array ke elemen berikutnya. Semua nilai Agregasi diurutkan ke array ini.
Parameter seri buatan yang didukung
Nama | Deskripsi |
---|---|
kind |
Menghasilkan hasil default saat input operator make-series kosong. Nilai: nonempty |
hint.shufflekey=<key> |
Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. Lihat kueri acak |
Catatan
Array yang dihasilkan oleh make-series dibatasi hingga nilai 1048576 nilai (2^20). Mencoba menghasilkan array yang lebih besar dengan make-series akan menghasilkan kesalahan atau array yang terpotong.
Sintaks Alternatif
T | make-series
[Kolom =
] Agregasi [ =
default
DefaultValue] [,
...] on
Langkah)
penghentian,
mulai ,
AxisColumnin
range(
[by
[Kolom =
] GroupExpression [,
...]]
Seri yang dihasilkan dari sintaks alternatif berbeda dari sintaks utama dalam dua aspek:
- Nilai stop bersifat inklusif.
- Binning sumbu indeks dihasilkan dengan bin() dan bukan bin_at(), yang berarti bahwa start mungkin tidak disertakan dalam seri yang dihasilkan.
Disarankan untuk menggunakan sintaks utama make-series dan bukan sintaks alternatif.
Mengembalikan
Baris input disusun ke dalam beberapa grup yang memiliki nilai ekspresi by
dan ekspresi bin_at(
AxisColumn,
step,
start)
yang sama. Kemudian fungsi agregasi yang ditentukan dihitung di setiap grup, menghasilkan baris untuk setiap grup. Hasilnya berisi kolom by
, kolom AxisColumn, serta setidaknya satu kolom untuk setiap agregat yang dihitung. (Agregasi melalui beberapa kolom atau hasil non-numerik tidak didukung.)
Hasil menengah ini memiliki banyak baris yang berisi berbagai macam kombinasi nilai by
dan bin_at(
AxisColumn,
step,
start)
.
Kemudian baris dari hasil menengah diatur ke dalam grup yang memiliki nilai ekspresi by
yang sama dan semua nilai agregat diatur ke array (nilai jenis dynamic
). Untuk setiap agregasi, ada satu kolom yang berisi array-nya dengan nama yang sama. Kolom terakhir adalah array yang berisi nilai AxisColumn yang di-bin sesuai dengan step yang ditentukan.
Catatan
Meskipun Anda dapat memberikan ekspresi arbitrer untuk ekspresi agregasi dan pengelompokan, akan lebih efisien untuk menggunakan nama kolom sederhana.
Daftar fungsi agregasi
Fungsi | Deskripsi |
---|---|
avg() | Mengembalikan nilai rata-rata di seluruh grup |
avgif() | Mengembalikan rata-rata dengan predikat grup |
count() | Mengembalikan jumlah grup |
countif() | Mengembalikan jumlah dengan predikat grup |
dcount() | Mengembalikan perkiraan jumlah elemen grup yang berbeda |
dcountif() | Mengembalikan perkiraan jumlah yang berbeda dengan predikat grup |
max() | Mengembalikan nilai maksimum di seluruh grup |
maxif() | Mengembalikan nilai maksimum dengan predikat grup |
min() | Mengembalikan nilai minimum di seluruh grup |
minif() | Mengembalikan nilai minimum dengan predikat grup |
percentile() | Mengembalikan nilai persentil di seluruh grup |
take_any() | Mengembalikan nilai acak yang tidak kosong untuk grup |
stdev() | Mengembalikan simpangan baku di seluruh grup |
sum() | Mengembalikan jumlah elemen dalam grup |
sumif() | Mengembalikan jumlah elemen dengan predikat grup |
varians() | Mengembalikan varian di seluruh grup |
Daftar fungsi analisis seri
Fungsi | Deskripsi |
---|---|
series_fir() | Menerapkan filter Respons Impuls Terbatas |
series_iir() | Menerapkan filter Respons Impuls Tanpa Batas |
series_fit_line() | Menemukan garis lurus yang merupakan perkiraan terbaik dari input |
series_fit_line_dynamic() | Menemukan garis yang merupakan perkiraan terbaik dari input, mengembalikan objek dinamis |
series_fit_2lines() | Menemukan dua garis yang merupakan perkiraan terbaik dari input |
series_fit_2lines_dynamic() | Menemukan dua garis yang merupakan perkiraan terbaik dari input, mengembalikan objek dinamis |
series_outliers() | Menghasilkan poin anomali dalam seri |
series_periods_detect() | Menemukan periode paling signifikan yang ada dalam rangkaian waktu |
series_periods_validate() | Memeriksa apakah rangkaian waktu berisi pola periodik dari panjang yang ditentukan |
series_stats_dynamic() | Mengembalikan beberapa kolom dengan statistik umum (min/max/variance/stdev/average) |
series_stats() | Menghasilkan nilai dinamis dengan statistik umum (min/max/varians/stdev/average) |
Untuk daftar lengkap fungsi analisis seri, lihat: Fungsi pemrosesan seri
Daftar fungsi interpolasi seri
Fungsi | Deskripsi |
---|---|
series_fill_backward() | Melakukan interpolasi pengisian mundur dari nilai yang hilang dalam seri |
series_fill_const() | Mengganti nilai yang hilang dalam seri dengan nilai konstanta tertentu |
series_fill_forward() | Melakukan interpolasi pengisian maju dari nilai yang hilang dalam seri |
series_fill_linear() | Melakukan interpolasi linier dari nilai yang hilang dalam seri |
- Catatan: Fungsi interpolasi secara default menganggap
null
sebagai nilai yang hilang. Oleh karena itu, tentukandefault=
double(null
) dimake-series
jika berniat menggunakan fungsi interpolasi untuk seri ini.
Contoh
Tabel yang menunjukkan array angka dan harga rata-rata setiap buah dari setiap pemasok yang diurutkan menurut stempel waktu dengan rentang yang ditentukan. Ada baris dalam output untuk setiap kombinasi buah dan pemasok yang berbeda. Kolom output menunjukkan buah, pemasok, dan array dari: jumlah, rata-rata, dan garis waktu keseluruhan (dari 2016-01-01 hingga 2016-01-10). Semua array diurutkan menurut stempel waktu masing-masing dan semua celah diisi dengan nilai default (0 dalam contoh ini). Semua kolom input lainnya diabaikan.
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 | rentang waktu |
---|---|
[ 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" ] |
Ketika input ke make-series
kosong, perilaku make-series
default menghasilkan hasil kosong.
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
Hasil
Hitung |
---|
0 |
Menggunakan kind=nonempty
di make-series
akan menghasilkan hasil yang tidak kosong dari nilai default:
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
Hasil
avg_metric | rentang waktu |
---|---|
[ 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" ] |