Azure Cosmos DB'de İstek birimleri

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

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 değişir. Her veritabanı işlemi, işlemin karmaşıklığı temelinde sistem kaynaklarını kullanır.

Azure Cosmos DB, İstek Birimlerini (veya kısaca RU'ları) kullanarak tüm veritabanı işlemlerinin maliyetini normalleştirir ve aktarım hızına (saniye başına İstek Birimleri, RU/sn) göre maliyeti ölçer.

İ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. Veritabanı işleminin yazma, nokta okuma veya sorgu olmasına bakılmaksızın, işlemler her zaman RU cinsinden ölçülür. Örneğin, Azure Cosmos DB kapsayıcınızla etkileşimde bulunmak için hangi API'yi kullanırsanız kullanın, 1 KB'lık bir öğe için okunan nokta (kimliğine ve bölüm anahtarı değerine göre tek bir öğeyi getirme) tek bir İstek Birimi (veya bir RU) olur. Azure Cosmos DB Kapasite Hesaplayıcısı'nı kullanarak aktarım hızı maliyetlerinizi modelleyebilirsiniz.

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şlemi tarafından kullanılan 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 anlamak için uygulama maliyetinizi etkili bir şekilde çalıştırabilirsiniz.

Kullandığınız Azure Cosmos DB 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 atarsınız. Uygulamanıza sağlanan aktarım hızını ölçeklendirmek için istediğiniz zaman 100 RU'luk artışlar (veya azaltmalar) ile RU sayısını 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 atayabilirsiniz:

  2. Sunucusuz mod: Bu modda, Azure Cosmos DB hesabınızda kaynak oluştururken herhangi bir aktarım hızı atamanız gerekmez. Faturalama döneminizin sonunda veritabanı işlemlerinizin kullandığı İstek Birimi sayısı üzerinden faturalama yapılır. 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 otomatik olarak ve anında ölçeklendirin. Bu ölçeklendirme işlemi iş yükünün kullanılabilirliğini, gecikme süresini, aktarım hızını veya performansını etkilemez. 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 uygundur. 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: Bir öğenin boyutu arttıkça, öğeyi okumak veya yazmak için kullanılan RU sayısı da artar.

  • Öğe dizini oluşturma: Varsayılan olarak, her öğe otomatik olarak dizine eklenir. Kapsayıcıdaki öğelerinizden bazılarını dizine almamayı seçerseniz daha az RU tüketilir.

  • Öğe özellik sayısı: Varsayılan dizin oluşturmanın tüm özelliklerde olduğu varsayıldığında, öğe özellik sayısı arttıkça öğe yazmak için kullanılan RU sayısı artar.

  • Dizine alınan özellikler: Her kapsayıcıdaki bir dizin ilkesi, hangi özelliklerin varsayılan olarak dizine ekleneceğini 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, diğer gevşek tutarlılık düzeylerine kıyasla okuma işlemleri gerçekleştirirken yaklaşık iki kat daha fazla RU tüketir.

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

  • Sorgu desenleri: 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'ları 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

Azure Cosmos DB kapsayıcısında (veya veritabanında) 'R' RU'ları atarsanız Azure Cosmos DB, Azure Cosmos DB 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. Azure Cosmos DB kapsayıcısında (veya veritabanında) sağlanan RU'lar, Azure Cosmos DB hesabınızla ilişkili tüm bölgelerde sağlanır.

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

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