Azure Cosmos DB'de İstek Birimleri

UYGULANANLAR: SQL API Cassandra API Gremlin API Tablo API'si MongoDB için Azure Cosmos DB API'si

Azure Cosmos DB SQL, MongoDB, Cassandra, Gremlin ve Tablo gibi birçok API'yi destekler. Her API'nin kendi veritabanı işlemleri kümesi vardır. Bu işlemler basit nokta okuma ve yazma işlemlerinden karmaşık sorgulara kadar çeşitlilik gösterir. Her veritabanı işlemi, işlemin karmaşıklığı temelinde sistem kaynaklarını kullanır.

Tüm veritabanı işlemlerinin maliyeti Azure Cosmos DB tarafından normalleştirilir ve İstek Birimi (veya kısa RU) ile ifade edilir. İstek birimi, Azure Cosmos DB tarafından desteklenen veritabanı işlemlerini gerçekleştirmek için gereken CPU, IOPS ve bellek gibi sistem kaynaklarını soyutlayan bir performans para birimidir.

1 KB'lık bir öğe için nokta okuma (tek bir öğeyi kimliğine ve bölüm anahtarı değerine göre getirme) gerçekleştirme maliyeti 1 İstek Birimi 'dir (veya 1 RU). Diğer tüm veritabanı işlemlerine RU'lar kullanılarak benzer şekilde maliyet atanır. Azure Cosmos kapsayıcınızla etkileşim kurmak için hangi API'yi kullanırsanız kullanın maliyetler her zaman RU cinsinden ölçülür. Veritabanı işleminin yazma, nokta okuma veya sorgu olmasına bakılmaksızın maliyetler her zaman RU cinsinden ölçülür.

Aşağıdaki resimde üst düzey RU yaklaşımı gösterilir:

Database operations consume Request Units

Kapasiteyi yönetmek ve planlamak için, Azure Cosmos DB belirli bir veri kümesi üzerinde belirli bir veritabanı işleminde RU sayısının belirleyici olmasını sağlar. Herhangi bir veritabanı işleminde tüketilen RU sayısını izlemek için yanıt üst bilgisini inceleyebilirsiniz. RU ücretlerini ve uygulamanızın aktarım hızı gereksinimlerini etkileyen faktörleri anladığınızda, uygulamanızın maliyetini etkili bir şekilde çalıştırabilirsiniz.

Kullandığınız Azure Cosmos hesabının türü, tüketilen RU'ların nasıl ücretlendirileceğini belirler. Hesap oluşturabileceğiniz üç mod vardır:

  1. Sağlanan aktarım hızı modu: Bu modda, uygulamanız için RU sayısını saniyede 100 RU'lık artışlarla saniye başına sağlarsınız. Uygulamanız için sağlanan aktarım hızını ölçeklendirmek için RU sayısını istediğiniz zaman 100 RU'luk artışlar veya düşüşlerle artırabilir veya azaltabilirsiniz. Değişikliklerinizi program aracılığıyla veya Azure portalını kullanarak yapabilirsiniz. Sağladığınız saniye başına RU sayısı için saatlik olarak faturalandırılırsınız. Daha fazla bilgi edinmek için Sağlanan aktarım hızı makalesine bakın.

    Aktarım hızını iki ayrı ayrıntı düzeyinde sağlayabilirsiniz:

  2. Sunucusuz mod: Bu modda, Azure Cosmos hesabınızda kaynak oluştururken herhangi bir aktarım hızı sağlamak zorunda değilsiniz. Faturalama döneminizin sonunda, veritabanı işlemleriniz tarafından kullanılan İstek Birimi sayısı için faturalandırılırsınız. Daha fazla bilgi edinmek için Sunucusuz aktarım hızı makalesine bakın.

  3. Otomatik ölçeklendirme modu: Bu modda veritabanınızın veya kapsayıcınızın aktarım hızını (RU/sn) kullanımına göre, iş yükünün kullanılabilirliğini, gecikme süresini, aktarım hızını veya performansını etkilemeden otomatik olarak ve anında ölçeklendirebilirsiniz. Bu mod, değişken veya öngörülemeyen trafik desenlerine sahip olan ve yüksek performans ve ölçekte SLA gerektiren görev açısından kritik iş yükleri için idealdir. Daha fazla bilgi edinmek için aktarım hızını otomatik ölçeklendirme makalesine bakın.

