Koneksi data IoT Hub
Azure IoT Hub adalah layanan terkelola, yang dihosting di cloud, yang bertindak sebagai hub pesan pusat untuk komunikasi dua arah antara aplikasi IoT Anda dan perangkat yang dikelolanya. Azure Data Explorer menawarkan penyerapan berkelanjutan dari IoT Hubs yang dikelola pelanggan, menggunakan Hub Kejadian yang kompatibel dengan titik akhir pesan perangkat-ke-cloud yang dikelola pelanggan.
Alur penyerapan IoT melewati beberapa langkah. Pertama, Anda membuat IoT Hub, dan mendaftarkan perangkat ke IoT Hub. Anda kemudian membuat tabel target di Azure Data Explorer tempat data dalam format tertentu, akan diserap menggunakan properti penyerapan yang diberikan. Koneksi Iot Hub perlu mengetahui perutean peristiwa untuk menyambungkan ke tabel Azure Data Explorer. Data disematkan dengan properti yang dipilih menurut pemetaan properti sistem peristiwa. Proses ini dapat dikelola melalui portal Microsoft Azure, secara terprogram dengan C# atau Python, atau dengan templat Azure Resource Manager.
Untuk informasi umum tentang penyerapan data di Azure Data Explorer, lihat Gambaran umum penyerapan data Azure Data Explorer.
Format data
- Data dibaca dari titik akhir Pusat Aktivitas dalam bentuk objek EventData .
- Lihat format yang didukung.
Catatan
IoT Hub tidak mendukung format .raw.
- Lihat pemadatan yang didukung.
Properti penyerapan
Properti penyerapan menginstruksikan proses penyerapan tempat merutekan data dan cara memprosesnya. Anda dapat menentukan properti Penyerapan peristiwa menggunakan EventData.Properties. Anda dapat mengatur properti berikut:
Properti | Deskripsi |
---|---|
Database | Nama (peka huruf besar/kecil) dari database target. Properti ini dapat digunakan jika Anda ingin mengirim data ke database yang berbeda dari database tempat koneksi data dibuat (database default). Untuk merutekan data ke beberapa database, Anda harus terlebih dahulu menyiapkan koneksi sebagai koneksi multi-database. Untuk informasi selengkapnya, lihat Perutean peristiwa. |
Tabel | Nama (peka huruf besar dan kecil) dari tabel target yang ada. Mengambil alih Table yang diatur pada panel Data Connection . |
Format | Format data. Mengambil alih Data format yang diatur pada panel Data Connection . |
IngestionMappingReference | Nama pemetaan penyerapan yang ada yang akan digunakan. Mengambil alih Column mapping yang diatur pada panel Data Connection . |
Pengodean | Pengodean data, defaultnya adalah UTF8. Dapat berupa .NET pengodean yang didukung . |
Catatan
Hanya peristiwa yang masuk antrean setelah Anda membuat koneksi data yang terserap.
Perutean aktivitas
Saat membuat koneksi data ke kluster, Anda menentukan perutean tempat mengirim data yang diserap. Perutean default adalah ke tabel target yang ditentukan dalam string koneksi yang terkait dengan database target. Perutean default untuk data Anda juga disebut sebagai perutean statis. Anda dapat menentukan perutean alternatif untuk data Anda dengan menggunakan properti data peristiwa.
Merutekan data peristiwa ke database alternatif
Merutekan data ke database alternatif nonaktif secara default. Untuk mengirim data ke database lain, Anda harus terlebih dahulu mengatur koneksi sebagai koneksi multi-database. Untuk contoh cara melakukan ini di portal Azure, lihat Mengaktifkan perutean multi-database. Pengguna, grup, perwakilan layanan, atau identitas terkelola yang digunakan untuk mengizinkan perutean database setidaknya harus memiliki peran kontributor dan izin tulis pada kluster.
Untuk menentukan database alternatif, atur properti Penyerapan database.
Peringatan
Menentukan database alternatif tanpa mengatur koneksi sebagai koneksi data multi-database akan menyebabkan penyerapan gagal.
Mengaktifkan perutean multi-database
Sebelum Anda bisa mengatur database target alternatif, Anda harus terlebih dahulu mengizinkan perutean data ke beberapa database. Gunakan langkah-langkah berikut untuk mengizinkan perutean data ke database alternatif:
Di portal Azure, telusuri ke kluster Anda.
Pilih Koneksi Data Database>.
Buat atau edit koneksi data dan di panel Koneksi data, di bawah Pengaturan perutean data, aktifkan opsi izinkan data perutean ke database lain (koneksi data multi-database).
Merutekan data peristiwa ke tabel alternatif
Anda juga dapat menentukan properti tabel target untuk setiap peristiwa, menggunakan properti peristiwa. Koneksi akan merutekan data secara dinamis seperti yang ditentukan dalam EventData.Properties, mengambil alih properti statis untuk peristiwa ini. Untuk menentukan tabel alternatif, atur properti Penyerapan tabel.
Catatan
Jika Data saya menyertakan info perutean yang dipilih, Anda harus memberikan informasi perutean yang diperlukan sebagai bagian dari properti peristiwa.
Pemetaan properti sistem peristiwa
Properti sistem adalah koleksi yang digunakan untuk menyimpan properti yang diatur oleh layanan IoT Hub, pada saat peristiwa diterima. Koneksi Azure Data Explorer IoT Hub akan menyematkan properti yang dipilih dalam pendaratan data di tabel Anda.
Catatan
Untuk csv
pemetaan, properti ditambahkan di awal rekaman dalam urutan yang tercantum dalam tabel di bawah ini. Untuk json
pemetaan, properti ditambahkan sesuai dengan nama properti dalam tabel berikut.
Properti sistem
IoT Hub mengekspos properti sistem berikut untuk pesan IoT Hub perangkat-ke-cloud:
Properti | Deskripsi |
---|---|
message-id | ID yang dapat diatur pengguna untuk pesan yang digunakan untuk pola balasan permintaan. Format: String peka huruf besar/kecil (panjang maksimal 128 karakter) karakter alfanumerik 7-bit ASCII + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . |
iothub-enqueuedtime | Tanggal dan waktu pesan Perangkat ke Cloud diterima oleh IoT Hub. |
user_id | ID yang digunakan untuk menentukan asal pesan. Ketika pesan dihasilkan oleh IoT Hub, nilai ini diatur ke {iot hub name} . |
iothub-connection-device-id | ID yang diatur oleh IoT Hub pada pesan perangkat ke cloud. Ini berisi deviceId perangkat yang mengirim pesan. |
iothub-connection-module-id | ID yang diatur oleh IoT Hub pada pesan perangkat ke cloud. Ini berisi moduleId perangkat yang mengirim pesan. |
iothub-connection-auth-generation-id | ID yang diatur oleh IoT Hub pada pesan perangkat ke cloud. Ini berisi connectionDeviceGenerationId (sesuai Properti identitas perangkat) dari perangkat yang mengirim pesan. |
iothub-connection-auth-method | Metode autentikasi yang ditetapkan oleh IoT Hub pada pesan perangkat ke cloud. Properti ini berisi informasi tentang metode otentikasi yang digunakan untuk mengautentikasi perangkat yang mengirim pesan. |
iothub-app-iothub-creation-time-utc | Mengizinkan perangkat mengirim waktu pembuatan peristiwa saat mengirim data dalam batch. |
iothub-creation-time-utc | Mengizinkan perangkat mengirim waktu pembuatan peristiwa saat mengirim satu pesan dalam satu waktu. |
dt-dataschema | Nilai ini diatur oleh IoT Hub pada pesan perangkat ke cloud. Ini berisi ID model perangkat yang diatur dalam koneksi perangkat. |
dt-subject | Nama komponen yang mengirim pesan perangkat ke cloud. |
Jika Anda memilih Properti sistem peristiwa di bagian tabel Sumber Data, Anda harus menyertakan properti dalam skema tabel dan pemetaan.
Contoh pemetaan skema
Contoh pemetaan skema tabel
Jika data Anda mennyertakan tiga kolom (Timespan
, Metric
, dan Value
) dan properti yang Anda sertakan adalah iothub-connection-device-id
dan sequence-number
, buat atau ubah skema tabel dengan menggunakan perintah ini:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)
Contoh pemetaan CSV
Jalankan perintah berikut untuk menambahkan data ke awal catatan. Catat nilai ordinal.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Ordinal":"0"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Ordinal":"1"}}'
']'
Contoh pemetaan JSON
Data ditambahkan dengan menggunakan pemetaan properti sistem. Jalankan perintah ini:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.metric_value"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Path":"$.iothub-connection-device-id"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Path":"$.sequence-number"}}'
']'
Pemetaan properti pengguna peristiwa
Tidak ada dukungan untuk memperkaya payload peristiwa IoT Hub dengan properti pengguna. Pertimbangkan untuk menyematkan properti pengguna di upstream isi peristiwa.
Koneksi IoT Hub
Catatan
Untuk performa terbaik, buat semua sumber daya di wilayah yang sama dengan kluster Azure Data Explorer.
Membuat IoT Hub
Jika Anda belum memilikinya, Buat Iot Hub. Koneksi ke IoT Hub dapat dikelola melalui portal Azure, secara terprogram dengan C# atau Python, atau dengan templat Azure Resource Manager.
Catatan
- Jumlahnya
device-to-cloud partitions
tidak dapat diubah, jadi Anda harus mempertimbangkan skala jangka panjang saat mengatur jumlah partisi. - Grup konsumen harus unik per konsumen. Buat grup konsumen yang didedikasikan untuk koneksi Azure Data Explorer. Temukan sumber daya Anda di portal Azure dan buka
Built-in endpoints
untuk menambahkan grup konsumen baru. - Koneksi Data menggunakan IoT Hub
Built-in endpoint
. Jika Anda mengonfigurasi pesan lainMessage routing endpoint
, pesan berhenti mengalir ke kecuali rute dibuat ke titik akhir tersebutBuilt-in endpoint
. Untuk memastikan pesan terus mengalir ke titik akhir bawaan jika rute baru ditambahkan, konfigurasikan rute keevents
titik akhir. Untuk informasi selengkapnya, lihat Perutean Pesan Pemecahan Masalah IoT Hub.
Mengirim peristiwa
Lihat proyek sampel yang mensimulasikan perangkat dan menghasilkan data.