Düzenle

Aracılığıyla paylaş


Azure Cosmos DB'de hiyerarşik bölüm anahtarları hakkında sık sorulan sorular

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa

Hiyerarşik bölüm anahtarları veya alt bölümleme, veri dağıtımını daha iyi hale getirmek ve daha yüksek ölçek sağlamak üzere bölüm anahtarlarınız için en fazla üç düzeyli bir hiyerarşi yapılandırmanıza olanak tanır. Bu makalede Azure Cosmos DB Hiyerarşik bölüm anahtarları hakkında sık sorulan sorular yanıtlanmaktadır.

Mevcut kapsayıcılara hiyerarşik bölüm anahtarları ekleyebilir miyim?

Mevcut kapsayıcılara hiyerarşik bölüm anahtarları eklenmesi desteklenmez. Ancak, istediğiniz hiyerarşik bölüm anahtarıyla yeni bir kapsayıcı oluşturabilir ve var olan kapsayıcınızdaki verileri yenisine kopyalamak için bir kapsayıcı kopyalama işi çalıştırabilirsiniz. Verileri kopyalama hakkında daha fazla bilgi için bkz . kapsayıcı kopyalama işleri.

Mantıksal bölüm anahtarının boyutu üzerinde bir depolama sınırı var mı?

Evet. Bugün Azure Cosmos DB'de olduğu gibi mantıksal bölüm boyutu da 20 GB ile sınırlıdır. Ancak hiyerarşik bölüm anahtarlarıyla mantıksal bölüm artık bölüm anahtarı yolunun tamamıdır. Örneğin, TenantId -> UserId ölçütüne göre bölümlediyseniz örnek bir mantıksal bölüm olacaktır Contoso_Alice. Alt bölümleme kullanmak, bölüm anahtarı değerinin Contoso_Aliceolduğu yerde 20 GB veriye sahip olabileceğiniz anlamına gelir. "Contoso" içindeki veriler için izin verilen depolama alanı miktarı, "Contoso" kiracısı için 20 GB * benzersiz Kullanıcı Kimliği sayısıdır.

Fiziksel bölümlerde depolama ve RU/sn sınırlarında herhangi bir değişiklik var mı?

Hayır Bugün Azure Cosmos DB'de olduğu gibi fiziksel bölüm de 50 GB depolama alanı barındırabilir ve 10.000 RU/sn'ye kadar hizmet verebilir. Ancak hiyerarşik bölüm anahtarlarıyla, belirli bir bölüm anahtarı ön eki için veriler (örneğin TenantId) birden çok fiziksel bölümdeyse, alt bölümleme tek bir TenantId için toplam RU/sn'nin 10.000 RU/sn'yi aşabileceği anlamına gelir.

Sorgularsam ve yalnızca yolun "ortasında" bir bölüm anahtarı belirtirsem ne olur?

Sorgunuz bölümler arası bir sorgudur. Örneğin, TenantId -> UserId ölçütüne göre bölümlerseniz ve sorguda yalnızca UserId değerini sağlarsanız, bu sorgu tüm fiziksel bölümleri destekler.

TenantId -> UserId örneğini kullanarak verimli bir şekilde yönlendirilmiş bir sorguya sahip olmak için iki seçenek vardır:

  • TenantId değerini sağlayın. Sorgular TenantId verilerini içeren tüm fiziksel bölümlere gider.
  • Hem TenantId hem de UserId değerini sağlayın. Sorgular TenantId ve belirli UserId değerlerini içeren tek bir fiziksel bölüme gider.

Bu özelliği kullanmak için belgelerimde yeni bir özellik oluşturmam gerekiyor mu?

Hayır Kapsayıcı oluşturma sırasında kullanmak istediğiniz bölüm anahtarı yollarının hiyerarşisini belirtin. Örneğin, TenantId -> UserId değerine göre bölümlerseniz, bu değerlerin birleştirilmiş olduğu yeni bir özellik oluşturmanız gerekmez. Her belgenin bir TenantId özelliğine ve UserId özelliğine sahip olduğundan emin olun. Daha fazla bilgi için bkz . kod örneklerini alt bölümleme.

Çok fazla kardinalitesi olmayan bir anahtar hiyerarşisi oluşturdum. Ne yapmalıyım?

İş yükünüzün tüm bölümlerinizden yalnızca birkaç fiziksel bölüme isabet ettiği bir senaryoda olabilirsiniz. Bu senaryo, hiyerarşik bölüm anahtarınızın bir veya daha fazla düzeyinin düşük kardinaliteye sahip olduğu anlamına gelebilir. Senaryo sorunlarını gidermek için her zaman hiyerarşik bölüm anahtarınızı yeniden oluşturmanızı öneririz. DTS kullanarak anahtarınızı değiştirebilir ve kapsayıcınızın verilerini yeni kapsayıcınıza kopyalayabilirsiniz. Bu adım mümkün değilse, verilerinizin tekdüzen dağıtımını sağlamanızı önerdiğimiz iki geçici çözüm vardır

  • Yaklaşım 1:
  1. Yalnızca bir fiziksel bölüme sahip olduğunuzdan emin olmak için 10.000 RU'dan az ru içeren bir kapsayıcı oluşturabilirsiniz.
  2. Bölüm bölmelerinin olmadığından emin olmak için yaklaşık 5 GB veri alın.
  3. İstediğiniz RU'lara ölçeklendirin, verileri almaya devam edin ve Azure Cosmos DB fiziksel bölümlerinizin düzgün bir şekilde bölünmesini sağlar.
  • Yaklaşım 2:
  1. Toplam teklifinizi daha yüksek sayıda RU'ya yükseltebilir ve tüm verilerinizi alabilirsiniz.
  2. Ardından, iş yükünüzün bölümlerinin parçalanmadığından ve eşit dağıtıma sahip olduğundan emin olmak için bölüm birleştirme gerçekleştirin
  3. Birleştirme tamamlandıktan sonra, ölçeği yeniden özgün istediğiniz RU sayısına düşürebilirsiniz.

Her bölümün ne kadar aktarım hızına sahip olduğu üzerinde daha fazla denetim sahibi olmak için, iş yükünüzün kullandığı bölümlerin gelecekteki istekleriniz için yeterli RU'ya sahip olduğundan emin olmak için aktarım hızı yeniden dağıtımını da kullanabilirsiniz.

Sonraki adımlar

  • Hiyerarşik bölüm anahtarları hakkında daha fazla bilgi edinin.