Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 Hub yang dikelola pelanggan, menggunakan titik akhir bawaan yang kompatibel dengan Event Hubs untuk pesan perangkat-ke-cloud.
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 diserap menggunakan properti penyerapan yang diberikan. Koneksi Iot Hub perlu mengetahui perutean peristiwa untuk menghubungkan ke tabel Azure Data Explorer. Data disematkan dengan properti yang dipilih menurut pemetaan properti sistem peristiwa. Anda dapat mengelola proses ini 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
- Layanan membaca data dari titik akhir Event Hubs sebagai objek EventData.
- Lihat format yang didukung.
Catatan
IoT Hub tidak mendukung format .raw.
- Lihat pemadatan yang didukung.
Properti penyerapan
Properti penyerapan memandu proses penyerapan dengan menentukan tempat merutekan data dan cara memprosesnya. Anda dapat menentukan properti Penyerapan untuk peristiwa dengan menggunakan EventData.Properties. Atur properti berikut:
| Properti | Deskripsi |
|---|---|
| Database | Nama (peka huruf besar/kecil) dari database target. Gunakan properti ini jika Anda ingin mengirim data ke database yang berbeda dari database tempat Anda membuat koneksi data (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. Menggantikan Table yang disetel pada panel Data Connection. |
| Format | Format data. Menggantikan Data format yang disetel pada panel Data Connection. |
| IngestionMappingReference | Nama pemetaan penyerapan yang ada untuk digunakan. Mengambil alih Column mapping yang diatur pada panel Data Connection. |
| Pengkodean | 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 mengirim data 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
Mengalihkan data ke database alternatif dinonaktifkan secara default. Untuk mengirim data ke database lain, pertama-tama atur 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 Anda gunakan agar dapat mengizinkan perutean database setidaknya harus memiliki peran kontributor dan izin tulis pada kluster.
Untuk menentukan database alternatif, atur properti Penyerapan database.
Peringatan
Jika Anda menentukan database alternatif tetapi tidak mengatur koneksi sebagai koneksi data multi-database, penyerapan gagal.
Mengaktifkan perutean banyak basis data
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, buka kluster Anda.
Pilih Database>Koneksi Data.
Membuat atau mengedit koneksi data. Di panel Koneksi data, di bawah Pengaturan perutean data, aktifkan opsi izinkan data perutean ke database lain (koneksi data multi-database).
Mengalihkan data event ke tabel alternatif
Anda juga dapat menentukan properti tabel target untuk setiap peristiwa, menggunakan properti peristiwa. Koneksi secara otomatis merutekan data sebagaimana ditentukan dalam EventData.Properties, menggantikan atribut tetap untuk peristiwa ini. Untuk menentukan tabel alternatif, tetapkan sifat ingestasi Tabel.
Catatan
Jika Anda memilih Data saya menyertakan info perutean, Anda harus memberikan informasi perutean yang diperlukan sebagai bagian dari properti peristiwa.
Pemetaan properti sistem peristiwa
Gunakan properti sistem untuk menyimpan properti yang ditetapkan layanan IoT Hub saat menerima peristiwa. Koneksi Azure Data Explorer IoT Hub menyematkan properti yang dipilih ke dalam data yang mengalir ke tabel Anda.
Catatan
Untuk csv pemetaan, tambahkan properti pada awal rekaman dalam urutan yang tercantum dalam tabel berikut ini. Untuk json pemetaan, tambahkan properti sesuai dengan nama properti dalam tabel berikut ini.
Properti sistem
IoT Hub mengekspos properti sistem berikut untuk pesan perangkat-ke-cloud IoT Hub:
| Properti | Deskripsi |
|---|---|
| Message-ID | ID yang dapat diatur pengguna untuk pesan yang digunakan untuk pola balasan permintaan. Format: String yang peka terhadap huruf besar-kecil (dengan panjang maksimal 128 karakter) menggunakan karakter alfanumerik ASCII 7-bit + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}. |
| iothub-enqueuedtime | Tanggal dan waktu pesan Perangkat ke Cloud diterima oleh IoT Hub. |
| ID pengguna | 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 ditentukan oleh IoT Hub pada pesan dari perangkat ke cloud. Ini berisi moduleId perangkat yang mengirim pesan. |
| iothub-koneksi-auth-id-generasi | 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. |
| waktu-pembuatan-iothub-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 ditentukan dalam koneksi perangkat. |
| topik-dt | Nama komponen yang mengirim pesan perangkat ke cloud. |
Jika Anda memilih Properti sistem peristiwa di bagian Sumber Data dari tabel, sertakan 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 atribut pengguna acara
Sistem tidak mendukung penambahan properti pengguna ke dalam payload peristiwa IoT Hub. Pertimbangkan untuk menyematkan properti pengguna pada bagian awal 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 memiliki IoT Hub, Buat Iot Hub. Anda dapat mengelola koneksi ke IoT Hub melalui portal Microsoft Azure, secara terprogram dengan C# atau Python, atau dengan templat Azure Resource Manager.
Catatan
- Anda tidak dapat mengubah
device-to-cloud partitionsjumlah setelah mengaturnya, jadi pertimbangkan skala jangka panjang saat mengatur jumlah partisi. - Setiap konsumen harus memiliki grup konsumen yang unik. Buat grup konsumen yang didedikasikan untuk koneksi Azure Data Explorer. Temukan sumber daya Anda di portal Azure dan buka
Built-in endpointsuntuk menambahkan grup konsumen baru. - Koneksi Data menggunakan IoT Hub
Built-in endpoint. Jika Anda mengonfigurasi konfigurasi lainMessage routing endpoint, aliran pesan berhenti menujuBuilt-in endpointkecuali jika sebuah rute dibuat. Untuk memastikan pesan terus mengalir ke titik akhir bawaan jika rute baru ditambahkan, konfigurasikan rute keeventstitik akhir. Untuk informasi selengkapnya, lihat Pemecahan Masalah Perutean Pesan IoT Hub.
Mengirim peristiwa
Lihat proyek sampel yang mensimulasikan perangkat dan menghasilkan data.