IoT verilerini Azure Veri Gezgini'a aktarma
Bu makalede, Azure Veri Gezgini veri göndermek için veri dışarı aktarmanın nasıl yapılandırıldığı açıklanmaktadır.
Filtrelenmiş ve zenginleştirilmiş IoT verilerini IoT Central uygulamanızdan sürekli olarak dışarı aktarmak için bu özelliği kullanın. Veri dışarı aktarma, sıcak yol içgörüleri, analiz ve depolama için değişiklikleri neredeyse gerçek zamanlı olarak bulut çözümünüzün diğer bölümlerine iletir.
Örneğin, şunları yapabilirsiniz:
- Telemetri verilerini, özellik değişikliklerini, cihaz bağlantısını, cihaz yaşam döngüsünü, cihaz şablonu yaşam döngüsünü ve denetim günlüğü verilerini JSON biçiminde neredeyse gerçek zamanlı olarak sürekli dışarı aktarın.
- Özel koşullarla eşleşen verileri dışarı aktarmak için veri akışlarını filtreleyin.
- Veri akışlarını cihazdan özel değerler ve özellik değerleriyle zenginleştirin.
- Şekillerini ve içeriklerini değiştirmek için veri akışlarını dönüştürün.
İpucu
Veri dışarı aktarmayı açtığınızda, yalnızca o andan itibaren verileri alırsınız. Daha fazla geçmiş veri saklamak için veri dışarı aktarmayı erken açın. Verileri dışarı aktarmanın kapalı olduğu zamanlardan el ile dışarı aktarmak için bkz . Cihazları sorgulamak için IoT Central REST API'sini kullanma.
Not
Bazı durumlarda iletilerin dışarı aktarılması 60 saniye kadar sürebilir. Bu süre, IoT Central'ın temel alınan IoT hub'ından iletiyi aldığından iletinin hedef uç noktaya teslim edildiğinden ölçülür.
Önkoşullar
Veri dışarı aktarma özelliklerini kullanmak için Veri dışarı aktarma iznine sahip olmanız gerekir.
Azure Veri Gezgini dışarı aktarma hedefi ayarlama
Azure Veri Gezgini kümesi veya Azure Synapse Veri Gezgini havuzu kullanabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure Synapse Veri Gezgini ile Azure Veri Gezgini arasındaki fark nedir?.
IoT Central, verileri neredeyse gerçek zamanlı olarak Azure Veri Gezgini kümesindeki bir veritabanı tablosuna aktarır. Veriler ileti gövdesindedir ve UTF-8 olarak kodlanmış JSON biçimindedir. Tablo şemasıyla eşleşen verileri dışarı aktarmak için IoT Central'da bir Dönüşüm ekleyebilirsiniz.
Azure Veri Gezgini portalında dışarı aktarılan verileri sorgulamak için veritabanına gidin ve Sorgu'yu seçin.
Aşağıdaki videoda verileri Azure Veri Gezgini'e dışarı aktarma işlemi adım adım açıklanır:
Bağlantı seçenekleri
Azure Veri Gezgini hedefleri, bir hizmet sorumlusu veya yönetilen kimlikle bağlantıyı yapılandırmanıza olanak sağlar.
Yönetilen kimlikler daha güvenlidir çünkü:
- IoT Central uygulamanızdaki bir bağlantı dizesi kaynağınızın kimlik bilgilerini depolamazsınız.
- Kimlik bilgileri, IoT Central uygulamanızın ömrüne otomatik olarak bağlıdır.
- Yönetilen kimlikler, güvenlik anahtarlarını düzenli olarak otomatik olarak döndürür.
IoT Central şu anda sistem tarafından atanan yönetilen kimlikleri kullanıyor.
Yönetilen kimlik yapılandırdığınızda, yapılandırma bir kapsam ve bir rol içerir:
- Kapsam, yönetilen kimliği kullanabileceğiniz yeri tanımlar. Örneğin, kapsam olarak bir Azure kaynak grubu kullanabilirsiniz. Bu durumda hem IoT Central uygulaması hem de hedef aynı kaynak grubunda olmalıdır.
- Rol, IoT Central uygulamasının hedef hizmette hangi izinlere sahip olduğunu tanımlar. Örneğin, bir IoT Central uygulamasının bir olay hub'ına veri göndermesi için yönetilen kimliğin Azure Event Hubs Veri Göndereni rol atamasına ihtiyacı vardır.
Aşağıdaki video, sistem tarafından atanan yönetilen kimlikler hakkında daha fazla bilgi sağlar:
Dikkat
Blob depolamaya aktarmak için videoda gösterildiği gibi Depolama Hesabı Katkıda Bulunanı'nı kullanmayın. Bunun yerine Depolama Blob Verileri Katkıda Bulunanı rolünü kullanın.
Azure Veri Gezgini hedefi oluşturma
Bu makalede, Azure CLI kullanarak yönetilen kimlik oluşturma adımları gösterilmektedir. Yönetilen kimlik oluşturmak için Azure portalını da kullanabilirsiniz.
Dışarı aktarabileceğiniz bir Azure Veri Gezgini veritabanınız yoksa bu adımları izleyin. Azure Veri Gezgini veritabanı oluşturmak için iki seçeneğiniz vardır:
- Yeni bir Azure Veri Gezgini kümesi ve veritabanı oluşturun. Daha fazla bilgi edinmek için bkz. Azure Veri Gezgini hızlı başlangıcı. Küme URI'sini ve oluşturduğunuz veritabanının adını not edin; aşağıdaki adımlarda bu değerlere ihtiyacınız vardır.
- Yeni bir Azure Synapse Veri Gezgini havuzu ve veritabanı oluşturun. Daha fazla bilgi edinmek için bkz. Azure Veri Gezgini hızlı başlangıcı. Havuz URI'sini ve oluşturduğunuz veritabanının adını not edin; aşağıdaki adımlarda bu değerlere ihtiyacınız vardır.
IoT Central uygulamanızın verileri Azure kaynağınıza güvenli bir şekilde dışarı aktarmasını sağlayan yönetilen kimliği yapılandırmak için:
IoT Central uygulamanız için veritabanınıza bağlanmak için kullanılacak bir yönetilen kimlik oluşturun. Aşağıdaki komutu çalıştırmak için Azure Cloud Shell'i kullanın:
az iot central app identity assign --name {your IoT Central app name} \ --resource-group {resource group name} \ --system-assigned
komutuyla ve
tenantId
çıkışınıprincipalId
not edin. Aşağıdaki adımda bu değerleri kullanırsınız.IoT Central uygulamanızdan bağlantılara izin vermek için veritabanı izinlerini yapılandırın. Aşağıdaki komutu çalıştırmak için Azure Cloud Shell'i kullanın:
az kusto database-principal-assignment create --cluster-name {name of your cluster} \ --database-name {name of your database} \ --resource-group {resource group name} \ --principal-assignment-name {name of your IoT Central application} \ --principal-id {principal id from the previous step} \ --principal-type App --role Admin \ --tenant-id {tenant id from the previous step}
İpucu
Azure Synapse kullanıyorsanız bkz
az synapse kusto database-principal-assignment
. .Dışarı aktardığınız veriler için uygun bir şemayla veritabanınızda bir tablo oluşturun. Aşağıdaki örnek sorgu adlı
smartvitalspatch
bir tablo oluşturur. Daha fazla bilgi edinmek için bkz . Dışarı aktarma için IoT Central uygulamanızın içindeki verileri dönüştürme:.create table smartvitalspatch ( EnqueuedTime:datetime, Message:string, Application:string, Device:string, Simulated:boolean, Template:string, Module:string, Component:string, Capability:string, Value:dynamic )
(İsteğe bağlı) Azure Veri Gezgini veritabanınıza veri alımını hızlandırmak için:
Azure Veri Gezgini kümenizin Yapılandırmalar sayfasına gidin. Ardından Akış alımı seçeneğini etkinleştirin.
Akış alımını etkinleştirmek üzere tablo ilkesini değiştirmek için aşağıdaki sorguyu çalıştırın:
.alter table smartvitalspatch policy streamingingestion enable
Veri dışarı aktarma sayfasında IoT Central'da Azure Veri Gezgini hedefini oluşturmak için:
+ Yeni hedef'i seçin.
Hedef türü olarak Azure Veri Gezgini'ı seçin.
Azure Veri Gezgini kümenizi veya havuz URL'nizi, veritabanı adınızı ve tablo adınızı girin. Yetkilendirme türü olarak Sistem tarafından atanan yönetilen kimlik'i seçin.
İpucu
Tek başına Azure Veri Gezgini küme URL'si gibi
https://<ClusterName>.<AzureRegion>.kusto.windows.net
görünür. Azure Synapse Veri Gezgini havuzunun küme URL'si gibihttps://<DataExplorerPoolName>.<SynapseWorkspaceName>.kusto.azuresynapse.net
görünür.
Hedef hizmetinize gelen verileri görmüyorsanız bkz . Azure IoT Central uygulamanızdan veri dışarı aktarma sorunlarını giderme.
Veri dışarı aktarmayı ayarlama
Artık verilerinizi dışarı aktarma hedefiniz olduğuna göre IoT Central uygulamanızda veri dışarı aktarmayı ayarlayın:
IoT Central uygulamanızda oturum açın.
Sol bölmede Veri dışarı aktarma'yı seçin.
İpucu
Sol bölmede Veri dışarı aktarma seçeneğini görmüyorsanız, uygulamanızda veri dışarı aktarmayı yapılandırma izniniz yoktur. Veri dışarı aktarmayı ayarlamak için bir yöneticiyle görüşün.
+ Yeni dışarı aktarma'ya tıklayın.
Yeni dışarı aktarmanız için bir görünen ad girin ve veri dışarı aktarmanın Etkin olduğundan emin olun.
Dışarı aktaracak veri türünü seçin. Aşağıdaki tabloda desteklenen veri dışarı aktarma türleri listelenmektedir:
Veri türü Açıklama Veri biçimi Telemetri Cihazlardan telemetri iletilerini neredeyse gerçek zamanlı olarak dışarı aktarın. Dışarı aktarılan her ileti, normalleştirilmiş özgün cihaz iletisinin tam içeriğini içerir. Telemetri ileti biçimi Özellik değişiklikleri Cihaz ve bulut özelliklerindeki değişiklikleri neredeyse gerçek zamanlı olarak dışarı aktarın. Salt okunur cihaz özellikleri için, bildirilen değerlerde yapılan değişiklikler dışarı aktarılır. Okuma-yazma özellikleri için hem bildirilen hem de istenen değerler dışarı aktarılır. Özellik değişikliği ileti biçimi Cihaz bağlantısı Cihaz bağlı ve bağlantısı kesilmiş olayları dışarı aktarın. Cihaz bağlantısı ileti biçimi Cihaz yaşam döngüsü Kayıtlı, silinmiş, sağlanan, etkin, devre dışı, displayNameChanged ve deviceTemplateChanged olaylarını dışarı aktarın. Cihaz yaşam döngüsü ileti biçimini değiştirir Cihaz şablonu yaşam döngüsü Oluşturulan, güncelleştirilen ve silinenler de dahil olmak üzere yayımlanan cihaz şablonu değişikliklerini dışarı aktarın. Cihaz şablonu yaşam döngüsü ileti biçimini değiştirir Denetim günlükleri Uygulamadaki varlıklar için kullanıcı tarafından başlatılan güncelleştirmelerin günlükleri. Daha fazla bilgi edinmek için bkz . IoT Central uygulamanızdaki etkinlikleri izlemek için denetim günlüklerini kullanma Denetim günlüğü ileti biçimi İsteğe bağlı olarak, dışarı aktarılan veri miktarını azaltmak için filtreler ekleyin. Her veri dışarı aktarma türü için farklı filtre türleri vardır:
Veri türü Kullanılabilir filtreler Telemetri - Cihaz adına, cihaz kimliğine, cihaz şablonuna ve cihazın simülasyonu yapılmışsa göre filtreleyin
- Akışı yalnızca filtre koşullarına uyan telemetri verilerini içerecek şekilde filtreleyin
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan telemetri içerecek şekilde filtreleyin
- Akışı yalnızca filtre koşuluna göre ileti özelliklerine sahip telemetriyi içerecek şekilde filtreleyin. İleti özellikleri (uygulama özellikleri olarak da bilinir) her telemetri iletisindeki anahtar-değer çiftleri paketinde gönderilir. İleti özelliği filtresi oluşturmak için, aradığınız ileti özellik anahtarını girin ve bir koşul belirtin. Yalnızca belirtilen filtre koşuluyla eşleşen özelliklere sahip telemetri iletileri dışarı aktarılır. IoT Hub belgelerinden uygulama özellikleri hakkında daha fazla bilgi edinin
Özellik değişiklikleri - Cihaz adına, cihaz kimliğine, cihaz şablonuna ve cihazın simülasyonu yapılmışsa göre filtreleyin
- Akışı yalnızca filtre koşullarına uyan özellik değişikliklerini içerecek şekilde filtreleyin
Cihaz bağlantısı - Cihaz adına, cihaz kimliğine, cihaz şablonuna, kuruluşlara ve cihazın simülasyonu yapılmışsa göre filtreleyin
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan gelen değişiklikleri içerecek şekilde filtreleyin
Cihaz yaşam döngüsü - Cihaz adına, cihaz kimliğine, cihaz şablonuna ve cihazın sağlanıp sağlanmadığını, etkinleştirildiğini veya simülasyonu yapılmış olup olmadığını filtreleyin
- Akışı yalnızca filtre koşullarıyla eşleşen özelliklere sahip cihazlardan gelen değişiklikleri içerecek şekilde filtreleyin
Cihaz şablonu yaşam döngüsü - Cihaz şablonuna göre filtrele
Denetim günlükleri Yok İsteğe bağlı olarak, dışarı aktarılan iletileri ek anahtar-değer çifti meta verileriyle zenginleştirin. Telemetri, özellik değişiklikleri, cihaz bağlantısı ve cihaz yaşam döngüsü veri dışarı aktarma türleri için aşağıdaki zenginleştirmeler kullanılabilir:
- Özel dize: Her iletiye özel bir statik dize ekler. Herhangi bir anahtar girin ve herhangi bir dize değeri girin.
- Her iletiye eklenen özellik:
- Cihaz adı, cihaz şablonu adı, etkin, kuruluşlar, sağlanan ve simülasyon gibi cihaz meta verileri.
- Her ileti için bildirilen geçerli cihaz özelliği veya bulut özelliği değeri. Dışarı aktarılan ileti belirtilen özelliğe sahip olmayan bir cihazdan geliyorsa, dışarı aktarılan ileti zenginleştirmeyi almaz.
Dışarı aktarma hedefini yapılandırın:
Önceden oluşturduğunuz bir hedefi eklemek için + Hedef'i seçin veya Yeni bir hedef oluştur'u seçin.
Verilerinizi dışarı aktarmadan önce dönüştürmek için + Dönüştür'ü seçin. Daha fazla bilgi edinmek için bkz . Dışarı aktarma için IoT Central uygulamanızın içindeki verileri dönüştürme.
Tek bir dışarı aktarmaya en fazla beş hedef eklemek için + Hedef'i seçin.
Dışarı aktarmanızı ayarlamayı bitirdiğinizde Kaydet'i seçin. Birkaç dakika sonra verileriniz hedeflerinizde görünür.
Dışarı aktarmanızı izleme
IoT Central'da Veri dışarı aktarma sayfası, dışarı aktarmalarınızın durumunu denetlemenize olanak tanır. Ne kadar veri dışarı aktardığınızı ve dışarı aktarma hatalarını görmek için Azure İzleyici'yi de kullanabilirsiniz. PowerShell'deki sorguları veya Azure CLI'yı kullanarak Azure portalındaki grafiklerde dışarı aktarma ve cihaz durumu ölçümlerine erişebilirsiniz. Şu anda Azure İzleyici'de aşağıdaki veri dışarı aktarma ölçümlerini izleyebilirsiniz:
- Filtreler uygulanmadan önce dışarı aktarılması gereken ileti sayısı.
- Filtrelerden geçen ileti sayısı.
- Hedeflere başarıyla dışarı aktarılan ileti sayısı.
- Bulunan hata sayısı.
Daha fazla bilgi edinmek için bkz . Uygulama durumunu izleme.
Veri biçimleri
Aşağıdaki bölümlerde dışarı aktarılan verilerin biçimleri açıklanmaktadır:
Telemetri biçimi
Dışarı aktarılan her ileti, cihazın ileti gövdesinde gönderdiği iletinin tamamının normalleştirilmiş bir biçimini içerir. İleti JSON biçimindedir ve UTF-8 olarak kodlanmıştır. Her iletideki bilgiler şunları içerir:
applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -telemetry
.deviceId
: Telemetri iletisini gönderen cihazın kimliği.schema
: Yük şemasının adı ve sürümü.templateId
: Cihaza atanan cihaz şablonunun kimliği.enqueuedTime
: IoT Central'ın bu iletiyi aldığı saat.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.module
: Bu iletiyi gönderen IoT Edge modülü. Bu alan yalnızca ileti bir IoT Edge modülünden geliyorsa görünür.component
: Bu iletiyi gönderen bileşen. Bu alan yalnızca iletide gönderilen özellikler cihaz şablonunda bir bileşen olarak modellenmişse görüntülenirmessageProperties
: Cihazın iletiyle gönderdiği diğer özellikler. Bu özellikler bazen uygulama özellikleri olarak adlandırılır. IoT Hub belgelerinden daha fazla bilgi edinin.
İleti özellikleri
Telemetri iletileri hem meta veriler hem de telemetri yükü için özelliklere sahiptir. Önceki kod parçacığı ve gibi deviceId
enqueuedTime
sistem iletilerinin örneklerini gösterir. Sistem iletisi özellikleri hakkında daha fazla bilgi edinmek için bkz . Cihazdan buluta IoT Hub iletilerinin Sistem Özellikleri.
Telemetri iletilerinize özel meta veriler eklemeniz gerekiyorsa telemetri iletilerine özellikler ekleyebilirsiniz. Örneğin, cihaz iletiyi oluştururken bir zaman damgası eklemeniz gerekir.
Aşağıdaki kod parçacığı, cihazda oluşturduğunuzda özelliğin iletiye nasıl ekleneceğini iothub-creation-time-utc
gösterir:
Önemli
Bu zaman damgasının biçimi saat dilimi bilgisi olmadan UTC olmalıdır. Örneğin, 2021-04-21T11:30:16Z
geçerli, 2021-04-21T11:30:16-07:00
geçersiz.
async function sendTelemetry(deviceClient, index) {
console.log('Sending telemetry message %d...', index);
const msg = new Message(
JSON.stringify(
deviceTemperatureSensor.updateSensor().getCurrentTemperatureObject()
)
);
msg.properties.add("iothub-creation-time-utc", new Date().toISOString());
msg.contentType = 'application/json';
msg.contentEncoding = 'utf-8';
await deviceClient.sendEvent(msg);
}
Özellik değişiklikleri biçimi
Her ileti veya kayıt, cihaz ve bulut özelliklerindeki değişiklikleri temsil eder. Dışarı aktarılan iletideki bilgiler şunları içerir:
applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -properties
.messageType
: ,cloudPropertyChange
devicePropertyDesiredChange
veyadevicePropertyReportedChange
.deviceId
: Telemetri iletisini gönderen cihazın kimliği.schema
: Yük şemasının adı ve sürümü.enqueuedTime
: IoT Central'ın bu değişikliği algıladığı saat.templateId
: Cihaza atanan cihaz şablonunun kimliği.properties
: Değişen özelliklerin ve değerlerin adları da dahil olmak üzere değişen özellikler dizisi. Özellik bir bileşen veya IoT Edge modülü içinde modellenmişse bileşen ve modül bilgileri dahil edilir.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.
Cihaz bağlantısı değişiklikleri biçimi
Her ileti veya kayıt, tek bir cihazdan gelen bir bağlantı olayını temsil eder. Dışarı aktarılan iletideki bilgiler şunları içerir:
applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -deviceConnectivity
.messageType
connected
: veyadisconnected
.deviceId
: Değiştirilen cihazın kimliği.schema
: Yük şemasının adı ve sürümü.templateId
: Cihaza atanan cihaz şablonunun kimliği.enqueuedTime
: Bu değişikliğin IoT Central'da gerçekleştiği saat.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.
Cihaz yaşam döngüsü değişiklikleri biçimi
Her ileti veya kayıt, tek bir cihazda yapılan bir değişikliği temsil eder. Dışarı aktarılan iletideki bilgiler şunları içerir:
applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -deviceLifecycle
.messageType
: Oluşan değişikliğin türü. Bunlardan biri:registered
,deleted
,provisioned
,enabled
,disabled
, ,displayNameChanged
vedeviceTemplateChanged
.deviceId
: Değiştirilen cihazın kimliği.schema
: Yük şemasının adı ve sürümü.templateId
: Cihaza atanan cihaz şablonunun kimliği.enqueuedTime
: Bu değişikliğin IoT Central'da gerçekleştiği saat.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.
Cihaz şablonu yaşam döngüsü değişiklikleri biçimi
Her ileti veya kayıt, yayımlanmış tek bir cihaz şablonunda yapılan bir değişikliği temsil eder. Dışarı aktarılan iletideki bilgiler şunları içerir:
applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -deviceTemplateLifecycle
.messageType
: ,created
updated
veyadeleted
.schema
: Yük şemasının adı ve sürümü.templateId
: Cihaza atanan cihaz şablonunun kimliği.enqueuedTime
: Bu değişikliğin IoT Central'da gerçekleştiği saat.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.
Denetim günlüğü biçimi
Her denetim günlüğü iletisi, IoT Central uygulamasının içindeki denetlenebilir bir varlıkta kullanıcı tarafından başlatılan bir değişikliği temsil eder. Dışarı aktarılan iletideki bilgiler şunları içerir:
actor
: Varlığı değiştiren kullanıcı hakkındaki bilgiler.applicationId
: IoT Central uygulamasının kimliği.messageSource
: İletinin kaynağı -audit
.messageType
: Oluşan değişikliğin türü. Bunlardan biri:updated
,created
,deleted
.updated
: Yalnızca isemessageType
mevcutturupdated
. Güncelleştirme hakkında daha fazla ayrıntı sağlar.resource
: Değiştirilen varlığın ayrıntıları.schema
: Yük şemasının adı ve sürümü.deviceId
: Değiştirilen cihazın kimliği.enqueuedTime
: Bu değişikliğin IoT Central'da gerçekleştiği saat.enrichments
: Dışarı aktarmada ayarlanan tüm zenginleştirmeler.
Sonraki adımlar
Artık Azure Veri Gezgini'a nasıl aktaracağınızı bildiğinize göre, önerilen bir sonraki adım Web Kancası'na aktarmayı öğrenmektir.