Cosmos DB ile IoT

Cosmos DB
Databricks
İşlevler
IoT Hub
Power BI

Çeşitli ve öngörülemeyen IoT iş yükleriyle başa çıkabilmek için, veri alımı ve sorgu performansından ödün vermeden anında ve esnek bir yöntemle ölçeklendirin.

Azure Cosmos DB, Microsoft’un genel olarak dağıtılan çok modelli veritabanıdır. Azure Cosmos DB, küresel dağıtım ve yatay ölçeğe göre temelden oluşturulmuştur. Kullanıcılarınızın olduğu her yerde verilerinizi şeffaf şekilde ölçeklendirerek ve çoğaltarak istediğiniz sayıda Azure bölgesinde kullanıma hazır küresel dağıtım sağlar. Dünya çapında aktarım hızını ve depolamayı esnek, yalnızca ihtiyacınız olan aktarım hızı ve depolama alanı için ödeme yapabilirsiniz.

Cosmos DB ıot çözümleri için idealdir. Cosmos DB, cihaz telemetri verilerini yüksek oranlarda alabilir ve düşük gecikme süresi ve yüksek kullanılabilirliğe sahip dizinli sorgulara geri sunabilir.

Cosmos DB, cassandra, mongodb, SQL, gremlin, etcd ve tablo için tel protokol ile uyumlu apı uç noktaları olan çok modelli bir veritabanıdır ve Jupyter Notebook dosyaları için yerleşik desteğe sahiptir.

Mimari

Mimari

Veri akışı

  1. IoT cihazlarından oluşturulan olaylar, Azure IoT Hub ileti akışı olarak analiz ve dönüştürme katmanına gönderilir. Azure IoT Hub, verilerin akışlarını yapılandırılabilir bir süre için bölümler halinde depolar.
  2. Azure Databricks, Apache Spark akışı çalıştıran, iletileri IoT Hub gerçek zamanlı olarak alır, iş mantığına göre verileri işler ve depolama için katmana yönelik verileri gönderir. Spark akışı, zaman dilimlerine göre hareketli ortalamaları, minimum ve maksimum değerleri hesaplamak gibi gerçek zamanlı çözümlemeler sağlayabilir.
  3. cihaz iletileri Cosmos DB öğesinde JSON belgeleri olarak depolanır. Bu, sık erişimli veri deposuolarak değerlendirilir. farklı cihaz satıcıları temsil eden farklı json şemaları, Cosmos DB depolanabilir veya kurallı bir JSON şemasına dönüştürülebilir.
  4. Depolama katmanı aşağıdakilerden oluşur:
    • azure blob Depolama-IoT Hub ileti yönlendirme , ham ıot cihaz iletilerini azure blob depolama alanına kaydedebilir ve bu da Blob depolamanın pahalı, uzun süreli bir soğuk veri deposugörevi görmesini sağlar.
    • Azure SQL Veritabanı-işlem ve ilişkisel verilerinizi depolamak için Azure SQL kullanın (örneğin, faturalandırma verileri, kullanıcı rolleri).
    • çözüm veri ambarınız için azure Synapse Analytics (daha önce azure SQL veri ambarı). Cosmos DB ve Azure SQL toplanan verileri kullanarak Azure Data Factory ile doldurulmuştur.
  5. Microsoft Power BI, kullanıcılarınız tarafından warehoused verilerini analiz etmek için kullanılabilir.
  6. Web, mobil ve diğer uygulamalar depolama katmanında oluşturulabilir. Örneğin, API 'Leri, üçüncü taraf kullanımları için depolama katmanı verilerine göre kullanıma sunabilirsiniz.
  7. Cosmos DB ' de bir cihaz iletisi eklendiğinde veya güncelleştirilişinde bir Azure işlevi yürütmek için Cosmos DB değişiklik akışını kullanın.
  8. Bazı cihaz iletileri (örneğin, bir hata kodu) cihazda gerçekleştirilmesi gereken bir işlem olabilir. Azure Işlevi, Azure IoT Hub hizmeti API 'sini kullanarak Azure IoT Hub bağlanabilir ve cihazda (örneğin, yeniden başlatma) bir eylem gerçekleştirebilir, bunlardan birini kullanarak:
    • Cihaz İkizleri
    • Buluttan cihaza iletiler
    • Doğrudan Yöntemler

Bileşenler

