IoT Hub veri bağlantısı
Azure IoT Hub, Bulutta barındırılan ve IoT uygulamanızla yönettiği cihazlar arasında çift yönlü iletişim için merkezi bir ileti hub'ı işlevi gören yönetilen bir hizmettir. Azure Veri Gezgini, cihazdan buluta iletilerin Olay Hub'ı ile uyumlu yerleşik uç noktasını kullanarak müşteri tarafından yönetilen IoT Hub'lardan sürekli alım sağlar.
IoT alma işlem hattı birkaç adımdan geçer. İlk olarak, bir IoT Hub oluşturur ve cihaza bir cihaz kaydedersiniz. Ardından Azure Veri Gezgini belirli bir biçimdeki verilerin belirli bir verialımı özellikleri kullanılarak alınacağı bir hedef tablo oluşturursunuz. Iot Hub bağlantısının Azure Veri Gezgini tablosuna bağlanmak için olay yönlendirmesini bilmesi gerekir. Veriler , olay sistemi özellikleri eşlemesine göre seçili özelliklerle eklenir. Bu işlem Azure portal aracılığıyla, C# veya Python ile program aracılığıyla veya Azure Resource Manager şablonuyla yönetilebilir.
Azure Veri Gezgini'da veri alımı hakkında genel bilgi için bkz. Azure Veri Gezgini veri alımına genel bakış.
Veri biçimi
- Veriler EventData nesneleri biçiminde Event Hub uç noktasından okunur.
- Desteklenen biçimlere bakın.
Not
IoT Hub .raw biçimini desteklemez.
- Bkz. desteklenen sıkıştırmalar.
Alma özellikleri
Veri alımı özellikleri, veri alımı işleminin nereye yönlendirileceği ve verilerin nasıl işlendiği konusunda bilgi vermektedir. EventData.Properties kullanarak olayların alım özelliklerini belirtebilirsiniz. Aşağıdaki özellikleri ayarlayabilirsiniz:
Özellik | Açıklama |
---|---|
Veritabanı | Hedef veritabanının adı (büyük/küçük harfe duyarlı). Bu özellik, verileri veri bağlantısının oluşturulduğu veritabanından (varsayılan veritabanı) farklı bir veritabanına göndermek istiyorsanız kullanılabilir. Verileri birden çok veritabanına yönlendirmek için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir. Daha fazla bilgi için bkz . Olay yönlendirme. |
Tablo | Mevcut hedef tablonun adı (büyük/küçük harfe duyarlı). Bölmedeki kümeyi Table Data Connection geçersiz kılar. |
Biçimlendir | Veri biçimi. Bölmedeki kümeyi Data format Data Connection geçersiz kılar. |
IngestionMappingReference | Kullanılacak mevcut alım eşlemesinin adı. Bölmedeki kümeyi Column mapping Data Connection geçersiz kılar. |
Encoding | Veri kodlama, varsayılan değer UTF8'dir. .NET tarafından desteklenen kodlamalardan herhangi biri olabilir. |
Not
Yalnızca veri bağlantısını oluşturduktan sonra sıraya alınan olaylar alınıyor.
Olay yönlendirme
Kümenize bir veri bağlantısı oluşturduğunuzda, alınan verilerin nereye gönderileceğine ilişkin yönlendirmeyi belirtirsiniz. Varsayılan yönlendirme, hedef veritabanıyla ilişkili bağlantı dizesi belirtilen hedef tabloyadır. Verileriniz için varsayılan yönlendirme statik yönlendirme olarak da adlandırılır. Olay verileri özelliklerini kullanarak verileriniz için alternatif bir yönlendirme belirtebilirsiniz.
Olay verilerini alternatif veritabanına yönlendirme
Verileri alternatif bir veritabanına yönlendirme varsayılan olarak kapalıdır. Verileri farklı bir veritabanına göndermek için önce bağlantıyı çok veritabanılı bir bağlantı olarak ayarlamanız gerekir. bunun Azure portal nasıl yapılacağını gösteren bir örnek için bkz. Çoklu veritabanı yönlendirmesini açma. Veritabanı yönlendirmesine izin vermek için kullanılan kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik, kümede en azından katkıda bulunan rolüne ve yazma izinlerine sahip olmalıdır.
Alternatif bir veritabanı belirtmek için Veritabanıalımı özelliğini ayarlayın.
Uyarı
Bağlantıyı çok veritabanılı veri bağlantısı olarak ayarlamadan alternatif bir veritabanı belirtmek, alımın başarısız olmasına neden olur.
Çoklu veritabanı yönlendirmeyi açma
Alternatif bir hedef veritabanı ayarlayabilmeniz için önce verilerin birden çok veritabanına yönlendirilmesine izin vermelisiniz. Verileri alternatif veritabanlarına yönlendirmeye izin vermek için aşağıdaki adımları kullanın:
Azure portal kümenize göz atın.
Veritabanları>Veri bağlantıları'nı seçin.
Veri bağlantısı oluşturun veya düzenleyin ve Veri bağlantısı bölmesindeki Veri yönlendirme ayarları'nın altında verileri diğer veritabanına yönlendirmeye izin ver (çok veritabanılı veri bağlantısı) seçeneğini açın.
Olay verilerini alternatif bir tabloya yönlendirme
Olay özelliklerini kullanarak her olay için hedef tablo özelliklerini de belirtebilirsiniz. Bağlantı, verileri EventData.Properties içinde belirtilen şekilde dinamik olarak yönlendirir ve bu olayın statik özelliklerini geçersiz kılır. Alternatif bir tablo belirtmek için Tabloalımı özelliğini ayarlayın.
Not
Verilerim yönlendirme bilgilerini içeriyorsa, olay özelliklerinin bir parçası olarak gerekli yönlendirme bilgilerini sağlamanız gerekir.
Olay sistemi özellikleri eşlemesi
Sistem özellikleri, olay alındığında IoT Hub hizmeti tarafından ayarlanan özellikleri depolamak için kullanılan bir koleksiyondur. Azure Veri Gezgini IoT Hub bağlantısı, seçili özellikleri tablonuzdaki veri girişlerine ekler.
Not
Eşleme için csv
, özellikler kaydın başına aşağıdaki tabloda listelenen sırayla eklenir. Eşleme için json
, özellikler aşağıdaki tabloda yer alan özellik adlarına göre eklenir.
Sistem özellikleri
IoT Hub, cihazdan buluta IoT Hub iletileri için aşağıdaki sistem özelliklerini kullanıma sunar:
Özellik | Açıklama |
---|---|
ileti kimliği | İstek-yanıt desenleri için kullanılan ileti için kullanıcı tarafından ayarlanabilir tanımlayıcı. Biçim: ASCII 7 bit alfasayısal karakterlerden oluşan büyük/küçük harfe duyarlı dize (en fazla 128 karakter uzunluğunda) + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . |
iothub-enqueuedtime | Cihazdan Buluta iletisinin IoT Hub tarafından alındığı tarih ve saat. |
user-id | İletilerin kaynağını belirtmek için kullanılan kimlik. İletiler IoT Hub tarafından oluşturulduğunda, bu değer olarak {iot hub name} ayarlanır. |
iothub-connection-device-id | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın deviceId değerini içerir. |
iothub-connection-module-id | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın moduleId değerini içerir. |
iothub-connection-auth-generation-id | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik. İletiyi gönderen cihazın connectionDeviceGenerationId değerini ( Cihaz kimliği özelliklerine göre) içerir. |
iothub-connection-auth-method | Cihazdan buluta iletilerde IoT Hub tarafından ayarlanan bir kimlik doğrulama yöntemi. Bu özellik, iletiyi gönderen cihazın kimliğini doğrulamak için kullanılan kimlik doğrulama yöntemi hakkında bilgi içerir. |
iothub-app-iothub-creation-time-utc | Bir toplu işlemde veri gönderirken cihazın olay oluşturma süresi göndermesine izin verir. |
iothub-creation-time-utc | Cihazın bir kerede bir ileti gönderirken olay oluşturma zamanı göndermesine izin verir. |
dt-dataschema | Bu değer, cihazdan buluta iletilerde IoT hub'ı tarafından ayarlanır. Cihaz bağlantısında ayarlanan cihaz modeli kimliğini içerir. |
dt-subject | Cihazdan buluta iletileri gönderen bileşenin adı. |
Tablonun Veri Kaynağı bölümünde Olay sistemi özelliklerini seçtiyseniz, özellikleri tablo şemasına ve eşlemesine eklemeniz gerekir.
Şema eşleme örnekleri
Tablo şeması eşleme örneği
Verileriniz üç sütun (Timespan
, Metric
ve Value
) içeriyorsa ve eklediğiniz özellikler ve sequence-number
iseiothub-connection-device-id
, şu komutu kullanarak tablo şemasını oluşturun veya değiştirin:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)
CSV eşleme örneği
Kaydın başına veri eklemek için aşağıdaki komutları çalıştırın. Sıralı değerleri not edin.
.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"}}'
']'
JSON eşleme örneği
Veriler, sistem özellikleri eşlemesi kullanılarak eklenir. Şu komutları çalıştırın:
.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"}}'
']'
Olay kullanıcı özellikleri eşlemesi
IoT Hub olay yükünü kullanıcı özellikleriyle zenginleştirme desteği yoktur. Olay gövdesi yukarı akışına kullanıcı özelliklerini eklemeyi göz önünde bulundurun.
bağlantıyı IoT Hub
Not
En iyi performans için Azure Veri Gezgini kümesiyle aynı bölgede yer alan tüm kaynakları oluşturun.
IoT Hub'ı oluşturma
Henüz bir hub'ına sahip değilseniz IoT Hub'ı oluşturun. IoT Hub bağlantısı Azure portal aracılığıyla, C# veya Python ile program aracılığıyla veya Azure Resource Manager şablonuyla yönetilebilir.
Not
- Sayı
device-to-cloud partitions
değiştirilemez, bu nedenle bölüm sayısını ayarlarken uzun vadeli ölçeklendirmeyi göz önünde bulundurmanız gerekir. - Tüketici grubu her tüketici için benzersiz olmalıdır. Azure Veri Gezgini bağlantısına ayrılmış bir tüketici grubu oluşturun. Azure portal kaynağınızı bulun ve yeni bir tüketici grubu eklemek için adresine gidin
Built-in endpoints
. - Veri Bağlantısı IoT Hub
Built-in endpoint
kullanır. BaşkaMessage routing endpoint
bir yapılandırma yaparsanız, bu uç noktaya bir yol oluşturulmadığı sürece iletilerinBuilt-in endpoint
akışı durduruluyor. Yeni bir yol eklenirse iletilerin yerleşik uç noktaya akmaya devam ettiğindenevents
emin olmak için uç noktaya bir yol yapılandırın. Daha fazla bilgi için bkz. IoT Hub İleti Yönlendirme Sorunlarını Giderme.
Olay gönderme
Bir cihazın benzetimini yapıp veri oluşturan örnek projeye bakın.
Sonraki adım
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin