Çok kullanıcılılık ve Azure Cosmos DB

Bu sayfada, çok kullanıcılı sistemlerle çalışırken yararlı olan Azure Cosmos DB'nin bazı özelliklerini açıklar ve çok kullanıcılı bir çözümde Azure Cosmos DB'nin nasıl kullanımına yönelik kılavuzlara ve örneklere bağlantı sağlarız.

Azure Cosmos DB'nin çok kullanıcılı modeli destekleyen özellikleri

Bölümleme

Bölümleri veritabanı veritabanı Cosmos kullanarak birden çok kiracı arasında paylaşılan kapsayıcılar oluşturabilirsiniz. Genellikle kiracı tanımlayıcısını bölüm anahtarı olarak kullanırsanız, ancak tek bir kiracı için birden çok bölüm anahtarı kullanmayı da düşünebilirsiniz. İyi planlanmış bir bölümleme stratejisi, Parçalama desenini etkili bir şekilde uygulayan bir stratejidir. Büyük kapsayıcılarla Cosmos DB, yüksek bir ölçek derecesi elde etmek için kiracılarınızı birden çok fiziksel düğüme yatır.

Daha fazla bilgi:

İstek birimlerini yönetme

Cosmos DB'nin fiyatlandırma modeli, sağlanan veya tükettiğiniz saniye başına istek birimi sayısına göredir. İstek birimi, veritabanı işlemi veya sorgusu maliyetinin mantıksal bir soyutlamadır. Genellikle, iş yükünüz için işleme hızı olarak adlandırılan, saniye başına tanımlı sayıda istek birimi sağlarsiniz. Cosmos DB, aktarım hızını sağlama hakkında çeşitli seçenekler sağlar. Çok kullanıcılı bir ortamda, sizin yapılan seçim veritabanı kaynaklarınızı performansını ve Cosmos etkiler.

Cosmos DB için bir kiracı modeli, paylaşılan bir veritabanı içindeki her kiracı için ayrı kapsayıcılar dağıtmayı içerir. Cosmos DB, veritabanı için istek birimleri sağlamayı sağlar ve tüm kapsayıcılar istek birimlerini paylaşır. Kiracı iş yükleriniz genellikle çakışıyorsa, bu işlem maliyetlerinizi azaltmak için yararlı bir yaklaşım sağlar. Ancak, tek bir kiracının kapsayıcısı paylaşılan sağlanan istek birimlerinin orantısız bir miktarını tükettiği için bu yaklaşımın Gürültülü Komşu sorununa açık olduğunu unutmayın. Gürültülü kiracıları belirledikten sonra bunu azaltmak için isteğe bağlı olarak belirli bir kapsayıcıda sağlanan aktarım hızını ayarlayabilirsiniz. Veritabanındaki diğer kapsayıcılar aktarım hızını paylaşmaya devam eder, ancak gürültülü kiracı kendi ayrılmış aktarım hızını kullanır.

Cosmos DB ayrıca aralıklı veya öngörülemeyen trafiğe sahip iş yükleri için uygun olan sunucusuz bir katman da sağlar. Alternatif olarak, otomatik ölçeklendirme sağlanan aktarım hızının ölçeklendirimlerini belirtmek için ilkeleri yapılandırmaya olanak sağlar. Çok kiracılı bir çözümde, farklı kiracı türlerini desteklemek için bu yaklaşımların hepsini bir arada kullanabilirsiniz.

Not

Veritabanı yapılandırmanızı Cosmos, hizmet kotalarını ve sınırlarını dikkate almanızı sağlar.

Her kiracıyla ilişkili maliyetleri izlemek ve yönetmek için, Cosmos DB API'sini kullanan her işlem, tüketilen istek birimlerini içerir. Her kiracı tarafından tüketilen gerçek istek birimlerini toplamak ve karşılaştırmak için bu bilgileri kullanabilir ve ardından farklı performans özelliklerine sahip kiracıları tanımlayabilirsiniz.

Daha fazla bilgi:

Müşteri tarafından yönetilen anahtarlar

Bazı kiracılar kendi şifreleme anahtarlarının kullanımını gerekli olabilir. Cosmos DB müşteri tarafından yönetilen bir anahtar özelliği sağlar. Bu özellik bir Cosmos DB hesabı düzeyinde uygulandığı için kendi şifreleme anahtarlarını gerektiren kiracıların ayrılmış veritabanı hesapları kullanılarak Cosmos gerekir.

Daha fazla bilgi:

Yalıtım modelleri

Azure Cosmos DB kullanan çok kullanıcılı bir sistemle çalışırken kullanmak istediğiniz yalıtım düzeyiyle ilgili bir karara varmanız gerekir. Azure Cosmos DB çeşitli yalıtım modellerini destekler:

