Azure Cosmos DB'de sağlanan aktarım hızına giriş
ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa
Azure Cosmos DB, veritabanlarınızda ve kapsayıcılarınızda sağlanan aktarım hızını ayarlamanıza olanak tanır. Standart (el ile) veya otomatik ölçeklendirme olmak üzere iki tür sağlanan aktarım hızı vardır. Bu makalede sağlanan aktarım hızının nasıl çalıştığına genel bir bakış sağlanır.
Azure Cosmos DB veritabanı, bir kapsayıcı kümesi için yönetim birimidir. Veritabanı şemadan bağımsız bir dizi kapsayıcıdan oluşur. Azure Cosmos DB kapsayıcısı hem aktarım hızı hem de depolama için ölçeklenebilirlik birimidir. Kapsayıcı, bir Azure bölgesindeki bir dizi makine arasında yatay olarak bölümlendirilir ve Azure Cosmos DB hesabınızla ilişkili tüm Azure bölgelerine dağıtılır.
Azure Cosmos DB ile iki ayrıntı düzeyinde aktarım hızı sağlayabilirsiniz:
- Azure Cosmos DB kapsayıcıları
- Azure Cosmos DB veritabanları
Kapsayıcıda aktarım hızını ayarlama
Azure Cosmos DB kapsayıcısı üzerinde sağlanan aktarım hızı yalnızca bu kapsayıcı için ayrılmıştır. Kapsayıcı sağlanan aktarım hızını her zaman alır. Kapsayıcıda sağlanan aktarım hızı SLA'lar tarafından finansal olarak yedeklenmiştir. Kapsayıcıda standart (el ile) aktarım hızını yapılandırmayı öğrenmek için bkz . Azure Cosmos DB kapsayıcısı üzerinde aktarım hızı sağlama. Kapsayıcıda otomatik ölçeklendirme aktarım hızını yapılandırmayı öğrenmek için bkz . Otomatik ölçeklendirme aktarım hızı sağlama.
Kapsayıcıda sağlanan aktarım hızını ayarlamak en sık kullanılan seçenektir. İstek Birimlerini (RU) kullanarak herhangi bir miktarda aktarım hızı sağlayarak kapsayıcı için aktarım hızını esnek bir şekilde ölçeklendikleyebilirsiniz.
Kapsayıcı için sağlanan aktarım hızı fiziksel bölümleri arasında eşit olarak dağıtılır ve mantıksal bölümleri fiziksel bölümler arasında eşit olarak dağıtan iyi bir bölüm anahtarı varsayıldığında, aktarım hızı da kapsayıcının tüm mantıksal bölümlerine eşit olarak dağıtılır. Mantıksal bölümler için aktarım hızını seçmeli olarak belirtemezsiniz. Kapsayıcının bir veya daha fazla mantıksal bölümü fiziksel bir bölüm tarafından barındırıldığından, fiziksel bölümler yalnızca kapsayıcıya aittir ve kapsayıcıda sağlanan aktarım hızını destekler.
Mantıksal bir bölümde çalışan iş yükü, temel alınan fiziksel bölüme ayrılan aktarım hızından daha fazla aktarım hızı kullanıyorsa, işlemleriniz hız sınırlı olabilir. Sık erişimli bölüm olarak bilinen şey, bir mantıksal bölümün diğer bölüm anahtarı değerlerinden orantısız olarak daha fazla isteği olduğunda oluşur.
Hız sınırlama gerçekleştiğinde, kapsayıcının tamamı için sağlanan aktarım hızını artırabilir veya işlemleri yeniden deneyebilirsiniz. Ayrıca depolamayı ve istek birimini eşit olarak dağıtan bir bölüm anahtarı seçtiğinizden de emin olmanız gerekir. Bölümleme hakkında daha fazla bilgi için bkz . Azure Cosmos DB'de bölümleme ve yatay ölçeklendirme.
Kapsayıcı için öngörülebilir performans istediğinizde kapsayıcı ayrıntı düzeyinde aktarım hızını yapılandırmanızı öneririz.
Aşağıdaki görüntüde fiziksel bölümün kapsayıcının bir veya daha fazla mantıksal bölümünü nasıl barındırıyor olduğu gösterilmektedir:
Veritabanında işleme birimini ayarlama
Azure Cosmos DB veritabanında aktarım hızı sağladığınızda, aktarım hızı veritabanındaki tüm kapsayıcılar (paylaşılan veritabanı kapsayıcıları olarak adlandırılır) arasında paylaşılır. Tek istisna, veritabanındaki belirli kapsayıcılarda sağlanan bir aktarım hızı belirttiğinizde gerçekleşir. Veritabanı düzeyinde sağlanan aktarım hızını kapsayıcıları arasında paylaşmak, bir veritabanını bir makine kümesinde barındırmaya benzer. Veritabanındaki tüm kapsayıcılar bir makinede bulunan kaynakları paylaştığından, doğal olarak belirli bir kapsayıcıda öngörülebilir performans elde edilmez. Bir veritabanında sağlanan aktarım hızını yapılandırmayı öğrenmek için bkz . Azure Cosmos DB veritabanında sağlanan aktarım hızını yapılandırma. Veritabanında otomatik ölçeklendirme aktarım hızını yapılandırmayı öğrenmek için bkz . Otomatik ölçeklendirme aktarım hızı sağlama.
Veritabanı içindeki tüm kapsayıcılar sağlanan aktarım hızını paylaştığından, Azure Cosmos DB bu veritabanındaki belirli bir kapsayıcı için öngörülebilir aktarım hızı garantisi sağlamaz. Belirli bir kapsayıcının alabileceği aktarım hızının bölümü aşağıdakilere bağlıdır:
- Kapsayıcı sayısı.
- Çeşitli kapsayıcılar için bölüm anahtarları seçimi.
- kapsayıcıların çeşitli mantıksal bölümleri arasında iş yükünün dağılımı.
Aktarım hızını birden çok kapsayıcı arasında paylaşmak istediğinizde ancak aktarım hızını belirli bir kapsayıcıya ayırmak istemediğinizde veritabanında aktarım hızını yapılandırmanızı öneririz.
Aşağıdaki örneklerde, veritabanı düzeyinde aktarım hızı sağlamanın tercih edildiği yer gösterilmektedir:
Veritabanının sağlanan aktarım hızını bir dizi kapsayıcı arasında paylaşmak, çok kiracılı bir uygulama için kullanışlıdır. Her kullanıcı ayrı bir Azure Cosmos DB kapsayıcısı ile temsil edilebilir.
Bir vm kümesinde veya şirket içi fiziksel sunucularda barındırılan MongoDB veya Cassandra gibi bir NoSQL veritabanını Azure Cosmos DB'ye geçirirken veritabanının sağlanan aktarım hızını kapsayıcılar arasında paylaşmak yararlı olur. Azure Cosmos DB veritabanınızda yapılandırılan sağlanan aktarım hızını, MongoDB veya Cassandra kümenizin işlem kapasitesine göre daha uygun maliyetli ve esnek bir mantıksal eşdeğer olarak düşünün.
Sağlanan aktarım hızına sahip bir veritabanında oluşturulan tüm kapsayıcılar bir bölüm anahtarıyla oluşturulmalıdır. Belirli bir zamanda, bir veritabanı içindeki bir kapsayıcıya ayrılan aktarım hızı, bu kapsayıcının tüm mantıksal bölümlerine dağıtılır. Bir veritabanında yapılandırılmış sağlanan aktarım hızını paylaşan kapsayıcılarınız varsa, aktarım hızını belirli bir kapsayıcıya veya mantıksal bölüme seçmeli olarak uygulayamazsınız.
Mantıksal bölümdeki iş yükü belirli bir mantıksal bölüme ayrılan aktarım hızından daha fazlasını tüketiyorsa, işlemleriniz hız sınırına sahiptir. Hız sınırlama gerçekleştiğinde, veritabanının tamamı için aktarım hızını artırabilir veya işlemleri yeniden deneyebilirsiniz. Bölümleme hakkında daha fazla bilgi için bkz . Mantıksal bölümler.
Paylaşılan aktarım hızı veritabanındaki kapsayıcılar, söz konusu veritabanına ayrılmış olan aktarım hızını (RU/sn) paylaşır. Standart (el ile) sağlanan aktarım hızıyla, veritabanında en az 400 RU/sn'ye sahip en fazla 25 kapsayıcınız olabilir. Otomatik ölçeklendirme sağlanan aktarım hızıyla, veritabanında en az 1000 RU/sn (100 - 1000 RU/sn arasında ölçeklendirilir) otomatik ölçeklendirmeye sahip en fazla 25 kapsayıcınız olabilir.
Not
Şubat 2020'de, kapsayıcılar arasında işleme birimi paylaşımına daha fazla olanak tanıyacak şekilde paylaşılan işleme birimi veritabanında en fazla 25 kapsayıcınızın olmasına izin veren bir değişiklik yaptık. İlk 25 kapsayıcıdan sonra, veritabanına yalnızca veritabanının paylaşılan aktarım hızından ayrı ayrılmış aktarım hızıyla sağlandığında daha fazla kapsayıcı ekleyebilirsiniz.
Azure Cosmos DB hesabınız =25 kapsayıcı içeren >paylaşılan bir aktarım hızı veritabanı içeriyorsa, hesap ve aynı Azure aboneliğindeki diğer tüm hesaplar bu değişiklikten muaf tutulur. Geri bildiriminiz veya sorularınız varsa lütfen ürün desteğine başvurun.
İş yükleriniz veritabanındaki tüm koleksiyonları silmeyi ve yeniden oluşturmayı içeriyorsa, koleksiyon oluşturmadan önce boş veritabanını bırakmanız ve yeni bir veritabanı oluşturmanız önerilir. Aşağıdaki görüntüde, fiziksel bir bölümün bir veritabanındaki farklı kapsayıcılara ait bir veya daha fazla mantıksal bölümü nasıl barındırabileceği gösterilmektedir:
Veritabanında ve kapsayıcıda aktarım hızını ayarlama
İki modeli birleştirebilirsiniz. Hem veritabanında hem de kapsayıcıda aktarım hızı sağlamaya izin verilir. Aşağıdaki örnekte, Azure Cosmos DB veritabanında ve kapsayıcıda standart (el ile) sağlanan aktarım hızının nasıl sağlandığı gösterilmektedir:
Standart (el ile) sağlanan "K" RU aktarım hızına sahip Z adlı bir Azure Cosmos DB veritabanı oluşturabilirsiniz.
Ardından, veritabanında A, B, C, D ve E adlı beş kapsayıcı oluşturun. Kapsayıcı B oluştururken, Bu kapsayıcı seçeneği için ayrılmış aktarım hızı sağla seçeneğini etkinleştirdiğinizden ve bu kapsayıcıda sağlanan aktarım hızının "P" RU'larını açıkça yapılandırdığınızdan emin olun. Paylaşılan ve ayrılmış aktarım hızını yalnızca veritabanı ve kapsayıcı oluştururken yapılandırabilirsiniz.
"K" RU/sn aktarım hızı dört kapsayıcı A, C, D ve E arasında paylaşılır. A, C, D veya E için kullanılabilir aktarım hızı miktarı değişir. Her kapsayıcının aktarım hızı için SLA yoktur.
B adlı kapsayıcının her zaman "P" RU/sn aktarım hızını alması garanti edilir. SLA'lar tarafından yedeklenmiştir.
Not
Sağlanan aktarım hızına sahip bir kapsayıcı paylaşılan veritabanı kapsayıcısına dönüştürülemez. Buna karşılık, paylaşılan veritabanı kapsayıcısı ayrılmış aktarım hızına sahip olacak şekilde dönüştürülemez. Verileri istenen aktarım hızı ayarına sahip bir kapsayıcıya taşımanız gerekir. (NoSQL, MongoDB ve Cassandra API'leri için kapsayıcı kopyalama işleri bu işlemde yardımcı olur.)
Veritabanında veya kapsayıcıda aktarım hızını güncelleştirme
Azure Cosmos DB kapsayıcısı veya veritabanı oluşturduktan sonra sağlanan aktarım hızını güncelleştirebilirsiniz. Veritabanında veya kapsayıcıda yapılandırabileceğiniz sağlanan aktarım hızı üst sınırı yoktur.
Sağlanan geçerli aktarım hızı
Azure portalında veya SDK'ları kullanarak bir kapsayıcının veya veritabanının sağlanan aktarım hızını alabilirsiniz:
Bu yöntemlerin yanıtı, kapsayıcı veya veritabanı için sağlanan en düşük aktarım hızını da içerir:
- .NET SDK'sında ThroughputResponse.MinThroughput .
- Java SDK'sında ThroughputResponse.getMinThroughput() .
Gerçek minimum RU/sn, hesap yapılandırmanıza bağlı olarak değişebilir. Daha fazla bilgi için bkz . Otomatik ölçeklendirme hakkında SSS.
Sağlanan aktarım hızını değiştirme
Azure portalı aracılığıyla veya SDK'ları kullanarak bir kapsayıcının veya veritabanının sağlanan aktarım hızını ölçeklendikleyebilirsiniz:
- .NET SDK'sında Container.ReplaceThroughputAsync .
- Java SDK'sında CosmosContainer.replaceThroughput .
Sağlanan aktarım hızını azaltıyorsanız en düşük aktarım hızına kadar bunu yapabilirsiniz.
Sağlanan aktarım hızını artırıyorsanız, çoğu zaman işlem anlık olarak gerçekleşir. Ancak, sistem görevlerinin gerekli kaynakları sağlaması nedeniyle işlemin daha uzun sürebileceği durumlar vardır. Bu durumda, bu işlem devam ederken sağlanan aktarım hızını değiştirme girişimi, başka bir ölçeklendirme işleminin devam ettiğini açıklayan bir hata iletisiyle birlikte bir HTTP 423 yanıtı verir.
Sağlanan aktarım hızını (RU/sn ) ölçeklendirmeye yönelik en iyi yöntemler makalesinde daha fazla bilgi edinin.
Not
Sağlanan aktarım hızında büyük bir artış gerektirecek çok büyük bir alım iş yükü planlıyorsanız, ölçeklendirme işleminin SLA'sı olmadığını ve önceki paragrafta belirtildiği gibi artışın büyük olması uzun sürebilir. İş yükü başlamadan önce planlama yapmak ve ölçeklendirmeyi başlatmak ve ilerleme durumunu denetlemek için aşağıdaki yöntemleri kullanmak isteyebilirsiniz.
Sağlanan geçerli aktarım hızını okuyarak ve kullanarak ölçeklendirme ilerleme durumunu program aracılığıyla de kontrol edebilirsiniz:
- .NET SDK'sı üzerinde ThroughputResponse.IsReplacePending .
- Java SDK'sı üzerinde ThroughputResponse.isReplacePending() .
Kaynakta sağlanan aktarım hızı (RU/sn) ve depolama geçmişini görüntülemek için Azure İzleyici ölçümlerini kullanabilirsiniz.
Modellerin karşılaştırması
Bu tabloda, veritabanında standart (el ile) aktarım hızı sağlama ile kapsayıcıdaki aktarım hızı karşılaştırması gösterilmektedir.
Parametre | Veritabanında standart (el ile) aktarım hızı | Kapsayıcıda standart (el ile) aktarım hızı | Veritabanında aktarım hızını otomatik ölçeklendirme | Kapsayıcıda aktarım hızını otomatik ölçeklendirme |
---|---|---|---|---|
Giriş noktası (en az RU/sn) | 400 RU/sn. Kapsayıcı başına en az RU/sn içermeyen en fazla 25 kapsayıcı olabilir. | 400 | 100 - 1000 RU/sn arasında otomatik ölçeklendirme. Kapsayıcı başına en az RU/sn içermeyen en fazla 25 kapsayıcı olabilir. | 100 - 1000 RU/sn arasında otomatik ölçeklendirme. |
Kapsayıcı başına en az RU/sn | -- | 400 | -- | 100 - 1000 RU/sn arasında otomatik ölçeklendirme |
En fazla RU sayısı | Sınırsız, veritabanında. | Sınırsız, kapsayıcıda. | Sınırsız, veritabanında. | Sınırsız, kapsayıcıda. |
Belirli bir kapsayıcıya atanan veya kullanılabilen RU'lar | Garanti yok. Belirli bir kapsayıcıya atanan RU'lar özelliklere bağlıdır. Özellikler, aktarım hızını, iş yükünün dağıtımını ve kapsayıcı sayısını paylaşan kapsayıcıların bölüm anahtarlarının seçimi olabilir. | Kapsayıcıda yapılandırılan tüm RU'lar yalnızca kapsayıcı için ayrılmıştır. | Garanti yok. Belirli bir kapsayıcıya atanan RU'lar özelliklere bağlıdır. Özellikler, aktarım hızını, iş yükünün dağıtımını ve kapsayıcı sayısını paylaşan kapsayıcıların bölüm anahtarlarının seçimi olabilir. | Kapsayıcıda yapılandırılan tüm RU'lar yalnızca kapsayıcı için ayrılmıştır. |
Kapsayıcı için en yüksek depolama alanı | Sınırsız. | Sınırsız | Sınırsız | Sınırsız |
Kapsayıcının mantıksal bölümü başına en yüksek aktarım hızı | 10K RU/sn | 10K RU/sn | 10K RU/sn | 10K RU/sn |
Kapsayıcının mantıksal bölümü başına en fazla depolama alanı (veri + dizin) | 20 GB | 20 GB | 20 GB | 20 GB |
Sonraki adımlar
- Mantıksal bölümler hakkında daha fazla bilgi edinin.
- Azure Cosmos DB kapsayıcısına standart (el ile) sağlamayı öğrenin.
- Azure Cosmos DB veritabanında standart (el ile) aktarım hızı sağlamayı öğrenin.
- Azure Cosmos DB veritabanı veya kapsayıcısı üzerinde otomatik ölçeklendirme aktarım hızı sağlamayı öğrenin.
- Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkındaki bilgileri kullanabilirsiniz.
- Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdek veya vCPU kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
- Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin