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 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

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:

  1. Di portal Azure, buka kluster Anda.

  2. Pilih Database>Koneksi Data.

  3. 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).

    Cuplikan layar UI Web Azure Data Explorer, memperlihatkan opsi Pengaturan perutean data yang diatur untuk mengizinkan.

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 partitions jumlah 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 endpoints untuk menambahkan grup konsumen baru.
  • Koneksi Data menggunakan IoT Hub Built-in endpoint. Jika Anda mengonfigurasi konfigurasi lain Message routing endpoint, aliran pesan berhenti menuju Built-in endpoint kecuali jika sebuah rute dibuat. Untuk memastikan pesan terus mengalir ke titik akhir bawaan jika rute baru ditambahkan, konfigurasikan rute ke events titik akhir. Untuk informasi selengkapnya, lihat Pemecahan Masalah Perutean Pesan IoT Hub.

Mengirim peristiwa

Lihat proyek sampel yang mensimulasikan perangkat dan menghasilkan data.

Langkah selanjutnya