IoT iş yüklerinde Azure Cosmos DB

Azure Cosmos DB
Azure Databricks
Azure Functions
Azure IoT Hub
Power BI

Bu makalede, Azure Cosmos DB veritabanı hizmetinin çeşitli özelliklerine dayalı nesnelerin İnterneti (IoT) iş yükü açıklanmaktadır. Azure Cosmos DB, genel dağıtım ve yatay ölçek için oluşturulmuş çok modelli bir veritabanıdır.

Genel dağıtım, verileri Azure bölgelerinde saydam bir şekilde ölçeklendirir ve çoğaltır. Aktarım hızını ve depolamayı dünya çapında ölçeklendirin ve yalnızca ihtiyacınız olan miktar için ödeme yapabilirsiniz. Anında esnek ölçeklendirme, alım veya sorgu performansı ödün vermeden çeşitli ve öngörülemeyen IoT iş yüklerini barındırmaktadır.

Azure Cosmos DB, Aşağıdakilere uygun olduğundan IoT iş yükleri için idealdir:

  • Cihaz telemetri verilerini yüksek hızlarda alma ve düşük gecikme süresi ve yüksek kullanılabilirlik ile dizine alınmış sorgular döndürme.
  • Farklı cihaz satıcılarından JSON biçimini depolamak, yük şemasında esneklik sağlar.
  • Cassandra, MongoDB, SQL, Gremlin vb. ve tablo veritabanları için kablo protokolü uyumlu API uç noktalarını ve Jupyter Notebook dosyaları için yerleşik desteği kullanarak.

Olası kullanım örnekleri

  • Yüksek oranda hızlı yanıt veren IoT uygulamaları için düşük gecikme süreli okuma-yazma özelliğini etkinleştirmek için yerleşik, genel olarak dağıtılmış Azure Cosmos DB özelliklerini kullanın.
  • Çok çeşitli cihaz satıcılarından ve veri türlerinden verileri işleyebilirsiniz.

Mimari

Azure IoT çözüm mimarisinde Azure Cosmos DB'nin rolünü gösteren diyagram.Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

  1. IoT algılayıcıları ve Edge cihazları olayları Azure IoT Hub aracılığıyla analiz ve dönüştürme katmanına ileti akışı olarak gönderir. IoT Hub, veri akışlarını belirli bir süre boyunca bölümlerde depolayabilir.

  2. Apache Spark Yapılandırılmış Akış ile Azure Databricks, IoT Hub'dan iletileri gerçek zamanlı olarak alır, verileri iş mantığına göre işler ve verileri depolamaya gönderir. Yapılandırılmış Akış, hareketli ortalamaları veya zaman aralıkları içindeki minimum ve maksimum değerleri hesaplama gibi gerçek zamanlı analizler sağlayabilir.

  3. Azure Cosmos DB, cihaz iletilerini sık erişimli veri deposunda JSON belgeleri olarak depolar. Azure Cosmos DB, farklı cihaz satıcılarından gelen JSON şemalarında doğrulama yapabilir.

    Depolama katmanı da şunlardan oluşur:

    • Azure Blob Depolama. IoT Hub ileti yönlendirmesi , ham cihaz iletilerini Blob depolamaya kaydederek ucuz, uzun süreli bir soğuk veri deposu sağlar.
    • faturalama verileri ve kullanıcı rolleri gibi işlemsel ve ilişkisel verileri depolamak için Azure SQL Veritabanı.
    • Azure Cosmos DB ve Azure SQL DB'den veri toplayan Azure Data Factory tarafından doldurulan Azure Synapse Analytics veri ambarı.
  4. Microsoft Power BI, veri ambarını analiz eder.

  5. Sunu katmanı web, mobil ve API uygulamaları oluşturmak için depolama katmanındaki verileri kullanır.

  6. Yeni veya güncelleştirilmiş bir cihaz iletisi geldiğinde, Azure Cosmos DB değişiklik akışı bir Azure İşlevleri işlevi tetikler.

  7. İşlev, iletinin yeniden başlatma gibi bir cihaz eylemi gerekip gerekmediğini belirler. Bu durumda işlev IoT Hub Hizmeti API'sini kullanarak IoT Hub'a bağlanır ve cihaz eylemini başlatır. işlevi cihaz ikizlerini, buluttan cihaza iletileri veya doğrudan yöntemleri kullanarak eylemi başlatabilir.

Bileşenler

Bu iş yükü aşağıdaki Azure bileşenlerini kullanır:

Azure Cosmos DB