Kiracı başına bölüm anahtarları ile paylaşılan kapsayıcılar Kiracı başına paylaşılan aktarım hızına sahip kapsayıcı Kiracı başına ayrılmış aktarım hızına sahip kapsayıcı Kiracı başına veritabanı hesabı
Yalıtım seçenekleri
  • Aktarım hızını kapsayıcıya göre gruplandırarak kiracılar arasında paylaşın ('düşük' kiracılarda maliyeti düşürmek için harikadır).
  • Kiracılar genelinde kolay sorgular sağlar (kapsayıcılar sorgular için sınır olarak hareket eder). Gürültülü bir komşu yarıçapını (kiracıları kapsayıcıya göre gruplama) hafifletin.
  • Veritabanına göre gruplandırarak kiracılar arasında aktarım hızını paylaşın (bu, 'pahalı' kiracılarda maliyetleri düşürmek için harikadır).
  • Kiracıların kolay yönetimi (kiracı ayrıldığında kapsayıcıyı bırakın).
  • Gürültülü komşu yarı yarıçapını (kiracıları veritabanına göre gruplama) hafifletin.
  • Bağımsız aktarım hızı seçenekleri (ayrılmış aktarım hızı gürültülü komşularını ortadan kaldırıyor).
  • Veritabanı hesapları içindeki kiracıları bölgesel ihtiyaçlarına göre grupla.
  • Bağımsız coğrafi çoğaltma düğmeleri.
  • Birden çok aktarım hızı seçeneği (ayrılmış aktarım hızı gürültülü komşularını ortadan kaldırıyor).
Aktarım hızı gereksinimleri >Kiracı başına 0 RU >Kiracı başına 100 RU >Kiracı başına 400 RU >Kiracı başına 400 RU
Örnek kullanım örneği B2C uygulamaları B2B uygulamaları için standart teklif Premium B2B uygulamaları için yeni teklif Premium B2B uygulamaları için yeni teklif

Kiracı başına bölüm anahtarları ile paylaşılan kapsayıcı

Birden çok kiracı için tek bir kapsayıcıyı kullanırken, Cosmos DB'nin bölümleme desteğini kullanabilirsiniz. Her kiracı için ayrı bölüm anahtarları kullanarak tek bir kiracının verilerini kolayca sorgulayabilirsiniz. Ayrıca, ayrı bölümlerde olsalar bile birden çok kiracı arasında sorgu oluşturabilirsiniz. Ancak bölümler arası sorgular, tek bölümli sorgulara göre daha yüksek bir istek birimi (RU) maliyetine sahip olur.

Her kiracı için depolanan veri miktarı küçük olduğunda bu yaklaşım iyi çalışma eğilimindedir. Ücretsiz katman içeren bir fiyatlandırma modeli ve işletmeden tüketiciye (B2C) çözümler için iyi bir seçenek olabilir. Genel olarak, paylaşılan kapsayıcıları kullanarak kiracıların en yüksek yoğunluğuna ve dolayısıyla kiracı başına en düşük fiyata ulaşılır.

Kapsayıcının aktarım hızını göz önünde bulundurarak göz önünde bulundurabilirsiniz. Tüm kiracılar kapsayıcının aktarım hızını paylaşır, bu nedenle kiracılar yüksek veya çakışan iş yükleri varsa Gürültülü Komşu sorunu performans sorunlarına neden olabilir. Bu sorun bazen kiracı alt kümelerini farklı kapsayıcılar halinde gruplama ve her kiracı grubunun uyumlu kullanım desenlerine sahip olmasını sağlayarak azaltabilirsiniz. Alternatif olarak, daha küçük kiracıların paylaşılan bölümlenmiş kapsayıcılar olarak grupladığı ve büyük müşterilerin ayrılmış kapsayıcılara sahip olduğu karma çok ve tek kiracılı bir modeli düşünebilirsiniz.

Ayrıca, her mantıksal bölümde depolayabilirsiniz veri miktarını göz önünde bulundurabilirsiniz. Azure Cosmos DB, her mantıksal bölümün 20 GB'a kadar büyümesine olanak sağlar. 20 GB'den fazla veri depolaması gereken tek bir kiracınız varsa, verileri birden çok mantıksal bölüme yayabilirsiniz. Örneğin, tek bir bölüm anahtarına sahip olmak yerine, bir kiracı için , ve gibi birden çok bölüm anahtarı oluşturarak ContosoContosoContoso1 bölüm Contoso2 anahtarlarının saltunu oluşturabilirsiniz. Bir kiracı için verileri sorgularken tüm bölüm anahtarlarını WHERE IN eşleşmesi için yan tümcesini kullanabilirsiniz. Hiyerarşik bölüm anahtarları, büyük kiracıları desteklemek için de kullanılabilir.

