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 Hub Kejadian yang kompatibel dengan titik akhir pesan perangkat ke cloud yang kompatibel.

Alur penyerapan IoT melalui beberapa langkah. Pertama, Anda membuat IoT Hub, dan mendaftarkan perangkat ke perangkat tersebut. 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

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 bisa 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 Anda 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 Penyerapandatabase.

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:

  1. Di portal Azure, telusuri ke kluster Anda.

  2. PilihKoneksi dataDatabase>.

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

    Cuplikan layar Azure Data Explorer Web U I , memperlihatkan opsi Pengaturan perutean data diatur ke izinkan.

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

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 di 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 sambungan 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 isi peristiwa di hulu.

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 Message routing endpointlainnya, pesan berhenti mengalir ke kecuali rute dibuat ke titik akhir tersebut Built-in endpoint . Untuk memastikan pesan terus mengalir ke titik akhir bawaan jika rute baru ditambahkan, konfigurasikan rute ke events titik akhir. Untuk informasi selengkapnya, lihat IoT Hub Pemecahan Masalah Perutean Pesan.

Mengirim peristiwa

Lihat proyek sampel yang mensimulasikan perangkat dan menghasilkan data.

Langkah selanjutnya