Bagikan melalui


Praktik terbaik untuk Python SDK di Azure Cosmos DB for NoSQL

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.