Aracılığıyla paylaş


NoSQL için Azure Cosmos DB'de Python SDK'sı için en iyi yöntemler

Bu kılavuz, NoSQL için Azure Cosmos DB için Python SDK'sının en son sürümü kullanılarak oluşturulan çözümlere yönelik en iyi yöntemleri içerir. Burada yer alan en iyi yöntemler gecikme süresini iyileştirmeye, kullanılabilirliği iyileştirmeye ve çözümleriniz için genel performansı artırmaya yardımcı olur.

Hesap yapılandırması

Hesap yapılandırma parametreleri

Parametre Varsayılan veya kısıtlama Ne zaman kullanılır?
Bölge veri merkezi yerleştirme Uygulama bölgesiyle aynı Gecikme süresini azaltma
Çok bölgeli çoğaltma Varsayılan olarak devre dışı Kullanılabilirlik için 2'den fazla bölgeyi etkinleştirme
Hizmet tarafından yönetilen yük devretme Opsiyonel Üretim iş yükleri için etkinleştirme
from azure.cosmos import CosmosClient
client = CosmosClient(url, credential)
print(client.client_connection._global_endpoint_manager.write_endpoint)
# Expected: write endpoint resolves to configured write region

Python SDK'sını kullanarak birden çok bölge ekleme hakkında daha fazla bilgi için genel dağıtım öğreticisine bakın.

SDK kullanımı

SDK kullanım parametreleri

Parametre Varsayılan veya kısıtlama Ne zaman kullanılır?
SDK sürümü En son mevcut Her zaman en iyi performans için
CosmosClient örneği Uygulama başına bir tane Uygulama ömrü boyunca yeniden kullanma
tercih edilen konumlar Hiç kimse Okuma ve yük devretme işlemlerini optimize etme
client = CosmosClient(
    url,
    credential,
    preferred_locations=["East US", "West US"]
)
print(client.client_connection._preferred_locations)
# Expected: ['East US', 'West US']

Geçici hata, kısa süre içinde kendisini çözen temel bir nedeni olan bir hatadır. Veritabanınıza bağlanan uygulamalar bu geçici hataları bekleyecek şekilde oluşturulmalıdır. Bunları işlemek için, bunları kullanıcılara uygulama hatası olarak eklemek yerine kodunuzda yeniden deneme mantığını uygulayın. SDK'nın, okuma veya sorgu işlemleri gibi yeniden denenebilir isteklerde bu geçici hataları işlemek için yerleşik mantığı vardır. SDK, yazma işlemleri idempotent olmadığı için geçici yazma hatalarında yeniden deneme yapamaz. SDK, kullanıcıların hız sınırlamaları için yeniden deneme mantığını yapılandırmasına olanak tanır. Hangi hataların yeniden denendiği hakkında ayrıntılı bilgi için bkz. dayanıklı uygulama kılavuzu.

Tanılama bilgilerini yakalamak ve gecikme sorunlarını gidermek için SDK günlüğünü kullanın.

Veri tasarımı

Veri tasarımı parametreleri

Parametre Varsayılan veya kısıtlama Ne zaman kullanılır?
Belge boyutu Geçersiz RU maliyetini azaltmak için küçük boyutta tutun
Tanımlayıcı karakterler Özel karakter yok Beklenmeyen davranışlardan kaçının
Dizinleme yolları Dizine alınan tüm yollar Daha hızlı yazma işlemleri için kullanılmayan yolları dışlama
container_properties = {
    "id": "items",
    "indexingPolicy": {
        "excludedPaths": [{"path": "/*"}]
    }
}
print(container_properties["indexingPolicy"])
# Expected: excludedPaths configured

Daha fazla bilgi için bkz. SDK örneğini kullanarak dizin oluşturma.

Konak özellikleri

Ana Bilgisayar Özellikleri Parametreleri

Parametre Varsayılan veya kısıtlama Ne zaman kullanılır?
CPU kullanımı <70% önerilir Yüksekse ölçeği artırma veya genişletme
Hızlandırılmış Ağ Disabled Yüksek trafik için VM'lerde etkinleştirme
Sorgu sayfası boyutu 100 öğe / 4 MB Gidiş dönüşleri azaltmak için artırın
items = container.query_items(
    query="SELECT * FROM c",
    max_item_count=500
)
print("Page size set to 500")
# Expected: fewer round trips

Sonraki Adımlar

Python SDK'sına yönelik performans ipuçları hakkında daha fazla bilgi edinmek için bkz. Azure Cosmos DB Python SDK'sı için performans ipuçları.

Uygulamanızı ölçeklendirme ve yüksek performans için tasarlama hakkında daha fazla bilgi edinmek için bkz . Azure Cosmos DB'de bölümleme ve ölçeklendirme.

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 çekirdekleri veya vCPU'ları 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