Bagikan melalui


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 Doubleini ) 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.

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.