Menggunakan nilai terakhir yang diketahui dalam alur Pratinjau Prosesor Data Azure IoT

Penting

Pratinjau Operasi Azure IoT – diaktifkan oleh Azure Arc saat ini dalam PRATINJAU. Anda tidak boleh menggunakan perangkat lunak pratinjau ini di lingkungan produksi.

Lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure untuk persyaratan hukum yang berlaku pada fitur Azure dalam versi beta, pratinjau, atau belum dirilis secara umum.

Gunakan tahap nilai terakhir yang diketahui (LKV) dalam alur pemroses data untuk mempertahankan catatan terbaru dan lengkap data Anda. Tahap LKV melacak nilai terbaru pasangan kunci-nilai untuk pesan dalam alur. Tahap kemudian dapat memperkaya pesan dengan menggunakan nilai LKV yang dilacak. Pelacakan dan pengayaan nilai terakhir yang diketahui penting untuk proses hilir yang mengandalkan:

  • Beberapa titik data rangkaian waktu pada tanda waktu tertentu.
  • Payload yang selalu memiliki nilai untuk kunci tertentu.

Dalam alur pemrosesan data, tahap LKV adalah tahap opsional. Saat menggunakan tahap LKV, Anda dapat:

  • Tambahkan beberapa tahap LKV ke alur. Setiap tahap LKV dapat melacak beberapa nilai.
  • Perkaya pesan dengan nilai LKV yang disimpan, memastikan data tetap lengkap dan komprehensif.
  • Terus perbarui LKV secara otomatis dengan nilai terbaru dari pesan masuk.
  • Lacak LKV secara terpisah untuk setiap partisi logis. Tahap LKV beroperasi secara independen di setiap partisi logis.
  • Konfigurasikan waktu kedaluwarsa untuk setiap LKV yang dilacak untuk mengelola durasi agar tetap valid. Kontrol ini membantu memastikan bahwa pesan tidak diperkaya dengan nilai basi.

Tahap LKV mempertahankan integritas data kronologis. Tahap ini memastikan bahwa pesan dengan tanda waktu sebelumnya tidak menimpa atau mengganti LKV dengan pesan yang memiliki tanda waktu di lain waktu.

Tahap LKV memperkaya pesan masuk dengan nilai terakhir yang diketahui yang dilacaknya. Nilai yang diperkaya ini mewakili data yang direkam sebelumnya, dan belum tentu merupakan nilai real-time saat ini. Pastikan perilaku ini selaras dengan ekspektasi pemrosesan data Anda.

Prasyarat

Untuk mengonfigurasi dan menggunakan tahap alur agregat, Anda memerlukan instans Pratinjau Prosesor Data Azure IoT yang disebarkan.

Mengonfigurasi tahap

Konfigurasi JSON tahap LKV menentukan detail tahapan. Untuk menulis tahapan, Anda dapat berinteraksi dengan UI berbasis formulir, atau menyediakan konfigurasi JSON pada tab Tingkat Lanjut :

Bidang Deskripsi Wajib diisi Default Contoh
Nama Nama yang ditentukan pengguna untuk tahap tersebut. Ya - lkv1
Deskripsi Deskripsi yang ditentukan pengguna untuk tahap tersebut. No - lkv1
Jalur Input Properti > Jalur kunci yang akan dilacak. Ya - .payload.temperature
Jalur Output Properti > Jalur ke lokasi dalam pesan output untuk menulis LKV. Ya - .payload.temperature_lkv
Waktu Kedaluwarsa Properti > LKV terlacak hanya valid untuk interval waktu yang ditentukan pengguna, setelah itu pesan output tidak diperkaya dengan nilai tersimpan. Kedaluwarsa dilacak untuk setiap kunci LKV. No - 10h
Jalur Tanda Waktu Properti > Jalur ke lokasi dalam pesan output untuk menulis tanda waktu kapan LKV terakhir diperbarui. No Salah -

Jika Anda menyertakan jalur tanda waktu, ini membantu Anda memahami dengan tepat ketika LKV direkam dan meningkatkan transparansi dan keterlacakan.

inputPath Sama outputPath

Pesan keluar adalah nilai pesan aktual, atau LKV jika kunci yang dilacak hilang dari payload pesan. Setiap nilai masuk lebih diprioritaskan dan tahapan tidak menimpanya dengan LKV. Untuk mengidentifikasi apakah nilai pesan adalah nilai LKV, gunakan jalur tanda waktu. Jalur tanda waktu hanya disertakan dalam pesan keluar jika nilai dalam pesan adalah LKV yang dilacak.

inputPath tidak sama dengan outputPath

Tahap menulis LKV ke outputPath untuk semua pesan masuk. Gunakan konfigurasi ini untuk melacak perbedaan antara nilai dalam payload pesan berikutnya.

Konfigurasi sampel

Contoh berikut menunjukkan contoh pesan untuk tahap LKV dengan pesan tiba pada pukul 10:02 dan dengan payload yang berisi nilai LKV terlacak .payload.temperature :

{ 
  { 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T10:02:07Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "humidity": 10, 
        "temperature":250, 
        "pressure":30, 
        "runningState": true 
    } 
} 

Konfigurasi LKV:

Bidang Nilai
Jalur Input* .payload.temperature
Jalur Output .payload.lkvtemperature
Waktu kedaluwarsa 10h
Jalur Tanda Waktu .payload.lkvtemperature_timestamp

Nilai LKV yang dilacak adalah:

  • .payload.temperature adalah 250.
  • Tanda waktu LKV adalah 2023-01-11T10:02:07Z

Untuk pesan yang tiba pada pukul 11:05 dengan payload yang tidak memiliki properti suhu, tahap LKV memperkaya pesan dengan nilai yang dilacak:

Contoh input ke tahap LKV pada pukul 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "runningState": true 
    } 
} 

Contoh output dari tahap LKV pada pukul 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "lkvtemperature":250, 
        "lkvtemperature_timestamp"":"2023-01-11T10:02:07Z" 
        "runningState": true 
    } 
}