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 yerleşik uç noktasını kullanarak müşteri tarafından yönetilen IoT Hub'larından sürekli alım sunar.
IoT alımı işlem hattı birkaç adımdan geçer. İlk olarak bir IoT Hub oluşturup cihazı buna kaydedersiniz. Ardından Azure Veri Gezgini belirli bir biçimdeki verilerin verilen alı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ı üzerinden, 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
Alma özellikleri, veri alma işlemine verilerin nereye yönlendirileceği ve nasıl işlendiği hakkında bilgi verir. EventData.Properties'i 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. |
Kodlama | 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 tabloya yapılı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. Azure portalında bunun nasıl yapıldığını gösteren bir örnek için bkz . Çok veritabanılı yönlendirmeyi açma. Veritabanı yönlendirmesine izin vermek için kullanılan kullanıcı, grup, hizmet sorumlusu veya yönetilen kimlik en azından kümede 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 verileri birden çok veritabanına yönlendirmeye izin vermelisiniz. Verileri alternatif veritabanlarına yönlendirmeye izin vermek için aşağıdaki adımları kullanın:
Azure portalında 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ı, eventData.Properties içinde belirtilen verileri dinamik olarak yönlendirir ve bu olay için statik özellikleri geçersiz kılacaktır. Alternatif bir tablo belirtmek için Tablo alı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ın alındığı saatte 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şinde 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 ö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 karakter + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} 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. |
kullanıcı kimliği | İletilerin kaynağını belirtmek için kullanılan kimlik. IoT Hub tarafından iletiler oluşturulduğunda, bu değer olarak {iot hub name} ayarlanır. |
ıothub-bağlantı-cihaz kimliği | 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 isesequence-number
iothub-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. Kullanıcı özelliklerini olay gövdesi yukarı akışına eklemeyi göz önünde bulundurun.
IoT Hub bağlantısı
Not
En iyi performans için Azure Veri Gezgini kümesiyle aynı bölgede 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ı üzerinden, 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, tüketici başına benzersiz olmalıdır. Azure Veri Gezgini bağlantısına ayrılmış bir tüketici grubu oluşturun. Azure portalında kaynağınızı bulun ve adresine giderek
Built-in endpoints
yeni bir tüketici grubu ekleyin. - 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 simülasyonunu yapıp veri oluşturan örnek projeye bakın.