Sintaks Ekspresi Rangkaian Waktu Azure Time Series Insights Gen2
Gambaran Umum
Time Series Expression (TSX) adalah bahasa ekspresi berbasis string dengan pengetikan yang kuat. TSX digunakan untuk mewakili entitas berikut dalam Kueri Rangkaian Waktu.
- Filter
- Nilai
- Agregat
Ekspresi filter
Ekspresi filter digunakan untuk mewakili klausa boolean. Tabel berikut ini mencantumkan contoh filter:
TSX | Deskripsi |
---|---|
$event.PointValue.Double = 3.14 |
true untuk peristiwa dengan PointValue ganda sama dengan 3.14 |
$event.PointValue > 3.14 AND $event.Status.String = 'Good' |
true untuk peristiwa dengan PointValue lebih besar dari 3.14 dan status string Good |
$event.$ts > dt'2018-11-01T02:03:45Z' |
true untuk peristiwa dengan stempel waktu yang lebih besar dari 2018-11-01T02:03:45Z |
$event.PointEval.Bool = true |
true untuk peristiwa dengan PointValue sama dengan true |
Ekspresi nilai
Ekspresi nilai digunakan untuk menggambarkan nilai untuk variabel numerik dan kategoris. Ekspresi nilai bisa menjadi ekspresi referensi properti jenis Ganda atau Panjang.
Contohnya:
TSX | Catatan |
---|---|
$event.Temperature.Double |
Token terakhir dalam ekspresi nilai apa pun (dalam hal Double ini ) dibaca sebagai Jenis properti . |
$event.Temperature |
Jenis diasumsikan sebagai Double untuk properti yang diakses oleh satu token. |
$event['Temperature-Celsius'] |
Gunakan [ dan ] untuk melarikan diri token yang memiliki karakter khusus. Selain itu, gunakan \ dalam tanda kurung siku untuk menghindari karakter berikut: \ dan ' . |
$event.Temperature.Celsius.Double |
Gunakan . untuk mengakses properti berlapis. Saat mengakses properti berlapis, Jenis diperlukan. |
$event.Temperature['Celsius-C'].Double |
Gunakan [ dan ] untuk melarikan diri token yang memiliki karakter khusus saat mengakses properti berlapis. Selain itu, gunakan \ dalam tanda kurung siku untuk menghindari karakter berikut: \ dan ' . Saat mengakses properti berlapis, Jenis diperlukan. |
$event['Temperature']['Celsius'].Double |
Penggunaan [ dan ] untuk melarikan diri token diizinkan pada token apa pun. |
Jenis variabel numerik
Hasil ekspresi nilai harus berjenis Ganda atau Panjang .
Jenis variabel agregat
Hasil ekspresi nilai dapat berupa jenis apa pun yang didukung.
Jenis variabel kategoris
Hasil ekspresi nilai hanya dapat berupa String atau Jenis panjang .
Ekspresi agregasi
Ekspresi agregat digunakan untuk menggambarkan operasi agregasi yang akan digunakan pada kueri. Ekspresi agregat menghasilkan satu nilai untuk setiap interval. Ekspresi agregat dapat diterapkan pada variabel numerik dan agregat.
Ekspresi agregasi - jenis variabel numerik
Variabel numerik harus mengacu pada $value
.
Berikut adalah fungsi agregat yang didukung.
Fungsi Agregat | Contoh | Deskripsi |
---|---|---|
min |
min($value) |
Menghitung minimum $value per interval. null Menghindari nilai. Tidak dapat digunakan dengan interpolasi. |
max |
max($value) |
Menghitung maksimum $value per interval. null Menghindari nilai. Tidak dapat digunakan dengan interpolasi. |
sum |
sum($value) |
Menghitung jumlah dari $value semua peristiwa dalam interval. null Menghindari nilai. Tidak dapat digunakan dengan interpolasi. |
avg |
avg($value) |
Menghitung rata-rata $value dari semua peristiwa dalam interval. null Menghindari nilai. Tidak dapat digunakan dengan interpolasi. |
first |
first($value) |
Mengembalikan $value peristiwa pertama yang terjadi dalam interval menurut stempel waktu peristiwa. Tidak menghindarinull nilai. Tidak dapat digunakan dengan interpolasi. |
last |
last($value) |
Mengembalikan $value peristiwa terakhir yang terjadi dalam interval menurut stempel waktu peristiwa. Tidak menghindarinull nilai. Tidak dapat digunakan dengan interpolasi. |
median |
median($value) |
Mengembalikan $value peristiwa tengah dalam interval menurut stempel waktu peristiwa. Tidak menghindarinull nilai. Tidak dapat digunakan dengan interpolasi. |
stdev |
stdev($value) |
Mengembalikan $value simpangan baku peristiwa dalam interval. null Menghindari nilai. Tidak dapat digunakan dengan interpolasi. |
twsum |
twsum($value) |
Mengembalikan $value jumlah tertimbang waktu peristiwa dalam interval. Membutuhkan interpolasi. |
twavg |
twavg($value) |
Mengembalikan $value rata-rata waktu tertimbang dari peristiwa dalam interval. Membutuhkan interpolasi. |
left |
left($value) |
Mengembalikan di $value tepi kiri interval yang diberikan. Membutuhkan interpolasi. |
right |
right($value) |
Mengembalikan di $value tepi kanan interval yang diberikan. Membutuhkan interpolasi. |
Ekspresi agregasi - jenis variabel agregat
Variabel agregat harus merujuk ke Properti dalam payload peristiwa.
Berikut adalah fungsi agregat yang didukung.
Fungsi agregat | Contoh | Deskripsi |
---|---|---|
count |
count() |
Mengembalikan jumlah peristiwa per interval. |
min |
min($event.Temperature.Double) |
Menghitung minimum properti Suhu per interval. null Menghindari nilai. |
max |
max($event.Temperature.Long) |
Menghitung maksimum properti Suhu per interval. null Menghindari nilai. |
sum |
sum($event.Temperature.Double) |
Menghitung jumlah properti Suhu atas semua peristiwa dalam interval. null Menghindari nilai. |
avg |
avg($event.Temperature.Long) |
Menghitung rata-rata properti Suhu atas semua peristiwa dalam interval. null Menghindari nilai. |
first |
first($event.Temperature.String) |
Mengembalikan nilai yang pertama muncul (berdasarkan stempel waktu peristiwa) dari properti Suhu dari semua peristiwa dalam interval. Tidak menghindarinull nilai. |
last |
last($event.Temperature.String) |
Mengembalikan nilai yang terakhir terjadi (berdasarkan stempel waktu peristiwa) dari properti Suhu dari semua peristiwa dalam interval. Tidak menghindarinull nilai. |
median |
median($event.Temperature.String) |
Mengembalikan nilai tengah yang muncul (berdasarkan stempel waktu peristiwa) dari properti Suhu dari semua peristiwa dalam interval. Tidak menghindarinull nilai. |
stdev |
stdev($event.Temperature.String) |
Menghitung simpangan baku properti Suhu per interval. null Menghindari nilai. |
Untuk jenis variabel agregat , fungsi-fungsi ini dapat digabungkan dalam ekspresi agregat. Misalnya: max($event.Temperature.Long) - min($event.Temperature.Long)
.
Sintaks
Bagian ini menjelaskan konsep sintaks inti dan operator kueri yang digabungkan untuk membentuk ekspresi.
Literal yang didukung
Catatan
Harfiah di bawah ini digunakan untuk membentuk ekspresi, lihat artikel Jenis data yang didukung untuk daftar lengkap jenis data.
Jenis primitif | Harfiah |
---|---|
Bool | TRUE , FALSE |
DateTime | dt'2016-10-08T03:22:55.3031599Z' |
Double | 1.23 , 1.0 |
Panjang | 1 , 6 |
String | 'abc' |
TimeSpan | ts'P1Y2M3DT4M5.67S' |
Null | NULL |
Jenis operand yang didukung
Operasi | Jenis yang didukung | Catatan |
---|---|---|
<, >, <=, >= | Double, Long, DateTime, TimeSpan | |
=, !=, <> | Double, Long, String, Bool, DateTime, TimeSpan, NULL | <> setara dengan != |
+, -, *, / | Double, Long, DateTime, TimeSpan |
Untuk ekspresi perbandingan (<, >, <=, =,>= , !=), operand dapat berupa NULL atau berjenis yang sama. Dalam setiap ekspresi predikat, jenis operand sisi kiri (LHS) dan sisi kanan (RHS) divalidasi agar cocok. Kesalahan terjadi ketika jenis LHS dan RHS tidak setuju, atau operasi tidak diizinkan pada jenis tertentu.
Catatan
Tipe string tidak dapat diubah ke null di Warm Store:
- Perbandingan String terhadap NULL dan string kosong ('') bertingkah sama:
$event.p1.String = NULL
setara dengan$event.p1.String = ''
. - API dapat mengembalikan nilai NULL meskipun peristiwa asli berisi string kosong.
Di masa depan, perilaku yang sama akan ada di Cold Store.
Jangan mengambil dependensi pada nilai NULL di kolom String dan memperlakukannya dengan cara yang sama seperti string kosong.
- Pemeriksaan jenis diterapkan:
- Jenis properti apa pun diterima terhadap
NULL
harfiah. - Jenis LHS dan RHS harus cocok.
- Jenis properti apa pun diterima terhadap
Berikut adalah contoh properti p1 dan p2 jenis String, properti p3 jenis Double, dan properti berlapis yang disimpan sebagai p4.p5 jenis Double:
Filter | Apakah valid? | Catatan |
---|---|---|
$event.p1.String = 'abc' |
Ya | |
$event.p1.String = $event.p2.String |
Ya | |
$event.p1.String = NULL |
Ya | NULL cocok dengan jenis sisi kiri apa pun. |
$event.p3.Double = 'abc' |
Tidak | Tipe tidak cocok. |
$event.p3.Double = $event.p1.String |
Tidak | Tipe tidak cocok. |
$event.p1 = 'abc' |
Tidak | Tipe tidak cocok. |
$event.p1 = 1 |
Tidak | Tipe tidak cocok. |
$event.p1 = true |
Tidak | Tipe tidak cocok. |
$event.p1 = NULL |
Ya | p1 adalah satu-satunya token yang digunakan. Ditafsirkan sebagai $event.p1.Double = NULL |
$event['p1'] != NULL |
Ya | ['p1'] adalah satu-satunya token yang digunakan. Ditafsirkan sebagai $event['p1'].Double != NULL |
$event.p4.p5 = 0.0 |
Tidak | Sintaks referensi properti tidak valid. Jenis harus ditentukan pada LHS perbandingan. |
$event.p4.p5.Double = 0.0 |
Ya |
Fungsi skalar yang didukung
Di bawah ini adalah daftar fungsi skalar menurut kategori:
Fungsi konversi
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
toDouble |
Double toDouble (value: String, Double, Long) |
toDouble($event.value.Long) |
Mengonversi argumen menjadi Ganda. |
toLong |
Long toLong (value: String, Double, Long) |
toLong($event.value.Double + 1.0) |
Mengonversi argumen ke Panjang. |
toString |
String toString (value: String, Double, Long) |
toString($event.value.Double) |
Mengonversi argumen menjadi String. |
Fungsi matematika
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
round |
Double round(value:Double) |
round($event.value.Double) |
Membulatkan angka mengambang presisi ganda ke integral terdekat. |
ceiling |
Double ceiling(value:Double) |
ceiling($event.value.Double) |
Mengembalikan nilai integral terkecil yang lebih besar dari atau sama dengan angka titik mengambang presisi ganda. |
floor |
Double floor(value:Double) |
floor($event.value.Double) |
Mengembalikan nilai integral terbesar yang kurang dari atau sama dengan angka titik float presisi ganda. |
Fungsi trigonometri
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
cos |
Double cos(value:Double) |
cos($event.value.Double) |
Mengembalikan Kosinus dari sudut yang ditentukan dalam radian. |
sin |
Double sin(value:Double) |
sin($event.value.Double) |
Mengembalikan Sinus dari sudut yang ditentukan dalam radian. |
tan |
Double tan(value:Double) |
tan($event.value.Double) |
Mengembalikan Tangen dari sudut yang ditentukan dalam radian. |
acos |
Double acos(value:Double) |
acos($event.value.Double) |
Mengembalikan sudut dalam radian yang Kosinusnya adalah angka yang ditentukan. |
asin |
Double asin(value:Double) |
asin($event.value.Double) |
Mengembalikan sudut dalam radian yang Sinusnya adalah angka yang ditentukan. |
atan |
Double atan(value:Double) |
atan($event.value.Double) |
Mengembalikan sudut dalam radian yang Tangennya adalah angka yang ditentukan. |
atan2 |
Double atan2(value1:Double, value2:Double) |
atan2($event.value1.Double, $event.value2.Double) |
Mengembalikan sudut dalam radian yang Tangennya adalah kuota dari dua angka yang ditentukan. |
Fungsi logaritma
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
log |
Double log(value:Double) |
log($event.value.Double) |
Mengembalikan logaritma natural dari angka tertentu. |
log2 |
Double log2(value:Double) |
log2($event.value.Double) |
Mengembalikan logaritma basis 2 dari angka tertentu. |
log10 |
Double log10(value:Double) |
log10($event.value.Double) |
Mengembalikan logaritma basis 10 dari angka tertentu. |
Fungsi DateTime
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
monthOfYear |
Long monthOfYear(value:DateTime) |
monthOfYear($event.$ts) |
Mengembalikan bulan dalam setahun sebagai numerik untuk DateTime yang disediakan. |
dayOfMonth |
Long dayOfMonth(value:DateTime) |
dayOfMonth($event.$ts) |
Mengembalikan hari dalam sebulan sebagai numerik untuk DateTime yang disediakan. |
hourOfDay |
Long hourOfDay(value:DateTime) |
hourOfDay($event.$ts) |
Mengembalikan jam dalam sehari sebagai numerik untuk DateTime yang disediakan. |
utcNow |
DateTime utcNow() |
utcNow() |
Mengembalikan waktu saat ini dalam format UTC. |
Fungsi untai (karakter)
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
toUpper |
String toUpper(value:String) |
toUpper($event.value.String) |
Mengembalikan string input yang dikonversi menjadi huruf besar. |
toLower |
String toLower(value:String) |
toLower($event.value.String) |
Mengembalikan string input yang dikonversi menjadi huruf kecil. |
strLen |
Long strLen(value:String) |
strLen($event.value.String) |
Mengembalikan jumlah karakter dalam argumen string. |
strCat |
Long strCat(value1:String, value2:String) |
strCat($event.value1.String, $event.value2.String) |
Menggabungkan dua string input yang ditentukan. |
subString |
String subString(value:String, startIndex:Double, length:Double) |
subString($event.value.String, 2.0, 4.0) |
Mengambil substring dari instans ini. |
trim |
String trim(value:String) |
trim($event.value.String) |
Mengembalikan string baru dengan menghapus semua karakter spasi putih di awal dan akhir dari string input. |
indexOf |
Long indexOf(value:String, subString:String) |
indexOf($event.value.String, 'abc') |
Mengembalikan kemunculan pertama string yang ditentukan dalam string asli, berdasarkan pengindeksan nol. |
replace |
String replace(value:String, searchString:String, replaceString:String) |
replace($event.value.String, 'abc', 'xyz') |
Mengembalikan string di mana semua kemunculan string pencarian diganti dengan string pengganti. |
Fungsi Lain
Nama fungsi | Tanda Tangan | Contoh | Catatan |
---|---|---|---|
coalesce |
String, Long, Double, Bool coalesce (value: String, Long, Double, Bool) |
coalesce(toLong($event.value.Double), $event.value.Long) |
Mengembalikan nilai bukan null pertama dalam daftar argumen. Menerima minimal 2 dan maksimum 64 argumen, tetapi semuanya harus memiliki jenis data yang sama. |
iff |
String, Long, Double, Bool iff (predicate: bool, ifTrue: String, Long, Double, Bool, ifFalse: String, Long, Double, Bool) |
iff ($event.value.Double > 100, 'Good', 'Bad') |
Mengembalikan argumen kedua atau ketiga tergantung pada apakah predikat diselesaikan ke true (mengembalikan argumen kedua) atau false (mengembalikan argumen ketiga). Predikat harus berupa ekspresi Boolean dan argumen kedua dan ketiga harus berjenis sama. |
Lihat juga
Untuk informasi selengkapnya tentang pendaftaran aplikasi dan model pemrograman Azure Active Directory, lihat Azure Active Directory untuk pengembang.
Untuk mempelajari tentang parameter permintaan dan autentikasi, baca Autentikasi dan otorisasi.
Alat yang membantu menguji permintaan dan respons HTTP meliputi:
Fiddler. Proksi penelusuran kesalahan web gratis ini dapat mencegat permintaan REST Anda, sehingga Anda dapat mendiagnosis pesan permintaan dan respons HTTP.
JWT.io. Anda dapat menggunakan alat ini untuk dengan cepat membuang klaim dalam token pembawa Anda lalu memvalidasi kontennya.
Tukang pos. Ini adalah alat pengujian permintaan dan respons HTTP gratis untuk men-debug REST API.
Pelajari selengkapnya tentang Azure Time Series Insights Gen2 dengan meninjau dokumentasi Gen2.