Cara menggunakan MOGODB pada Python

Lompati ke konten utama

Browser ini sudah tidak didukung.

Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.

  • Artikel
  • 09/27/2022
  • 7 menit untuk membaca

Dalam artikel ini

BERLAKU UNTUK:

Cara menggunakan MOGODB pada Python
Azure Cosmos DB API for MongoDB

Penting

Bacalah seluruh panduan ini sebelum melakukan langkah-langkah migrasi Anda.

Panduan migrasi MongoDB ini merupakan bagian dari rangkaian migrasi MongoDB. Langkah-langkah migrasi MongoDB yang kritis adalah pra-migrasi, migrasi, dan pasca-migrasi, seperti yang ditunjukkan di bawah ini.

Cara menggunakan MOGODB pada Python

Anda dapat menggunakan alat asli MongoDB untuk melakukan migrasi database offline (satu kali) dari instans lokal atau cloud MongoDB ke API Azure Cosmos DB untuk MongoDB.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Pilih alat asli MongoDB yang sesuai untuk kasus penggunaan Anda
  • Jalankan migrasi.
  • Pantau migrasi
  • Verifikasi bahwa migrasi berhasil.

Dalam tutorial ini, Anda memigrasi kumpulan data di MongoDB yang dihosting di Komputer Virtual Azure ke API Azure Cosmos DB untuk MongoDB dengan menggunakan alat asli MongoDB. Alat asli MongoDB adalah sekumpulan biner yang memfasilitasi manipulasi data pada instance MongoDB yang sudah ada. Karena Azure Cosmos DB mengekspos Mongo API, alat asli MongoDB dapat memasukkan data ke Azure Cosmos DB. Fokus dokumen ini adalah memigrasi data dari instance MongoDB menggunakan mongoexport / mongoimport atau mongodump / mongorestore. Karena alat asli terhubung ke MongoDB menggunakan string koneksi, Anda dapat menjalankan alat tersebut di mana saja, namun kami merekomendasikan untuk menjalankan alat ini dalam jaringan yang sama dengan instans MongoDB untuk menghindari masalah firewall.

Alat asli MongoDB hanya dapat memindahkan data secepat yang diizinkan oleh perangkat keras host; alat asli dapat menjadi solusi paling sederhana untuk kumpulan data kecil di mana total waktu migrasi tidak menjadi perhatian. Konektor MongoDB Spark, Azure Data Migration Service (DMS), atau Azure Data Factory (ADF) bisa menjadi alternatif yang lebih baik jika Anda memerlukan pipeline migrasi yang dapat diskalakan.

Jika Anda belum menyiapkan sumber MongoDB, lihat artikel Memasang dan mengonfigurasi MongoDB pada VM Windows di Azure.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda perlu:

  • Selesaikan langkah-langkah pra-migrasi seperti memperkirakan hasil, memilih kunci partisi, dan kebijakan pengindeksan.
  • Buat Azure Cosmos DB API untuk akun MongoDB.
  • Masuk ke instance MongoDB Anda
    • Unduh dan pasang alat asli MongoDB dari tautan ini.
      • Pastikan bahwa versi alat asli MongoDB Anda cocok dengan instance MongoDB Anda yang sudah ada.
      • Jika instans MongoDB Anda memiliki versi yang berbeda dari Azure Cosmos DB Mongo API, pasang kedua versi alat asli MongoDB dan gunakan versi alat yang sesuai masing-masing untuk MongoDB dan Azure Cosmos DB Mongo API.
    • Tambahkan pengguna dengan izin readWrite, kecuali jika sudah ada. Nanti dalam tutorial ini, berikan nama pengguna / sandi ini ke alat mongoexport dan mongodump.

Konfigurasikan Percobaan Ulang Sisi Server Azure Cosmos DB

Pelanggan yang bermigrasi dari MongoDB ke Azure Cosmos DB mendapatkan keuntungan dari kemampuan tata kelola sumber daya, yang menjamin kemampuan untuk sepenuhnya memanfaatkan RU/s throughput yang Anda sediakan. Azure Cosmos DB dapat membatasi permintaan yang diberikan selama migrasi jika permintaan tersebut melebihi RU/s yang disediakan penampung; maka permintaan itu perlu dicoba lagi. Waktu perjalanan pulang pergi yang terlibat dalam lompatan jaringan antara alat migrasi dan Azure Cosmos DB memengaruhi waktu respons keseluruhan dari permintaan itu; Selain itu, alat asli MongoDB mungkin tidak menangani percobaan ulang. Fitur Server Side Retry Azure Cosmos DB memungkinkan layanan untuk mencegat kode kesalahan throttle dan mencoba lagi dengan waktu pulang-pergi yang jauh lebih rendah, secara dramatis meningkatkan waktu respons permintaan. Dari perspektif alat asli MongoDB, kebutuhan untuk menangani percobaan ulang diminimalkan, yang akan berdampak positif pada pengalaman Anda selama migrasi.

