Aracılığıyla paylaş


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

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:

  1. Azure portalında kümenize göz atın.

  2. Veritabanları>Veri bağlantıları'nı seçin.

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

    veri yönlendirme ayarları seçeneğinin izin verecek şekilde ayarlandığını gösteren Azure Veri Gezgini Web U I 'nin ekran görüntüsü.

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, Metricve Value) içeriyorsa ve eklediğiniz özellikler isesequence-numberiothub-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 endpointkullanır. Başka Message routing endpointbir yapılandırma yaparsanız, bu uç noktaya bir yol oluşturulmadığı sürece iletilerin Built-in endpoint akışı durduruluyor. Yeni bir yol eklenirse iletilerin yerleşik uç noktaya akmaya devam ettiğinden events 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.

Sonraki adım