Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini mencakup praktik terbaik untuk solusi yang dibangun menggunakan versi terbaru Python SDK untuk Azure Cosmos DB untuk NoSQL. Praktik terbaik yang disertakan di sini membantu meningkatkan latensi, meningkatkan ketersediaan, dan meningkatkan performa keseluruhan untuk solusi Anda.
Konfigurasi akun
Parameter konfigurasi akun
| Pengaturan | Default atau kendala | Kapan harus menggunakan |
|---|---|---|
| Kolokasi wilayah | Sama seperti wilayah aplikasi | Mengurangi latensi |
| Replikasi multi-wilayah | Dinonaktifkan secara default | Mengaktifkan 2+ wilayah untuk ketersediaan |
| Failover dikelola oleh layanan | Fakultatif | Aktifkan untuk beban kerja produksi |
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
Untuk informasi selengkapnya tentang cara menambahkan beberapa wilayah menggunakan Python SDK, lihat tutorial distribusi global.
Penggunaan SDK
Parameter penggunaan SDK
| Pengaturan | Default atau pembatasan | Kapan harus menggunakan |
|---|---|---|
| Versi SDK | Versi terbaru tersedia | Selalu untuk performa optimal |
| Instans CosmosClient | Satu per aplikasi | Gunakan kembali untuk masa pakai aplikasi |
| preferred_locations | None | Mengoptimalkan pembacaan dan failover pada sistem |
client = CosmosClient(
url,
credential,
preferred_locations=["East US", "West US"]
)
print(client.client_connection._preferred_locations)
# Expected: ['East US', 'West US']
Kesalahan sementara adalah kesalahan yang memiliki penyebab mendasar yang segera teratasi dengan sendirinya. Aplikasi yang tersambung ke database Anda harus dibangun untuk memperkirakan kesalahan sementara ini. Untuk menanganinya, terapkan logika coba lagi dalam kode Anda alih-alih menampilkannya kepada pengguna sebagai kesalahan aplikasi. SDK memiliki logika bawaan untuk menangani kegagalan sementara ini pada permintaan yang dapat dicoba lagi seperti operasi baca atau kueri. SDK tidak dapat mengulang penulisan untuk kegagalan yang bersifat sementara karena penulisan tidak idempoten. SDK memungkinkan pengguna untuk mengonfigurasi logika pengulangan untuk pembatasan lalu lintas. Untuk detail tentang kesalahan mana yang akan diulang, lihat panduan aplikasi yang tangguh.
Gunakan pengelogan SDK untuk mengambil informasi diagnostik dan memecahkan masalah latensi.
Desain data
Parameter desain data
| Pengaturan | Default atau kendala | Kapan harus menggunakan |
|---|---|---|
| Ukuran dokumen | N/A | Tetap kecil untuk mengurangi biaya RU |
| Karakter pengidentifikasi | Tidak ada karakter khusus | Hindari perilaku tak terduga |
| Jalur pengindeksan | Semua jalur diindeks | Mengecualikan jalur yang tidak digunakan untuk penulisan yang lebih cepat |
container_properties = {
"id": "items",
"indexingPolicy": {
"excludedPaths": [{"path": "/*"}]
}
}
print(container_properties["indexingPolicy"])
# Expected: excludedPaths configured
Untuk informasi selengkapnya, lihat membuat indeks menggunakan sampel SDK.
Karakteristik host
Karakteristik tuan rumah
| Pengaturan | Nilai bawaan atau batasan | Kapan harus menggunakan |
|---|---|---|
| Pemanfaatan CPU | <70% direkomendasikan | Tingkatkan kapasitas atau perluas jangkauan jika permintaan tinggi |
| Penjaringan Dipercepat | Disabled | Aktifkan pada VM untuk lalu lintas tinggi |
| Ukuran halaman kueri | 100 item / 4 MB | Tingkatkan untuk mengurangi perjalanan pulang pergi |
items = container.query_items(
query="SELECT * FROM c",
max_item_count=500
)
print("Page size set to 500")
# Expected: fewer round trips
Langkah selanjutnya
Untuk mempelajari selengkapnya tentang tips performa untuk Python SDK, lihat Tips performa untuk Azure Cosmos DB Python SDK.
Untuk mempelajari selengkapnya tentang perancangan aplikasi Anda untuk skala dan kinerja tinggi, lihat Pemartisian dan penyekalaan di Azure Cosmos DB.
Mencoba melakukan perencanaan kapasitas untuk migrasi ke Azure Cosmos DB? Anda dapat menggunakan informasi tentang kluster database Anda yang ada saat ini untuk membuat perencanaan kapasitas.
- Jika Anda hanya mengetahui jumlah vCore dan server di kluster database yang ada, baca tentang memperkirakan unit permintaan menggunakan vCore atau vCPU
- Jika Anda mengetahui rasio permintaan umum untuk beban kerja database Anda saat ini, baca memperkirakan unit permintaan menggunakan perencana kapasitas Azure Cosmos DB