Anda dapat menemukan kemampuan Server Side Retry di bilah Fitur portal Azure Cosmos DB

Cara menggunakan MOGODB pada Python

Dan jika Dinonaktifkan, kami sarankan Anda mengaktifkannya seperti yang ditunjukkan di bawah ini

Cara menggunakan MOGODB pada Python

Cara menggunakan MOGODB pada Python

  • mongoexport/mongoimport adalah pasangan alat migrasi terbaik untuk memigrasi subset database MongoDB Anda.
    • mongoexport mengekspor data Anda yang ada ke file JSON atau CSV yang dapat dibaca manusia. mongoexport mengambil argumen yang menentukan subset dari data Anda yang ada untuk diekspor.
    • mongoimport membuka file JSON atau CSV dan memasukkan konten ke dalam instance database target (Azure Cosmos DB dalam kasus ini.).
    • Perhatikan bahwa JSON dan CSV bukanlah format yang kompak; Anda mungkin dikenai biaya jaringan berlebih saat mongoimport mengirim data ke Azure Cosmos DB.
  • mongodump/mongorestore adalah sepasang alat migrasi terbaik untuk memigrasikan seluruh database MongoDB Anda. Format BSON yang ringkas akan membuat penggunaan sumber daya jaringan yang lebih efisien saat data dimasukkan ke Dalam Azure Cosmos DB.
    • mongodump mengekspor data Anda yang sudah ada sebagai file BSON.
    • mongorestore mengimpor file BSON Anda ke Azure Cosmos DB.
  • Selain itu - jika Anda hanya memiliki file JSON kecil yang ingin diimpor ke Azure Cosmos DB Mongo API, alat mongoimport adalah solusi cepat untuk menyerap data.

Kumpulkan kredensial Azure Cosmos DB Mongo API

Azure Cosmos DB Mongo API menyediakan kredensial akses yang kompatibel yang dapat digunakan oleh alat asli MongoDB. Anda harus memiliki informasi masuk akses ini untuk memigrasi data ke Azure Cosmos DB Mongo API. Untuk menemukan informasi masuk ini:

  1. Membuka portal Azure

  2. Buka akun Azure Cosmos DB Mongo API Anda

  3. Di navigasi kiri, pilih bilah String Koneksi, dan Anda akan melihat tampilan seperti di bawah ini:

    Cara menggunakan MOGODB pada Python

    • HOST - titik akhir Azure Cosmos DB berfungsi sebagai nama host MongoDB
    • PORT - ketika alat asli MongoDB terhubung ke Azure Cosmos DB, Anda harus menentukan port ini secara eksplisit
    • USERNAME - awalan nama domain titik akhir Azure Cosmos DB berfungsi sebagai nama pengguna MongoDB
    • PASSWORD - tombol master Azure Cosmos DB berfungsi sebagai sandi MongoDB
    • Selain itu, perhatikan bidang SSL yaitu true - alat asli MongoDB harus mengaktifkan SSL saat menulis data ke Azure Cosmos DB

Lakukan migrasi

  1. Pilih database dan kumpulan mana yang ingin Anda migrasikan. Dalam contoh ini, kami memigrasikan kumpulan kueri di database edx dari MongoDB ke Azure Cosmos DB.

Sisa dari bagian ini akan memandu Anda melalui penggunaan pasangan alat yang Anda pilih di bagian sebelumnya.

