Bagikan melalui


Praktik terbaik untuk Python SDK di Azure Cosmos DB for NoSQL

BERLAKU UNTUK: 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

  • Pastikan untuk menjalankan aplikasi Anda di wilayah Azure yang sama dengan akun Azure Cosmos DB Anda, jika memungkinkan untuk mengurangi latensi. Aktifkan replikasi di 2+ wilayah di akun Anda untuk ketersediaan terbaik. Untuk beban kerja produksi, aktifkan failover yang dikelola layanan. Dengan tidak adanya konfigurasi ini, akun mengalami hilangnya ketersediaan tulis untuk semua durasi pemadaman wilayah tulis, karena failover manual tidak dapat berhasil karena kurangnya konektivitas wilayah. Untuk informasi selengkapnya tentang cara menambahkan beberapa wilayah menggunakan Python SDK, lihat tutorial distribusi global.

Penggunaan SDK

  • Selalu gunakan versi terbaru Azure Cosmos DB SDK yang tersedia untuk performa optimal.
  • Gunakan satu instans CosmosClient untuk masa pakai aplikasi Anda untuk performa yang lebih baik.
  • Atur preferred_locations konfigurasi pada klien cosmos. Selama failover, operasi tulis dikirim ke wilayah tulis saat ini dan semua bacaan dikirim ke wilayah pertama dalam daftar lokasi pilihan Anda. Untuk informasi selengkapnya tentang mekanisme failover regional, lihat pemecahan masalah ketersediaan.
  • 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 mencoba kembali menulis untuk kegagalan sementara karena penulisan tidak idempotensi. SDK memungkinkan pengguna untuk mengonfigurasi logika coba lagi untuk pembatasan. Untuk detail tentang kesalahan mana yang akan coba lagi dikunjungi di sini.
  • Gunakan pengelogan SDK untuk mengambil informasi diagnostik dan memecahkan masalah latensi.

Desain data

  • Biaya permintaan dari operasi tertentu berkorelasi langsung dengan ukuran dokumen. Sebaiknya kurangi ukuran dokumen Anda karena operasi pada dokumen besar lebih mahal daripada operasi pada dokumen yang lebih kecil.
  • Beberapa karakter dibatasi dan tidak dapat digunakan dalam beberapa pengidentifikasi: '/', '\', '?', '#'. Rekomendasi umumnya adalah untuk tidak menggunakan karakter khusus dalam pengidentifikasi seperti nama database, nama koleksi, ID item, atau kunci partisi untuk menghindari perilaku yang tidak terduga.
  • Kebijakan pengindeksan Azure Cosmos DB juga memungkinkan Anda menentukan jalur dokumen mana yang akan disertakan atau dikecualikan dari pengindeksan dengan menggunakan jalur pengindeksan. Pastikan Anda mengecualikan jalur yang tidak digunakan dari pengindeksan untuk penulisan yang lebih cepat. Untuk informasi selengkapnya, lihat membuat indeks menggunakan sampel SDK.

Karakteristik host

  • Anda mungkin mengalami masalah konektivitas/ketersediaan karena kurangnya sumber daya pada mesin klien Anda. Pantau pemanfaatan CPU Anda pada simpul yang menjalankan klien Azure Cosmos DB dan perluas skala jika penggunaan sangat tinggi.
  • Jika menggunakan mesin virtual untuk menjalankan aplikasi Anda, aktifkan Jaringan Percepatan di mesin virtual Anda untuk membantu penyempitan karena lalu lintas tinggi dan mengurangi latensi atau jitter CPU. Anda mungkin juga ingin mempertimbangkan untuk menggunakan Mesin Virtual kelas atas di mana penggunaan CPU maksimal di bawah 70%.
  • Secara default, hasil kueri dikembalikan dalam potongan 100 item atau 4 MB, batas mana pun yang terpukul terlebih dahulu. Jika kueri mengembalikan lebih dari 100 item, tingkatkan ukuran halaman untuk mengurangi jumlah perjalanan pulang pergi yang diperlukan. Konsumsi memori meningkat saat ukuran halaman meningkat.

Langkah berikutnya

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.