Mesin aturan menyediakan fungsi yang dapat Anda panggil dalam pernyataan SQL untuk memproses data.
Fungsi yang didukung oleh fitur penerusan data
Function | Description |
abs(number) | Mengembalikan nilai absolut dari angka tersebut. |
asin(number) | Mengembalikan arcsinus dari angka tersebut. |
attribute(key) | Mengembalikan nilai tag perangkat dari kunci tag tersebut. Jika tag dengan kunci yang ditentukan tidak disambungkan ke perangkat, tidak ada nilai tag yang dikembalikan. Saat Anda melakukan debug pernyataan SQL, string null dikembalikan karena tidak ada perangkat atau tag aktual. |
concat(string1, string2) | Menggabungkan string-string tersebut. String hasil penggabungan dikembalikan. Contoh: |
cos(number) | Mengembalikan kosinus dari angka tersebut. |
cosh(number) | Mengembalikan kosinus hiperbolik dari angka tersebut. |
crypto(field,String) | Mengenkripsi nilai bidang tersebut. Parameter String menentukan algoritma enkripsi. Algoritma berikut didukung: MD2, MD5, SHA1, SHA-256, SHA-384, dan SHA-512. |
deviceName() | Mengembalikan nama perangkat saat ini. Saat Anda melakukan debug pernyataan SQL, string null dikembalikan karena tidak ada perangkat aktual. |
endswith(input, suffix) | Memeriksa apakah string input diakhiri dengan string yang ditentukan oleh parameter suffix. |
exp(number) | Mengembalikan nilai konstanta matematika e yang dipangkatkan dengan angka yang ditentukan. |
floor(number) | Mengembalikan bilangan bulat terbesar yang kurang dari atau sama dengan angka tersebut. |
log(n, m) | Mengembalikan logaritma dari angka n dengan basis m. Jika Anda tidak menentukan m, basis default 10 digunakan. Dalam kasus ini, |
lower(string) | Mengonversi semua huruf dalam string yang ditentukan menjadi huruf kecil dan mengembalikan string dalam huruf kecil tersebut. |
mod(n, m) | Mengembalikan sisa bagi setelah angka n dibagi dengan pembagi m. |
nanvl(value, default) | Mengembalikan nilai properti tersebut. Parameter value menentukan nama properti. Jika nilai properti tersebut null, fungsi ini mengembalikan nilai parameter default. |
newuuid() | Mengembalikan identifier unik universal (UUID) acak. |
payload(textEncoding) | Mengembalikan muatan pesan yang dikirim oleh perangkat. Muatan tersebut dikodekan menggunakan skema pengkodean yang ditentukan oleh parameter textEncoding. Skema pengkodean default adalah UTF-8. Hal ini berarti fungsi |
power(n,m) | Mengembalikan angka n yang dipangkatkan dengan m. |
rand() | Mengembalikan bilangan acak yang lebih besar dari atau sama dengan 0 dan kurang dari 1. |
replace(source, substring, replacement) | Mengganti substring dalam kolom source dengan string replacement. Contoh: |
sin(n) | Mengembalikan sinus dari angka n. |
sinh(n) | Mengembalikan sinus hiperbolik dari angka n. |
tan(n) | Mengembalikan tangen dari angka n. |
tanh(n) | Mengembalikan tangen hiperbolik dari angka n. |
thingPropertyFlatMap(property) | Mengembalikan nilai-nilai properti dalam model Thing Specification Language (TSL). Jika properti memiliki beberapa nilai, nilai-nilai tersebut dipisahkan dengan garis bawah (_). Jika model TSL berisi lebih dari 50 properti, fitur penerusan data tidak dapat meneruskan seluruh model TSL. Anda dapat memanggil fungsi ini untuk mengekstraksi data properti dari model TSL. Dengan cara ini, semua properti model TSL dapat diteruskan ke layanan Alibaba Cloud lainnya. Anda dapat menentukan beberapa properti untuk parameter property fungsi ini. Jika Anda tidak menentukan properti, semua nilai properti diekstraksi. Sebagai contoh, fungsi |
timestamp(format) | Mengembalikan timestamp waktu sistem saat ini dalam GMT+8. Parameter format bersifat opsional. Jika Anda tidak mengonfigurasi parameter format, timestamp waktu sistem saat ini dikembalikan. Sebagai contoh, fungsi |
timestamp_utc(format) | Mengembalikan timestamp UTC dari waktu sistem saat ini dalam format yang ditentukan. Parameter format bersifat opsional. Jika Anda tidak mengonfigurasi parameter format, timestamp 13 digit dari waktu sistem saat ini dikembalikan. Sebagai contoh, fungsi timestamp_utc() mengembalikan |
topic(number) | Mengembalikan informasi topik pada level yang ditentukan. Sebagai contoh, sebuah topik bernama |
upper(string) | Mengonversi semua huruf dalam string yang ditentukan menjadi huruf kapital dan mengembalikan string dalam huruf kapital tersebut. Sebagai contoh, fungsi upper(alibaba) mengembalikan |
to_base64(*) | Mengonversi muatan pesan dari data biner menjadi string yang dikodekan Base64, lalu mengembalikan muatan pesan setelah konversi. Jika muatan pesan asli bertipe data biner, Anda dapat memanggil fungsi ini. |
messageId() | Mengembalikan ID pesan yang dihasilkan oleh IoT Platform. |
substring(target, start, end) | Mengembalikan bagian dari string yang ditentukan. Deskripsi parameter
Catatan
Contoh:
|
to_hex(*) | Mengonversi muatan pesan dari data biner menjadi string heksadesimal dan mengembalikan muatan pesan setelah konversi. Jika muatan pesan asli bertipe data biner, Anda dapat memanggil fungsi ini. |
user_property() | Mendapatkan nilai parameter UserProperty ketika perangkat menggunakan MQTT 5.0.
Sebagai contoh, nilai parameter UserProperty yang dilaporkan oleh perangkat adalah
|
things_function_type() | Menanyakan tipe data TSL yang dilaporkan. Fungsi ini hanya berlaku untuk event TSL dan layanan TSL. Nilai kembali fungsi ini bervariasi tergantung pada jenis fitur TSL yang ditanyakan.
Sebagai contoh, topik |
things_property('${Parameter name}') | Menanyakan nilai properti, layanan, atau event TSL. Fungsi ini hanya berlaku untuk data TSL. Sebagai contoh, topik |
Contoh
Anda dapat memanggil fungsi dalam klausa SELECT dan WHERE pada pernyataan SQL untuk mendapatkan atau memproses data.
Sebagai contoh, produk sensor suhu memiliki properti Temperature. Skrip berikut menunjukkan data properti TSL yang dikirimkan oleh perangkat.
{
"deviceType": "Custom",
"iotId": "H5KURkKdibnZvSls****000100",
"productKey": "a1HHrkm****",
"gmtCreate": 1564569974224,
"deviceName": "TestDevice1",
"items": {
"Temperature": {
"value": 23.5,
"time": 1564569974229
}
}
}
Produk sensor suhu ini mencakup beberapa perangkat. Data dari properti Temperature harus diteruskan ke Function Compute untuk diproses hanya jika suhu yang dilaporkan lebih besar dari 38 dan perangkatnya adalah TestDevice1, TestDevice2, atau TestDevice3. Pernyataan SQL berikut memfilter data yang dilaporkan oleh perangkat.
Pernyataan SQL:
SELECT deviceName() as deviceName,things_property('Temperature') as Temperature
FROM "/g5or0***/+thing/event/property/post"
WHERE things_property('Temperature')>38 and deviceName() in ('TestDevice1', 'TestDevice2', 'TestDevice3')
Dalam contoh ini, fungsi deviceName() dan things_property('Temperature') dipanggil.
Fungsi-fungsi tersebut dikonfigurasi dalam klausa SELECT untuk memperoleh nama perangkat dan nilai parameter Temperature dari data yang dikirimkan.
Fungsi-fungsi ini dikonfigurasi dalam klausa WHERE untuk menentukan kondisi. Ekspresi
>38danin ('TestDevice1', 'TestDevice2', 'TestDevice3')menunjukkan bahwa data properti diteruskan hanya jika suhu lebih besar dari 38 derajat Celsius dan nama perangkatnya adalah TestDevice1, TestDevice2, atau TestDevice3.
Untuk informasi selengkapnya tentang cara menulis klausa SELECT dan WHERE dalam pernyataan SQL serta ekspresi kondisional yang didukung oleh mesin aturan, lihat Pernyataan SQL.