Çözümle ilgili çalışma yönlerini ve kiracı yaşam döngüsünün farklı aşamalarını göz önünde bulundurarak. Örneğin, kiracı ayrılmış bir fiyatlandırma katmanına taşınacaksa büyük olasılıkla verileri farklı bir kapsayıcıya taşımanız gerekir. Kiracının verisi kaldırıldı mı, verileri kaldırmak için kapsayıcıda bir silme sorgusu çalıştırmanız gerekir ve büyük kiracılar için bu sorgu yürütülürken önemli miktarda aktarım hızı tüketir.

Kiracı başına kapsayıcı

Her kiracı için ayrılmış kapsayıcılar s temin edin. Bu, kiracınız için depoladığınız veriler tek bir kapsayıcıda birleştirilene kadar iyi bir şekilde çalışır.

Her kiracı için bir kapsayıcı kullanırken, aktarım hızını veritabanı düzeyinde sarak aktarım hızını diğer kiracılarla paylaşmayı düşünebilirsiniz. Veritabanınız için en az istek birimi sayısı ve veritabanındaki kapsayıcı sayısı üst sınırıyla ilgili kısıtlamaları ve sınırları göz önünde bulundurabilirsiniz. Ayrıca kiracılarının garantili bir performans düzeyine ihtiyaçip gerek olmadığını ve Gürültülü Komşu sorununa açık olup olmadığını da göz önünde bulundurabilirsiniz. Gerekirse, kiracıları iş yükü desenlerine göre farklı veritabanlarında gruplayın.

Alternatif olarak, her bir kapsayıcı için adanmış aktarım hızı sağlayabilirsiniz. Bu, daha büyük kiracılar ve gürültülü komşu sorunuriski altında olan kiracılar için iyi bir sonuç verir. Ancak, her kiracı için temel üretilen iş hacmi daha yüksektir, bu nedenle bu modelin en düşük gereksinimlerini ve maliyet etkilerini göz önünde bulundurun.

Kapsayıcılar kiracılar için ayrılmışsa yaşam döngüsü yönetimi genellikle daha basittir. Kiracıların paylaşılan ve adanmış aktarım hızı modelleri arasında kolayca taşınmasınısağlayabilirsiniz ve bir kiracının sağlamasını kaldırdığınızda kapsayıcıyı hızlıca silebilirsiniz.

Kiracı başına veritabanı hesabı

Cosmos DB, her bir kiracı için en yüksek düzeyde yalıtım sağlayan, en düşük yoğunluğu sağlayan ayrı veritabanı hesapları sağlamanıza olanak tanır. Tek bir veritabanı hesabı kiracıya ayrılmıştır ve bu, gürültülü komşu soruna tabi olmadıkları anlamına gelir. ayrıca, kiracının gereksinimlerine göre veritabanı hesabının konumunu yapılandırabilir ve coğrafi çoğaltma ve müşteri tarafından yönetilen şifreleme anahtarları gibi Cosmos DB özelliklerinin yapılandırmalarını her kiracının gereksinimlerine uyacak şekilde ayarlayabilirsiniz. kiracı başına adanmış bir Cosmos DB hesabı kullanırken, Azure aboneliği başına en fazla Cosmos DB hesabı sayısınıgöz önünde bulundurun.

kiracıların paylaşılan bir hesaptan adanmış bir Cosmos DB hesabına geçişine izin verirseniz, bir kiracının verilerini eski ve yeni hesaplar arasında taşımak için kullanacağınız geçiş yaklaşımını göz önünde bulundurun.

Karma yaklaşımlar

Yukarıdaki yaklaşımların bir bileşimini, farklı kiracının gereksinimlerine ve fiyatlandırma modelinizeuyacak şekilde düşünebilirsiniz. Örnek:

  • Paylaşılan bir kapsayıcı içindeki tüm ücretsiz deneme müşterilerini sağlayın ve kiracı KIMLIĞINI veya yapay anahtar bölüm anahtarınıkullanın.
  • Kiracı başına adanmış bir kapsayıcı dağıtan, ancak bir veritabanında paylaşılan verimliliksunan ücretli bir bronz katman sunun.
  • Kiracının kapsayıcısı için adanmış aktarım hızı sağlayan daha yüksek bir gümüş katman sunar.
  • En yüksek Gold katmanı sunun ve kiracı için ayrılmış bir veritabanı hesabı sağlayın ve bu da kiracının dağıtım için coğrafya seçmesini sağlar.

Sonraki adımlar

Çok kiracılı depolama ve veri yaklaşımlarınıgözden geçirin.