Bu mimari aşağıdaki Azure bileşenlerini kullanır:

  • Azure IoT Hub , cihaz telemetrisini ölçeklendirerek bulut ağ geçidi olarak davranır. IoT Hub Ayrıca cihazlara çift yönlü iletişimi destekler, böylece işlem buluttan veya Azure IoT Edge cihaza gönderilebilir. Azure IoT Edge, uç noktada makine öğrenimi modelleri gibi uygulamaları çalıştırmak için kullanılabilir.
  • Apache Spark akışı ile Azure Databricks , dönüştürme ve analiz katmanında bulunur. Databricks, IoT Hub Olay Hub 'ı ile uyumlu uç noktasına bağlanmak için Azure-eventhubs-spark_2 .11:2.3.6 Maven kitaplığını kullanır. Apache Spark akışı, hem Batch hem de akış iş yüklerini yerel olarak destekleyen, ölçeklenebilir, hataya dayanıklı bir akış işleme sistemidir.
  • Azure Cosmos DB , genel olarak dağıtılmış, çok modelli bir veritabanıdır.
    • tutarlılık düzeyleri-Cosmos DB, zorunluluğunu getirir ile kullanılabilirlik, gecikme süresi ve aktarım hızı arasındaki tutarlılığı sağlayan 5 tutarlılık düzeyini (güçlü, sınırlanmış eskime durumu, oturum, tutarlı ön ek, nihai) destekler.
    • TTL-Azure Cosmos DB belirli bir süre sonra bir kapsayıcıdan otomatik olarak öğe silme olanağı sağlar. bu, Cosmos DB Azure Blob soğuk depolamada depolanan uzun süreli verilerle son veriler için etkin bir veri deposu görevi görmesini sağlar.
    • Akışı Değiştir-değiştirilen belgelerin sıralanmış bir listesini, değiştirilme sırasına göre çıktı olarak verir. azure Cosmos kapsayıcının değişiklik akışındaki her yeni olayda otomatik olarak tetiklenecek küçük reaktif Azure işlevleri oluşturabilirsiniz. JSON belgesinin içeriğine bağlı olarak, Azure Işlevi Azure IoT Hub Service API 'sine bağlanabilir ve cihaz Ikizi, buluttan cihaza mesajlaşma veya doğrudan yöntemler kullanarak cihazda bir eylem yürütebilir.
    • istek birimi (RU)-Azure Cosmos DB cinsinden aktarım hızı ölçüsüdür. RUs hem performans hem de maliyet için işlem birimleridir. Ru ile, kullanılabilirliği koruyarak dinamik olarak ölçeği artırma ve azaltma, maliyet, performans ve kullanılabilirliği aynı anda iyileştirme.
    • bölümlendirme-bölüm anahtarı, verilerin çeşitli bölümlerde Cosmos DB nasıl yönlendirildiğini ve belirli senaryonuzun bağlamda anlamlı olması gerektiğini belirlemektir. IoT cihaz KIMLIĞI, genellikle IoT uygulamaları için "doğal" Bölüm anahtarıdır.
  • Azure SQL Veritabanı , işlem ve diğer ıot olmayan veriler için ilişkisel veritabanıdır.
  • azure Synapse Analytics , azure SQL ve Cosmos DB toplanan verileri içeren veri ambarı ve raporlama platformudur. Kurumsal veri depolama ve büyük veri analizi için.
  • Azure Cosmos DB için azure Synapse bağlantısı , azure Synapse çalışma alanınızda bulunan iki analiz altyapısını kullanarak, işlem iş yükünüz üzerinde herhangi bir performans veya maliyet etkisi olmadanAzure Cosmos DB işletimsel veriler üzerinde neredeyse gerçek zamanlı analizler çalıştırmanızı sağlar: sunucusuz ve Spark havuzlarınıSQL.
  • Power BI , verileri analiz etmek ve öngörüleri paylaşmak için bir iş analizi araçları paketidir. Power BI, Azure Analysis Services depolanan bir anlamsal modeli sorgulayabilir veya doğrudan Azure Synapse sorgulayabilir.
  • Azure Uygulama Hizmetleri , Web uygulamaları ve mobil uygulamalar oluşturmak için kullanılabilir. Azure API uygulaması , hizmet katmanında depolanan verilere bağlı olarak üçüncü taraflara veri sunmak için kullanılabilir.
  • Azure işlevleri , ıot ileti yüklerini (örneğin, ikiliden JSON 'a) dönüştürmek veya Cosmos DB değişiklik akışına bağlanıldığında işlemleri tetiklemek için kullanılabilir. Azure Işlevleri, olay odaklı bir sunucusuz işlem platformudur. Ek kurulum olmadan yerel olarak derleme yapıp hata ayıklayın, bulutta büyük ölçekte dağıtım ve çalıştırma sağlayın, tetikleyicileri ve bağlamaları kullanarak hizmetleri tümleştirin.

Alternatifler

Dikkat edilmesi gerekenler

  • Cosmos DB, tek bir mantıksal bölüm için 20 GB 'lik bir sınıra (10 gb) sahiptir. Birçok IoT çözümü için bu boyut yeterlidir. Aksi takdirde şunlardan birini öneririz:
    • Bölüm anahtarını yapay bir alan olarak ayarlama ve bileşik değer atama (örneğin, cihaz KIMLIĞI + geçerli ay ve yıl). Bu, değerlerin son derece yüksek önem düzeyi olmasını sağlayacaktır.
    • , verileri Cosmos DB otomatik olarak ayıklamak ve verileri soğuk depolamaya çoğaltmak üzere akışı değiştirmek için bir TTL birleşimi kullanarak, eski Cosmos DB verileri soğuk depolamaya (örneğin, Azure Blob Depolama).

Sonraki adımlar

ıot ve Cosmos DB ile ilgili aşağıdaki makaleleri gözden geçirin.