IoT Platform menyediakan berbagai fungsi yang dapat digunakan dalam skrip parser untuk memproses data. Fungsi-fungsi ini mencakup konversi tipe data, penerusan data ke tujuan tertentu, dan pemrosesan payload dari tipe data spesifik. Topik ini menjelaskan fungsi-fungsi yang disediakan oleh IoT Platform.
Anda dapat menggunakan fungsi yang didukung oleh Data Forwarding v1.0 dalam skrip parser Data Forwarding v2.0. Untuk informasi lebih lanjut, lihat Fungsi.
Konversi tipe data
Fungsi | Deskripsi |
toBoolean(Object) | Mengonversi parameter Object menjadi nilai Boolean. Parameter ini mendukung tipe data berikut:
|
toNumber(Object) | Mengonversi nilai parameter Object menjadi angka. Parameter ini mendukung tipe data berikut:
|
toString(Object) | Mengonversi nilai parameter Object menjadi string. Jika parameter diatur ke nilai selain NULL, fungsi mengembalikan nilai sebagai string. Jika parameter diatur ke NULL, fungsi mengembalikan string kosong. Jika parameter bertipe biner, fungsi mengembalikan nilai yang didekode UTF-8. |
toMap(Object) | Mengonversi nilai parameter Object menjadi peta. Parameter ini mendukung tipe data berikut:
|
toArray(Object) | Mengonversi nilai parameter Object menjadi array. Parameter ini mendukung tipe data berikut:
|
toBinary(Object) | Mengonversi nilai parameter Object menjadi nilai biner. Parameter ini mendukung tipe data berikut:
|
Konversi format waktu
Fungsi | Deskripsi |
format_date(timestamp, patten, timeZone) | Mengonversi timestamp dalam milidetik menjadi nilai waktu dalam format tertentu. String dikembalikan.
|
to_timestamp(dateString, patten, timeZone) | Mengonversi nilai waktu dalam format tertentu menjadi timestamp dalam milidetik. Nilai numerik dikembalikan.
|
Meneruskan data ke tujuan
Dalam fungsi berikut, parameter destinationId menentukan ID tujuan data, sedangkan parameter payload menentukan isi pesan.
Fungsi | Deskripsi | Contoh |
writeAmqp(destinationId, payload, tag) | Meneruskan data ke grup konsumen Advanced Message Queuing Protocol (AMQP). tag: Parameter ini opsional. Jika Anda menentukan tag, tag tersebut akan ditambahkan ke semua pesan yang diteruskan ke grup konsumen AMQP. Tag harus memiliki panjang 1 hingga 128 karakter. Anda dapat menentukan konstanta atau variabel dalam tag.
| |
writeDatahub(destinationId, data) | Meneruskan data ke DataHub. data: Data yang ingin Anda tulis ke DataHub. Hanya tipe data map dan biner yang didukung. | |
writeFc(destinationId, data) | Meneruskan data ke Function Compute. data: Data yang ingin Anda teruskan ke Function Compute. | |
writeKafka(destinationId, payload, key) | Meneruskan data ke ApsaraMQ for Kafka. key: Kunci yang ingin Anda tentukan dalam pesan yang akan diteruskan ke ApsaraMQ for Kafka. Parameter ini opsional. Anda dapat merutekan pesan berdasarkan tag pada klien konsumen Anda. | |
writeMns(destinationId, payload) | Meneruskan data ke Simple Message Queue (formerly MNS) (SMQ). | |
writeMq(destinationId, payload, tag) | Meneruskan data ke ApsaraMQ for RocketMQ. tag: Parameter ini opsional. Jika Anda menentukan tag, tag tersebut akan ditambahkan ke semua pesan yang diteruskan ke ApsaraMQ for RocketMQ. Anda dapat memfilter pesan berdasarkan tag pada klien konsumen Anda. Tag harus memiliki panjang 1 hingga 128 karakter. Anda dapat menentukan konstanta atau variabel dalam tag.
| |
writeTableStore(destinationId, data, flowType) | Meneruskan data ke instance Tablestore (OTS) model Wide Column.
| |
writeTableStoreTs(destinationId, timeInUs, metricName, tags, fields, dataSource) | Meneruskan data ke instance OTS model TimeSeries.
Anda dapat menggunakan fungsi ini untuk menulis data dalam satu baris OTS. Untuk menulis data dalam beberapa baris sekaligus, gunakan fungsi berikut: Untuk informasi lebih lanjut tentang parameter, lihat Model TimeSeries. | |
writeRds(destinationId, data) | Menulis data ke tabel ApsaraDB RDS. data: Data yang ingin Anda tulis ke ApsaraDB RDS. Hanya tipe data map yang didukung. Kunci menentukan nama kolom tabel dan nilai menentukan nilai kolom. | |
updateRds(destinationId, data, condition, limit) | Memperbarui data yang ditulis ke tabel ApsaraDB RDS.
Contoh:
| |
writeTsdb(destinationId, timestamp, metricName, value, tag) | Meneruskan data ke Time Series Database.
| |
writeIotTopic(destinationId, topic, payload) | Meneruskan data ke topik lain. Topik: Topik tujuan ke mana Anda ingin meneruskan data. Topik berikut didukung:
Nilai variabel Untuk informasi lebih lanjut, lihat Buat Tujuan Data. Penting Jika perangkat tidak berlangganan topik tujuan, perangkat tidak dapat menerima data yang diteruskan. Sebagai contoh, jika Anda menggunakan MQTT.fx untuk menghubungkan Perangkat A ke IoT Platform, Perangkat A tidak dapat secara otomatis berlangganan topik perangkat. Jika Perangkat B meneruskan data ke topik Untuk informasi lebih lanjut, lihat Langganan Topik Otomatis. | |
writeLindorm(destinationId, timestamp, tags, fields) | Meneruskan data ke Lindorm.
|
Fungsi yang didukung oleh setiap tipe data dasar
Map
Fungsi
Deskripsi
[Object]
Mendapatkan nilai dari kunci tertentu.
size()
Mendapatkan jumlah pasangan kunci-nilai dalam sebuah map.
containsKey(String)
Memeriksa apakah sebuah map berisi kunci tertentu.
keySet()
Mendapatkan kunci-kunci dalam sebuah map. Sebuah array dikembalikan.
remove(Object)
Menghapus pasangan kunci-nilai dari sebuah map berdasarkan kunci tertentu.
put(Object, Object)
Menambahkan pasangan kunci-nilai ke sebuah map.
putAll(map)
Menambahkan map lain ke map yang sudah ada.
Array
Fungsi
Deskripsi
[int]
Mendapatkan nilai pada indeks tertentu. Indeks elemen pertama dalam array adalah 0.
contains(Object)
Memeriksa apakah sebuah array berisi elemen tertentu.
remove(Object)
Menghapus elemen tertentu dari sebuah array.
removeAt(int)
Menghapus elemen pada indeks tertentu dalam sebuah array.
add(Object)
Menambahkan elemen ke akhir array.
add(index, Object)
Menambahkan elemen pada indeks tertentu.
addAll(array)
Menambahkan array lain ke array.
size()
Mendapatkan jumlah elemen dalam array.
String
Fungsi
Deskripsi
substring(start, end)
Mengekstrak string dari posisi
starthingga posisiend-1.Jika Anda tidak mengonfigurasi parameter, proses ekstraksi berlanjut hingga akhir string.length()
Meminta panjang string.
split(String)
Memisahkan string menggunakan pemisah tertentu.
startsWith(String)
Memeriksa apakah string dimulai dengan substring tertentu.
endsWith(String)
Memeriksa apakah string diakhiri dengan substring tertentu.
indexOf(String, index)
Meminta posisi di mana substring pertama kali muncul dari indeks tertentu dalam string.
Nilai default parameter index adalah 0.
Fungsi lainnya
Fungsi | Deskripsi |
endWith(input, suffix) | Memeriksa apakah string input diakhiri dengan suffix tertentu. Nilai Boolean dikembalikan. |
productKey() | Mengembalikan ProductKey dari produk saat ini. |
getDeviceTag(key) | Mengembalikan nilai tag perangkat dari kunci tag. Jika tag yang berisi key tertentu tidak dilampirkan ke perangkat, tidak ada nilai tag yang dikembalikan. |
getOrNull(data, "items", ......) | Mengembalikan nilai bidang tertentu dalam parameter data yang diformat JSON. Anda dapat mengonfigurasi satu atau lebih bidang dalam fungsi tersebut. Beberapa bidang harus dikonfigurasikan berdasarkan level. Fungsi mengembalikan nilai dari bidang terakhir. Jika bidang terakhir tidak ada atau bidang tersebut kosong, fungsi mengembalikan null. Contoh parameter data: Contoh:
|
payload(textEncoding) | Mengkodekan payload pesan yang dikirim oleh perangkat. Parameter textEncoding menentukan skema pengkodean.
|
parseNumber(numberString, radix) | Mengonversi string yang ditentukan oleh parameter numberString menjadi angka berdasarkan sistem angka yang ditentukan oleh parameter radix. Parameter radix bersifat opsional. Nilai valid:
Contoh: |
Referensi
Jika Anda ingin meneruskan data ke tujuan, Anda dapat menulis skrip menggunakan sintaks yang didukung untuk memanggil fungsi tertentu. Untuk informasi lebih lanjut, lihat Sintaks Skrip.