Bagikan melalui


operator make-series

Berlaku untuk: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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, tentukan default=double(null) di make-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

Tiga tabel. Pertama mencantumkan data mentah, yang kedua hanya memiliki kombinasi tanggal-buah-pemasok yang berbeda, dan yang ketiga berisi hasil seri make.

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