mongoexport/mongoimport

  1. Untuk mengekspor data dari instance MongoDB sumber, buka terminal di komputer instance MongoDB. Jika ini adalah mesin Linux, ketik

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
    

    Di windows, yang dapat dieksekusi adalah mongoexport.exe. HOST, PORT, USERNAME, dan PASSWORD harus diisi berdasarkan properti dari instance database MongoDB Anda yang ada.

    Anda juga dapat memilih untuk mengekspor hanya sebagian dari set data MongoDB. Salah satu cara untuk melakukannya adalah dengan menambahkan argumen filter tambahan:

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
    

    Hanya dokumen yang cocok dengan filter {"field1":"value1"} yang akan diekspor.

    Setelah Anda menjalankan panggilan, Anda akan melihat bahwa edx.json berkas dihasilkan:

    Cara menggunakan MOGODB pada Python

  2. Anda dapat menggunakan terminal yang sama untuk mengimpor edx.json ke Azure Cosmos DB. Jika Anda menjalankan mongoimport pada mesin Linux, ketik

    mongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
    

    Di Windows, yang dapat dieksekusi adalah mongoimport.exe. HOST, PORT, USERNAME, dan PASSWORD harus diisi berdasarkan kredensial Azure Cosmos DB yang Anda kumpulkan sebelumnya.

  3. Monitor keluaran terminal dari mongoimport. Anda harus melihat bahwa itu mencetak baris teks ke terminal yang berisi pembaruan tentang status migrasi:

    Cara menggunakan MOGODB pada Python

  4. Terakhir, periksa Azure Cosmos DB untuk memvalidasi bahwa migrasi berhasil. Buka portal Azure Cosmos DB dan arahkan ke Data Explorer. Anda akan melihat (1) bahwa database edx dengan kumpulan importQuery telah dibuat, dan (2) jika Anda mengekspor hanya subset data, importQuery harus berisi hanya dokumen yang cocok dengan subset data yang diinginkan. Pada contoh di bawah, hanya satu dokumen yang cocok dengan filter {"field1":"value1"}:

    Cara menggunakan MOGODB pada Python

mongodump/mongorestore

  1. Untuk membuat file cadangan data BSON dari instance MongoDB Anda, buka terminal di komputer instance MongoDB. Jika ini adalah mesin Linux, ketik

    mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx-dump
    

    HOST, PORT, USERNAME, dan PASSWORD harus diisi berdasarkan properti dari instance database MongoDB Anda yang ada. Anda akan melihat bahwa edx-dump direktori dibuat dan bahwa struktur direktori edx-dump mereproduksi hierarki sumber daya (database dan struktur kumpulan) dari instance MongoDB sumber Anda. Setiap kumpulan diwakili oleh file BSON:

    Cara menggunakan MOGODB pada Python

  2. Anda dapat menggunakan terminal yang sama untuk memulihkan konten edx-dump ke Azure Cosmos DB. Jika Anda menjalankan mongorestore pada mesin Linux, ketik

    mongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
    

    Di Windows, yang dapat dieksekusi adalah mongorestore.exe. HOST, PORT, USERNAME, dan PASSWORD harus diisi berdasarkan kredensial Azure Cosmos DB yang Anda kumpulkan sebelumnya.

  3. Monitor keluaran terminal dari mongorestore. Anda harus melihat bahwa itu mencetak baris ke terminal yang diperbarui pada status migrasi:

    Cara menggunakan MOGODB pada Python

  4. Terakhir, periksa Azure Cosmos DB untuk memvalidasi bahwa migrasi berhasil. Buka portal Azure Cosmos DB dan arahkan ke Data Explorer. Anda harus melihat (1) bahwa database edx dengan kumpulan importQuery telah dibuat, dan (2) importQuery harus berisi keseluruhan set data dari kumpulan sumber:

    Cara menggunakan MOGODB pada Python

Pengoptimalan pasca migrasi

Setelah Anda memigrasikan data yang disimpan dalam database MongoDB ke API Azure Cosmos DB untuk MongoDB, Anda dapat menyambungkan ke Azure Cosmos DB dan mengelola data. Anda juga dapat melakukan langkah-langkah pengoptimalan pasca-migrasi seperti mengoptimalkan kebijakan pengindeksan, memperbarui tingkat konsistensi default, atau mengkonfigurasi distribusi global untuk akun Azure Cosmos DB Anda. Untuk informasi lebih lanjut, lihat artikel Pengoptimalan pasca-migrasi.

Sumber Daya Tambahan:

  • Informasi layanan Cosmos DB
  • Dokumentasi alat database MongoDB
  • Apakah Anda sedang mencoba membuat perencanaan kapasitas untuk migrasi ke Azure Cosmos DB?
    • 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

Langkah berikutnya

  • Tinjau panduan migrasi untuk skenario tambahan di Microsoft Panduan Migrasi Database.