Azure Cosmos DB'yi açıklayın
Geliştirme ekibiniz, ilişkisel olmayan veri depolarıyla çalışma deneyimine sahiptir. Bu deneyimi, akıllı gereçler tarafından oluşturulan IoT telemetrisinin işlenmesini ve depolanmasını içerecek şekilde buluta özel çözümün işlevselliğini genişletmek için kullanmak istiyorsunuz. Azure tarafından yönetilen NoSQL tekliflerini keşfettikten sonra Azure Cosmos DB kullanmaya karar verdiniz. Aşağıdaki bilgiler, telemetri verileri için kalıcı bir veri deposu olarak uygunluğunu onaylamanıza yardımcı olabilir.
Cosmos DB nedir?
Azure Cosmos DB, tam olarak yönetilen, bulutta yerel bir NoSQL veritabanıdır. Azure temel hizmetlerinden biridir ve bu da her Azure bölgesinde kullanılabildiği anlamına gelir.
Yönetilen hizmet olarak Azure Cosmos DB, altta yatan veritabanı motorunun güncellenmesi veya düzeltme eki uygulanması gibi çoğu geleneksel veritabanı yönetim görevini kolaylaştırır. Performans ve yanıt hızı için Hizmet Düzeyi Sözleşmesi (SLA) destekli garantiler ile otomatik ve anında ölçeklenebilirlik sunar. Ayrıca ilişkisel veritabanlarından ayıran bir dizi dayanıklılık özelliği de sağlar. Bu özellikler, dünya genelinde dağıtılmış ve birden çok bölgede yazma yeteneğine sahip replikalar ve güçlüden nihaie kadar beş farklı tutarlılık modeli uygulama yeteneğini içerir.
Azure Cosmos DB'nin bir diğer benzersiz özelliği de birden çok veritabanı API'sine yönelik destektir. Azure Cosmos DB sağlarken yerel Çekirdek (NoSQL) API'sinin, MongoDB API'sinin, Cassandra API'sinin, Gremlin API'sinin ve Tablo API'sinin arasından tercih ettiğiniz geliştirme platformunu seçebilirsiniz. NoSQL için Azure Cosmos DB API'siyle .NET SDK, Java SDK, Node.jsveya Python gibi tercih ettiğiniz geliştirme platformunu seçme esnekliğine sahipsiniz.
Cosmos DB'nin ilişkisel veritabanlarına göre avantajları nelerdir?
İlişkisel veritabanı sistemlerinin ortak özelliklerinden biri, işlemsel davranışlarını garanti eden kilitleme kullanımıdır. Bu garantiler, her veritabanında güçlü veri tutarlılığı sağlamaya yardımcı olur. Bu tutarlılık birçok senaryoda istense de eşzamanlılık, gecikme süresi ve kullanılabilirlik üzerinde olumsuz bir etkiye sahiptir. Bir veritabanını birden çok parçaya bölerek bu olumsuz etkileri azaltmak mümkündür, ancak bu yaklaşımı uygulamak ve korumak karmaşıktır.
Azure Cosmos DB, bu dezavantajları farklı tutarlılık modelleri, yerleşik çoğaltma ve yapılandırılabilir çakışma çözümleme mekanizmasıyla birden çok bölgeli yazma desteğinin bir bileşimiyle ele alır. Bu destek, güçlü tutarlılığın gerekli olmadığı senaryolarda önemli performans ve dayanıklılık avantajları sağlar. Aynı zamanda Cosmos DB, böyle bir tutarlılık gerekiyorsa sunucu tarafı işlemleri de destekler.
Cosmos DB kaynak modeli nedir?
Azure Cosmos DB'yi uygulamak için önce Azure aboneliğinizde bir Azure Cosmos DB hesabı oluşturmanız gerekir. Hesap, dağıtım ve yüksek kullanılabilirlik birimi görevi görür. Birden çok bölgede çoğaltma yapmak ve bu çoğaltmalardan her birini yazılabilir hale getirmek için bir hesap yapılandırma seçeneğiniz vardır. Ayrıca bir hesap için varsayılan tutarlılık düzeyini de yapılandırabilirsiniz.
SQL API' sini, MongoDB için API'yi veya Gremlin API'sini kullandığınızda, bir hesap her biri bir veya daha fazla kapsayıcı barındıran bir veya daha fazla veritabanı içerebilir. Kapsayıcı ölçeklenebilirlik birimidir ve içeriğini işlemek için işlem ve depolama kaynakları atamanızı sağlar. MongoDB için SQL API veya API varsa bu içerik, belirli bir şema tanımlı kısıtlama olmadan öğeler olarak adlandırılan JSON biçimli belgelerin biçimini alır. Varsayılan olarak, Azure Cosmos DB açık dizin veya şema yönetimi gerektirmeden kapsayıcıdaki tüm öğeleri otomatik olarak dizinler, ancak size dizin oluşturma davranışını özelleştirme seçeneği sunar.
Bir veritabanındaki veya tek tek koleksiyonlardaki verileri işlemek için kullanılabilecek kaynakların sayısı, kullanılabilir İstek Birimi (RU) sayısına bağlıdır. RU sayısı, belirttiğiniz veritabanı veya kapsayıcı yapılandırmasına bağlıdır. Cosmos DB, tercihlerinize bağlı olarak RU ayırmayı belirleyen üç mod sunar.
- Sağlanan aktarım hızı modu. Bu modda, beklenen kullanım desenlerini yansıtacak belirli sayıda RU belirtirsiniz. Bu yaklaşım, elde edilen performans ve maliyet hakkında en netliği sunar.
- Otomatik ölçeklendirme modu. Bu modda, temel gereksinimlerinizi karşılamak için yeterli olduğunu düşündüğünüz RU sayısını önceden ayırırsınız, ancak veri erişimine daha fazla talep olması durumunda bunların otomatik olarak artırılmasına izin verirsiniz. Bu mod, değişken veya öngörülemeyen kullanım desenlerine sahip görev açısından kritik iş yükleri için en uygun moddur.
- Sunucusuz mod. Bu modda RU'ları önceden ayırmanız gerekmez. Bunun yerine, işlem kaynaklarının miktarını artırmak veya azaltmak için Azure Cosmos DB'nin otomatik ölçeklendirme özelliklerine güvenirsiniz. İş yükleriniz veritabanı etkinlik dışı kalma sürelerinden sonraki geçici gecikme süresini tolere edebilirse, bu mod maliyet açısından yararlı olabilir.
Azure IoT senaryolarında Cosmos DB'nin avantajları ve kullanım örnekleri nelerdir?
Azure Cosmos DB, IoT senaryoları için uygun hale getiren birçok özellik sunar:
Bölümleme. Azure Cosmos DB, belirttiğiniz mantıksal bölüm anahtarını kullanarak kapsayıcıları otomatik olarak bölümler. Bölümleme, Azure Cosmos DB'nin ölçeklenebilirlik ve dayanıklılığının arkasındaki temel mekanizmadır. Bölüm anahtarını seçerek, büyük hacimli cihaz ve telemetri verilerinin depolanmasını ve işlenmesini gerektiren IoT senaryolarına uyum sağlayabilirsiniz.
Not
Mantıksal bölüm boyutu 20 GB'ı aşamaz.
Yaşam Süresi (TTL). TTL ile Azure Cosmos DB, belirlediğiniz bir süre sonunda öğeleri otomatik olarak silebilir. TTL tabanlı silme işlemleri RU kullanımına uygun olmadığından bu otomasyon veri yaşam döngüsü yönetimini basitleştirir ve maliyeti düşürür.
Akışı değiştirme. Azure Cosmos DB, koleksiyon öğelerinde yapılan değişikliklerden sonra bir eylemi otomatik olarak tetikleyen değişiklik akışını kullanır. Bu otomatik tetikleyici, ilgili eylemi tetikleyen veri değişikliklerine dayalı olan ortak IoT tasarım deseninin uygulanmasını kolaylaştırır.
Performans ve dayanıklılık için Hizmet Düzeyi Sözleşmeleri (SLA'lar). Büyük hacimli akış verileri içeren IoT senaryolarında müşteriler, okuma ve yazmaların 99. yüzdebirliği için 10 ms'den az gecikme süresine ve birden çok bölgeli yazmalar için 99,999% kullanılabilirliğe güvenebilir.
Şemasız veritabanları. Azure Cosmos DB, şema tabanlı kısıtlamaları ortadan kaldırarak aynı koleksiyondaki farklı cihaz modelleri tarafından oluşturulan çeşitli telemetri türlerinin depolanmasını sağlar.
Otomatik dizin oluşturma. Azure Cosmos DB dizin oluşturma desteği, kayıtlı cihazların envanterlerini ve telemetri verilerini içeren büyük hacimlerde hızlı ve esnek aramalara katkıda bulunur.
Azure Cosmos DB iki birincil IoT kullanım örneği barındırmaktadır:
- Görselleştirme, işlem sonrası ve analiz için telemetri verilerine hızlı erişimi kolaylaştıran cihaz telemetrisini depolar.
- IoT cihazlarının, varlıkların ve topolojilerinin modellenmesine uygun bir cihaz kataloğu depolar ve her cihaz bir öğeyle temsil edilir.