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

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 TableData Connection geçersiz kılar.
Biçimlendir Veri biçimi. Bölmedeki kümeyi Data formatData Connection geçersiz kılar.
IngestionMappingReference Kullanılacak mevcut alım eşlemesinin adı. Bölmedeki kümeyi Column mappingData 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:

  1. Azure portal 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 'nın 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ı, 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, Metricve Value) içeriyorsa ve eklediğiniz özellikler ve sequence-numberiseiothub-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 gidinBuilt-in endpoints.
  • 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 benzetimini yapıp veri oluşturan örnek projeye bakın.

Sonraki adım