Bu IoT iş yükü, genel olarak dağıtılmış, çok modelli bir veritabanı olan Azure Cosmos DB'yi öne çıkartır. İş yükü aşağıdaki Azure Cosmos DB özelliklerini kullanır:

  • Tutarlılık düzeyleri. Azure Cosmos DB en güçlüden en zayıfa kadar beş okuma tutarlılığı düzeyini destekler: Güçlü, sınırlanmış eskime durumu, oturum, tutarlı ön ek ve son. Genel olarak, daha güçlü tutarlılık daha düşük kullanılabilirlik, daha uzun gecikme süresi ve daha düşük aktarım hızı sağlar. İş yükü gereksinimlerinize göre bir tutarlılık düzeyi seçebilirsiniz.

  • Yaşam süresi (TTL). Azure Cosmos DB belirli bir zaman aralığından sonra kapsayıcıdaki öğeleri otomatik olarak silebilir. Bu özellik, Azure Cosmos DB'nin Azure Blob soğuk depolama alanında depolanan uzun süreli verilerle son veriler için sık erişimli veri deposu işlevi görmesine olanak tanır.

  • Akışı değiştirme. Değişiklik akışı özelliği, değiştirilen belgelerin sıralı listesini değiştirildikleri sırayla oluşturur. Azure Cosmos DB kapsayıcısının değişiklik akışındaki her yeni olay otomatik olarak küçük bir reaktif Azure İşlevleri işlevini tetikler. JSON belgesinin içeriğine bağlı olarak işlev Azure IoT Hub Hizmeti API'sine bağlanabilir ve cihazda bir eylem yürütebilir.

  • İstek birimleri (RU). RU'lar, Azure Cosmos DB aktarım hızını ölçen işlem birimleridir. Azure Cosmos DB'nin ölçeğini dinamik olarak büyütmek ve küçültmek için RU'ları kullanabilir, kullanılabilirliği koruyabilir ve maliyet ve performans için iyileştirme yapabilirsiniz.

  • Bölümleme. Bölüm anahtarı, Azure Cosmos DB'nin bölümlerdeki verileri nasıl yönlendireceğini belirler. IoT Cihaz Kimliği, IoT uygulamaları için normal bölüm anahtarıdır.

Diğer Azure bileşenleri

Çözüm aşağıdaki Azure bileşenlerini de kullanır:

  • Azure IoT Edge , makine öğrenmesi modelleri gibi uygulamaları uçta çalıştırır.

  • Azure IoT Hub , cihaz telemetrisini büyük ölçekte alan bulut ağ geçidi işlevi görür. IoT Hub cihazlara geri iletişimi destekleyerek eylemlerin buluttan IoT Edge'e cihaza gönderilmesini sağlar.

  • Spark Yapılandırılmış Akış ile Azure Databricks, toplu iş yüklerini ve akış iş yüklerini yerel olarak destekleyen ölçeklenebilir, hataya dayanıklı bir akış işleme sistemidir. Azure Databricks, dönüştürme ve analiz katmanıdır ve azure-eventhubs-spark_2.11:2.3.6 Maven kitaplığını kullanarak IoT Hub olay hub'ı ile uyumlu uç noktaya bağlanır.

  • Azure Blob Depolama yapılandırılmamış veriler için ölçeklenebilir, ucuz, uzun süreli soğuk veri depolama alanı sağlar.

  • Azure SQL Veritabanı, işlemsel ve Diğer IoT olmayan veriler için ilişkisel veritabanıdır.

  • Azure Synapse Analytics , kurumsal veri ambarı ve büyük veri analizi için bir veri ambarı ve raporlama platformudur. Synapse Analytics, Azure SQL Veritabanı ve Azure Cosmos DB'den toplanan verileri içerir.

    Azure Cosmos DB için Azure Synapse Link, işlem iş yükleri üzerinde herhangi bir performans veya maliyet etkisi olmadan Azure Cosmos DB işletim verileri üzerinde neredeyse gerçek zamanlı analiz sağlar. Synapse Link, Azure Synapse çalışma alanında iki analiz altyapısını kullanır: SQL Sunucusuz ve Spark Havuzları.

  • Power BI , verileri analiz etmek ve içgörüleri paylaşmak için kullanılan bir iş analizi araçları paketidir. Power BI, Azure Analysis Services'te depolanan bir anlam modelini sorgulayabilir veya Synapse Analytics'i doğrudan sorgulayabilir.

  • Azure Uygulaması Hizmeti web ve mobil uygulamalar oluşturur. Azure API Uygulaması , üçüncü taraf uygulamaların sunum katmanındaki verileri temel alarak API'leri kullanmasına olanak tanır.

  • Azure İşlevleri, bulutta büyük ölçekte çalışabilen ve tetikleyicileri ve bağlamaları kullanarak hizmetleri tümleştirebilen olay odaklı, sunucusuz bir işlem platformudur. Azure İşlevleri IoT ileti biçimlerini çevirebilir veya Azure Cosmos DB değişiklik akışına bağlandığında eylemleri tetikleyebilir.

Alternatifler

Dikkat edilmesi gereken noktalar

Azure Cosmos DB'nin tek bir mantıksal bölüm için 20 GB sınırı vardır. Çoğu IoT çözümü için bu boyut yeterlidir. Aksi takdirde şunları yapabilirsiniz:

  • Bölüm anahtarını yapay bir alana ayarlayın ve alana Cihaz Kimliği + Geçerli Ay ve Yıl gibi bileşik bir değer atayın. Bu strateji, iyi bir bölüm tasarımı için yüksek değer kardinalitesi sağlar. Daha fazla bilgi için bkz . Bölüm anahtarı seçme.

  • Veri yaşam döngüsüne bağlı olarak, eski Azure Cosmos DB verilerini Azure Blob Depolama gibi soğuk depolama alanına taşıyabilirsiniz. Verileri soğuk depolama alanına çoğaltmak için değişiklik akışının bir bileşimini ve belirli bir sürenin sonunda verileri kapsayıcıdan otomatik olarak silmek için TTL'yi kullanabilirsiniz.

Sonraki adımlar