İstek Birimi ile ilgili dikkate alınacak noktalar

İş yükünüz tarafından tüketilen RU sayısını tahmin ederken aşağıdaki faktörleri göz önünde bulundurun:

  • Öğe boyutu: Öğenin boyutu arttıkça öğeyi okumak veya yazmak için tüketilen RU sayısı da artar.

  • Öğeyi dizine alma: Varsayılan olarak her öğe otomatik olarak dizine alınır. Kapsayıcıdaki öğelerinizden bazılarını dizine almamayı seçerseniz daha az RU tüketilir.

  • Öğe özelliği sayısı: Tüm özelliklerde varsayılan olarak dizine alma seçeneğinin açık olduğunu kabul edersek, öğenin özellik sayısı arttıkça öğeyi yazmak için tüketilen RU'ların sayısı da artar.

  • Dizinli özellikler: Her kapsayıcıda bir dizin kuralı, varsayılan olarak hangi özelliklerin dizinli olduğunu belirler. Yazma işlemlerinin RU tüketimini azaltmak için dizinli özelliklerin sayısını sınırlayın.

  • Veri tutarlılığı: Güçlü ve sınırlanmış eskime tutarlılığı düzeyleri, okuma işlemlerini gerçekleştirirken diğer gevşek tutarlılık düzeylerine kıyasla yaklaşık iki kat daha fazla RU tüketir.

  • Okuma türü: Nokta okuma maliyeti sorgulardan çok daha az RU'dur.

  • Sorgu kalıpları: Sorgunun karmaşıklığı, bir işlem için tüketilen RU sayısını etkiler. Sorgu işlemlerinin maliyetini etkileyen faktörler şunlardır:

    • Sorgu sonuçlarının sayısı
    • Koşulların sayısı
    • Koşulların yapısı
    • Kullanıcı tanımlı işlevlerin sayısı
    • Kaynak verilerin boyutu
    • Sonuç kümesinin boyutu
    • Projeksiyonlar

    Aynı verilerdeki aynı sorgu, yinelenen yürütmelerde her zaman aynı sayıda RU'ya mal olur.

  • Betik kullanımı: Sorgularda olduğu gibi saklı yordamlar ve tetikleyiciler de gerçekleştirilen işlemlerin karmaşıklığı temelinde RU kullanır. Uygulamanızı geliştirirken, her işlemin ne kadar RU kapasitesi tükettiğini daha iyi anlamak için istek ücreti üst bilgisini inceleyin.

İstek birimleri ve birden çok bölge

Cosmos kapsayıcısında (veya veritabanında) 'R' RU'ları sağlarsanız, Cosmos DB Cosmos hesabınızla ilişkili her bölgede 'R' RU'larının kullanılabilir olmasını sağlar. RU'ları belirli bir bölgeye seçmeli olarak atayamazsınız. Cosmos kapsayıcısında (veya veritabanında) sağlanan RU'lar Cosmos hesabınızla ilişkili tüm bölgelerde sağlanır.

Cosmos kapsayıcısının 'R' RU'ları ile yapılandırıldığını ve Cosmos hesabıyla ilişkilendirilmiş 'N' bölgeleri olduğunu varsayarsak, kapsayıcıda genel olarak kullanılabilen toplam RU sayısı = R x N.

Tutarlılık modeli seçiminiz aktarım hızını da etkiler. Daha güçlü tutarlılık düzeylerine (sınırlanmış eskime veya güçlü tutarlılık) kıyasla daha rahat tutarlılık düzeyleri (oturum, tutarlı ön ek ve nihai tutarlılık) için yaklaşık 2 kat okuma aktarım hızı elde edebilirsiniz.

Sonraki adımlar