NoSQL için Azure Cosmos DB'de Python SDK'sı için en iyi yöntemler
UYGULANANLAR: NoSQL
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ı
- Gecikme süresini azaltmak için mümkün olduğunda uygulamanızı Azure Cosmos DB hesabınızla aynı Azure bölgesinde çalıştırdığınızdan emin olun. En iyi kullanılabilirlik için hesaplarınızda 2'den fazla bölgede çoğaltmayı etkinleştirin. Üretim iş yükleri için hizmet tarafından yönetilen yük devretmeyi etkinleştirin. Bu yapılandırmanın olmaması halinde, bölge bağlantısının olmaması nedeniyle el ile yük devretme başarısız olduğundan, hesap yazma bölgesi kesintisinin tüm süresi boyunca yazma kullanılabilirliği kaybıyla karşılaşır. 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ı
- En iyi performans için her zaman Azure Cosmos DB SDK'sının en son sürümünü kullanın.
- Daha iyi performans için uygulamanızın ömrü boyunca tek bir örneği
CosmosClient
kullanın. preferred_locations
Cosmos istemcisinde yapılandırmayı ayarlayın. Yük devretme sırasında yazma işlemleri geçerli yazma bölgesine, tüm okumalar ise tercih ettiğiniz konumlar listesindeki ilk bölgeye gönderilir. Bölgesel yük devretme mekaniği hakkında daha fazla bilgi için bkz . Kullanılabilirlik sorunlarını giderme.- 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. Yazma işlemleri bir kez etkili olmadığından SDK geçici hatalar için yazma işlemleri üzerinde yeniden deneme yapamaz. SDK, kullanıcıların azaltmalar için yeniden deneme mantığını yapılandırmasına izin verir. Hangi hataların yeniden denendiği hakkında ayrıntılı bilgi için burayı ziyaret edin.
- Tanılama bilgilerini yakalamak ve gecikme sorunlarını gidermek için SDK günlüğünü kullanın.
Veri tasarımı
- Belirtilen işlemin istek ücreti doğrudan belgenin boyutuyla ilişkilidir. Büyük belgelerdeki işlemler daha küçük belgelerdeki işlemlerden daha pahalı olduğundan, belgelerinizin boyutunu azaltmanızı öneririz.
- Bazı karakterler kısıtlanmıştır ve bazı tanımlayıcılarda kullanılamaz: '/', '\', '?', '#'. Genel öneri, beklenmeyen davranışlardan kaçınmak için tanımlayıcılarda veritabanı adı, koleksiyon adı, öğe kimliği veya bölüm anahtarı gibi özel karakterler kullanılmamasıdır.
- Azure Cosmos DB dizin oluşturma ilkesi, dizin oluşturma yollarını kullanarak hangi belge yollarının dizine ekleneceğini veya dizin oluşturmanın dışında tutulacağını belirtmenize de olanak tanır. Daha hızlı yazma işlemleri için kullanılmayan yolları dizin oluşturmanın dışında tutmadığınızdan emin olun. Daha fazla bilgi için bkz . SDK örneğini kullanarak dizin oluşturma.
Konak özellikleri
- İstemci makinenizde kaynak olmaması nedeniyle bağlantı/kullanılabilirlik sorunlarıyla karşılaşabilirsiniz. Azure Cosmos DB istemcisini çalıştıran düğümlerde CPU kullanımınızı izleyin ve kullanım yüksekse ölçeği artırma/genişletme.
- Uygulamanızı çalıştırmak için bir sanal makine kullanıyorsanız, yüksek trafik nedeniyle oluşan performans sorunlarına yardımcı olmak ve gecikme süresini veya CPU değişimlerini azaltmak için VM'nizde Hızlandırılmış Ağ'ı etkinleştirin. Maksimum CPU kullanımının %70'in altında olduğu daha yüksek bir uç Sanal Makine kullanmayı da düşünebilirsiniz.
- Varsayılan olarak, sorgu sonuçları 100 öğe veya 4 MB'lık öbekler halinde döndürülür(hangisi önce sınıra isabet edilirse). Sorgu 100'den fazla öğe döndürüyorsa, sayfa boyutunu artırarak gereken gidiş dönüş sayısını azaltın. Sayfa boyutu arttıkça bellek tüketimi artar.
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