Latihan: Memigrasikan beban kerja MongoDB ke Cosmos DB

Selesai

Anda bekerja untuk perusahaan utilitas yang memiliki sensor IoT yang mengumpulkan data suhu. Suhu dicatat dalam database MongoDB, bersama dengan tanda waktu. Setiap perangkat memiliki ID unik. Anda akan menjalankan aplikasi MongoDB yang mensimulasikan perangkat ini, dan menyimpan data dalam database. Anda juga akan menggunakan aplikasi kedua yang memungkinkan pengguna untuk mengkueri informasi statistik tentang setiap perangkat. Setelah memigrasikan database dari MongoDB ke Cosmos DB, Anda akan mengonfigurasi kedua aplikasi untuk terhubung ke Cosmos DB, dan memverifikasi bahwa mereka masih berfungsi dengan benar.

Dalam latihan ini, Anda akan mengambil database MongoDB yang ada dan memigrasikannya ke Cosmos DB. Anda akan menggunakan Azure Database Migration Service. Anda juga akan melihat cara mengonfigurasi ulang aplikasi yang ada yang menggunakan database MongoDB untuk menyambungkan ke database Cosmos DB sebagai gantinya.

Penting

Layanan Migrasi Data Azure tidak didukung di lingkungan kotak pasir Azure gratis. Anda dapat melakukan langkah-langkah ini dalam langganan pribadi, atau ikuti saja untuk memahami cara memigrasikan database.

Membuat database MongoDB di Azure

Pertama, Anda akan membuat database MongoDB untuk menyimpan data yang diambil dari perangkat suhu.

Membuat Grup Sumber Daya dan Virtual Network

  1. Menggunakan browser web, buka tab baru lalu buka portal Microsoft Azure.

  2. Di portal Microsoft Azure, pilih Grup sumber daya, lalu pilih +Tambahkan.

  3. Pada halaman Buat grup sumber daya, masukkan detail berikut:

    Harta benda Nilai
    Langganan < > langganan Anda
    Grup Sumber Daya mongodbrg
    Wilayah Pilih lokasi terdekat Anda
  4. Pilih Tinjau + Buat lalu pilih Buat. Tunggu hingga grup sumber daya dibuat.

  5. Di menu portal Microsoft Azure, pilih + Buat sumber daya.

  6. Pada halaman New, di kotak Cari Marketplace, ketik Virtual Network, dan tekan Enter.

  7. Pada halaman Virtual Network, pilih Buat.

  8. Pada halaman Buat jaringan virtual , masukkan detail berikut, lalu pilih Berikutnya: Alamat IP:

    Harta benda Nilai
    Grup Sumber Daya mongodbrg
    Nama databasevnet
    Wilayah Pilih lokasi yang sama dengan yang Anda tentukan untuk grup sumber daya
  9. Pada halaman Alamat IP, atur ruang alamat IPv4 ke 10.0.0.0/24.

  10. Pilih subnet default, lalu pilih Hapus subnet.

  11. Pilih + Tambahkan subnet. Di panel Tambahkan subnet, atur nama Subnet ke default, atur rentang alamat Subnet ke 10.0.0.0/28, lalu pilih Tambahkan.

  12. Pada halaman Alamat IP, pilih Berikutnya: Keamanan.

  13. Pada halaman Keamanan , verifikasi bahwa Perlindungan Jaringan Azure DDoS diatur ke Nonaktifkan, dan Firewall diatur ke Nonaktifkan. Pilih Tinjau dan buat.

  14. Pada halaman Buat jaringan virtual , pilih Buat. Tunggu hingga jaringan virtual dibuat sebelum melanjutkan.

Membuat server database MongoDB

  1. Di menu portal Microsoft Azure, pilih + Buat sumber daya.

  2. Dalam kotak Cari Marketplace, ketik Ubuntu, lalu tekan Enter.

  3. Pada halaman Marketplace , pilih Ubuntu Server 18.04 LTS.

  4. Pada halaman Ubuntu Server 18.04 LTS , pilih Buat.

  5. Pada halaman Buat komputer virtual , masukkan detail berikut ini:

    Harta benda Nilai
    Grup Sumber Daya mongodbrg
    Nama komputer virtual mongodbserver
    Wilayah Pilih lokasi yang sama dengan yang Anda tentukan untuk grup sumber daya
    Opsi ketersediaan Tidak ada redundansi infrastruktur yang diperlukan
    Gambar Ubuntu Server 18.04 LTS - Gen1
    Instans Azure Spot Tidak Dicentang
    Ukuran Standar A1_v2
    Jenis autentikasi Kata sandi
    Nama pengguna azureuser
    Kata sandi Pa55w.rdPa55w.rd
    Mengonfirmasikan kata sandi Pa55w.rdPa55w.rd
    Port masuk publik Izinkan port yang dipilih
    Pilih port masuk SSH (22)
  6. Pilih Berikutnya: Disk >.

  7. Pada halaman Disk , biarkan pengaturan di defaultnya, lalu pilih Berikutnya: Jaringan >.

  8. Pada halaman Jaringan , masukkan detail berikut ini:

    Harta benda Nilai
    Jaringan virtual databasevnet
    Subnet default (10.0.0.0/28)
    IP Publik (baru) mongodbserver-ip
    kelompok keamanan jaringan NIC Tingkat Lanjut
    Mengonfigurasi grup keamanan jaringan (baru) mongodbserver-nsg
    Jaringan yang dipercepat Tidak Dicentang
    Penyeimbangan beban Tidak Dicentang
  9. Pilih Tinjau + Buat >.

  10. Pada halaman validasi, pilih Buat.

  11. Tunggu hingga mesin virtual sepenuhnya diterapkan sebelum melanjutkan

  12. Di menu portal Microsoft Azure, pilih Semua sumber daya.

  13. Pada halaman Semua sumber daya , pilih mongodbserver-nsg.

  14. Pada halaman mongodbserver-nsg , di bawah Pengaturan, pilih Aturan keamanan masuk.

  15. Pada halaman mongodbserver-nsg - Aturan keamanan masuk , pilih + Tambahkan.

  16. Di panel Tambahkan aturan keamanan masuk, masukkan detail berikut ini:

    Harta benda Nilai
    Sumber Apa saja
    Rentang port sumber *
    Tujuan Apa saja
    Rentang port tujuan 8080
    Protokol Apa saja
    Tindakan Izinkan
    Prioritas 1030
    Nama Port Mongodb
    Deskripsi Port yang digunakan klien untuk menyambungkan ke MongoDB
  17. Pilih Tambahkan.

Nota

Anda akan mengonfigurasi MongoDB untuk menggunakan port 8080 dalam latihan ini. Anda hanya perlu melakukan ini karena kendala keamanan di lingkungan ini. Anda biasanya akan menggunakan port MongoDB default 27017.

Menginstal MongoDB

  1. Di menu portal Microsoft Azure, pilih Semua sumber daya.

  2. Pada halaman Semua sumber daya , pilih mongodbserver-ip.

  3. Pada halaman mongodbserver-ip , catat alamat IP.

  4. Di toolbar di bagian atas portal Microsoft Azure, pilih Cloud Shell.

  5. Jika kotak pesan Anda tidak memiliki penyimpanan yang dipasang muncul, pilih Buat penyimpanan.

  6. Saat Cloud Shell dimulai, di daftar drop-down di atas jendela Cloud Shell, pilih Bash.

  7. Di Cloud Shell, masukkan perintah berikut untuk menyambungkan ke komputer virtual mongodbserver. Ganti <alamat IP> dengan nilai dari alamat IP mongodbserver-ip:

    ssh azureuser@<ip address>
    
  8. Pada perintah, ketik ya untuk terus menyambungkan.

  9. Masukkan kata sandi Pa55w.rdPa55w.rd.

  10. Untuk memuat ulang database paket, masukkan perintah ini:

    sudo apt-get update
    
  11. Untuk menginstal MongoDB, masukkan perintah ini:

    sudo apt-get install -y mongodb
    

    Penginstalan harus dilanjutkan dengan pesan tentang menginstal, menyiapkan, dan membuka paket. Dibutuhkan beberapa menit agar penginstalan selesai.

Mengonfigurasi database MongoDB

Secara default, instans Mongo DB dikonfigurasi untuk dijalankan tanpa autentikasi. Dalam tugas ini, Anda akan mengonfigurasi MongoDB untuk mengikat antarmuka jaringan lokal sehingga dapat menerima koneksi dari komputer lain. Anda juga akan mengaktifkan autentikasi dan membuat akun pengguna yang diperlukan untuk melakukan migrasi. Terakhir, Anda akan menambahkan akun yang dapat digunakan aplikasi pengujian untuk mengkueri database.

  1. Untuk membuka file konfigurasi MongoDB, jalankan perintah ini:

    sudo nano /etc/mongodb.conf
    
  2. Dalam file, temukan pengaturan bind_ip , dan atur ke 0.0.0.0.

  3. Temukan pengaturan port , dan atur ke 8080.

  4. Untuk menyimpan file konfigurasi, tekan Esc lalu tekan CTRL + X. Tekan y lalu Enter untuk menyimpan buffer yang dimodifikasi.

  5. Untuk memulai ulang layanan MongoDB dan menerapkan perubahan Anda, masukkan perintah ini:

    sudo service mongodb restart
    
  6. Untuk menyambungkan ke layanan MongoDB, masukkan perintah ini:

    mongo --host 127.0.0.1:8080
    
  7. Di prompt >, untuk beralih ke database admin, jalankan perintah berikut:

    use admin;
    
  8. Untuk membuat pengguna baru bernama administrator, jalankan perintah berikut. Anda dapat memasukkan perintah pada satu baris atau di beberapa baris untuk keterbacaan yang lebih baik. Perintah dijalankan ketika program mongo mencapai titik koma:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. Untuk keluar dari mongo program, masukkan perintah ini;

    exit;
    
  10. Untuk menyambungkan ke MongoDB dengan akun administrator baru, jalankan perintah ini:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. Untuk beralih ke database DeviceData , jalankan perintah ini:

    use DeviceData;    
    
  12. Untuk membuat pengguna bernama deviceadmin, yang akan digunakan aplikasi untuk menyambungkan ke database, jalankan perintah ini:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. Untuk keluar dari mongo program, masukkan perintah ini;

    exit;
    
  14. Jalankan perintah berikut mulai ulang layanan mongodb. Verifikasi bahwa layanan dimulai ulang tanpa pesan kesalahan apa pun:

    sudo service mongodb restart
    
  15. Jalankan perintah berikut untuk memverifikasi bahwa Anda sekarang dapat masuk ke mongodb sebagai pengguna deviceadmin:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. Pada prompt >, jalankan perintah berikut untuk keluar dari shell mongo:

    exit;
    
  17. Pada prompt bash, jalankan perintah berikut untuk memutuskan sambungan dari server MongoDB dan kembali ke Cloud Shell:

    exit
    

Mengisi dan mengkueri database MongoDB

Anda sekarang telah membuat server dan database MongoDB. Langkah selanjutnya adalah menunjukkan aplikasi sampel yang dapat mengisi dan mengkueri data dalam database ini.

Membuat dan menjalankan Aplikasi untuk mengisi database MongoDB

  1. Di Azure Cloud Shell, jalankan perintah berikut untuk mengunduh kode sampel:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. Pindah ke folder migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. Gunakan editor Kode untuk memeriksa file TemperatureDevice.cs :

    code TemperatureDevice.cs
    

    Kode dalam file ini berisi kelas bernama TemperatureDevice yang mensimulasikan perangkat suhu yang menangkap data dan menyimpannya dalam database MongoDB. Ini menggunakan pustaka MongoDB untuk .NET Framework. Konstruktor TemperatureDevice tersambung ke database menggunakan pengaturan yang disimpan dalam file konfigurasi aplikasi. Metode RecordTemperatures menghasilkan pembacaan dan menulisnya ke database.

  4. Tutup editor kode, lalu buka file ThermometerReading.cs :

    code ThermometerReading.cs
    

    File ini memperlihatkan struktur dokumen yang disimpan aplikasi dalam database. Setiap dokumen berisi bidang berikut:

    • ID objek. adalah bidang "_id" yang dihasilkan oleh MongoDB untuk mengidentifikasi setiap dokumen secara unik.
    • ID perangkat. Setiap perangkat memiliki angka dengan awalan "Perangkat".
    • Suhu yang direkam oleh perangkat.
    • Tanggal dan waktu ketika suhu direkam.
  5. Tutup editor kode, lalu buka file App.config :

    code App.config
    

    File ini berisi pengaturan untuk menyambungkan ke database MongoDB.

  6. Atur nilai untuk kunci Alamat ke alamat IP server MongoDB yang Anda rekam sebelumnya.

  7. Ubah port yang digunakan aplikasi menjadi 8080.

  8. Simpan file dan tutup editor menggunakan CTRL + s, lalu CTRL + q.

  9. Jalankan perintah berikut untuk membangun kembali aplikasi:

    dotnet build
    

    Proses ini dapat memakan waktu sekitar 5 menit.

  10. Jalankan aplikasi:

    dotnet run
    

    Aplikasi mensimulasikan 100 perangkat yang berjalan secara bersamaan. Izinkan aplikasi berjalan selama beberapa menit, lalu tekan Enter untuk menghentikannya.

Membuat dan menjalankan aplikasi lain untuk mengkueri database MongoDB

  1. Pindah ke folder DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    

    Folder ini berisi aplikasi lain yang dapat Anda gunakan untuk menganalisis data yang diambil oleh setiap perangkat.

  2. Gunakan editor Kode untuk memeriksa file Program.cs :

    code Program.cs
    

    Aplikasi terhubung ke database (menggunakan metode ConnectToDatabase di bagian bawah file) lalu meminta nomor perangkat kepada pengguna. Aplikasi ini menggunakan pustaka MongoDB untuk .NET Framework untuk membuat dan menjalankan alur agregat yang menghitung statistik berikut untuk perangkat yang ditentukan:

    • Jumlah pembacaan yang direkam.
    • Suhu rata-rata dicatat.
    • Pembacaan terendah.
    • Bacaan tertinggi.
    • Pembacaan terbaru.
  3. Tutup editor kode, lalu buka file App.config :

    code App.config
    
  4. Atur nilai untuk kunci Alamat ke alamat IP server MongoDB yang Anda rekam sebelumnya.

  5. Ubah port yang digunakan aplikasi menjadi 8080.

  6. Simpan file dan tutup editor menggunakan CTRL + s, lalu CTRL + q.

  7. Membangun dan menjalankan aplikasi:

    dotnet build
    dotnet run
    
  8. Pada perintah Masukkan Nomor Perangkat , masukkan nilai antara 0 dan 99. Aplikasi akan mengkueri database, menghitung statistik, dan menampilkan hasilnya. Tekan Q untuk keluar dari aplikasi.

Memigrasikan Database MongoDB ke Cosmos DB

Langkah selanjutnya adalah mengambil database MongoDB dan mentransfernya ke Cosmos DB.

Membuat akun dan database Cosmos

  1. Kembali ke portal Microsoft Azure.

  2. Di menu, pilih + Buat sumber daya.

  3. Pada halaman Baru , dalam kotak Cari Marketplace , ketik *Azure Cosmos DB, akhiri lalu tekan Enter.

  4. Pada bilah Azure Cosmos DB, pilih Buat.

  5. Pada halaman Buat Akun Azure Cosmos DB , masukkan pengaturan berikut:

    Harta benda Nilai
    Grup sumber daya mongodbrg
    Nama Akun mongodb*nnn*, di mana nnn adalah angka acak yang dipilih oleh Anda
    API Azure Cosmos DB untuk MongoDB API
    Notebooks Off
    Lokasi Tentukan lokasi yang sama dengan yang Anda gunakan untuk server MongoDB dan jaringan virtual
    Mode kapasitas Throughput yang diproyeksikan
    Terapkan Diskon Lapisan Gratis Terapkan
    Jenis Akun Bukan Produksi
    Versi 3.6
    Redundansi Geografis Menonaktifkan
    Penulisan Multiwilayah Menonaktifkan
    Zona Ketersediaan Menonaktifkan
  6. Pilih Tinjau dan buat.

  7. Pada halaman validasi, pilih Buat, dan tunggu akun Cosmos DB disebarkan.

  8. Di menu portal Microsoft Azure, pilih Semua sumber daya, lalu pilih akun Cosmos DB baru Anda (mongodbnnn).

  9. Pada halaman mongodbnnn , pilih Data Explorer.

  10. Di panel Data Explorer , pilih Koleksi Baru.

  11. Di panel Tambahkan Koleksi , tentukan pengaturan berikut ini:

    Harta benda Nilai
    Identifikasi Database Pilih Buat baru, lalu ketik DeviceData
    Menyediakan throughput database Dipilih
    Daya Tampung 10000
    Nomor Koleksi Suhu
    Kapasitas penyimpanan Unlimited
    Kunci pecahan deviceID
    Kunci pecahan saya lebih besar dari 100 byte biarkan tetap tidak dipilih
    Buat Indeks Wildcard pada semua kolom biarkan tetap tidak dipilih
    Penyimpanan analitik Off
  12. Pilih OK.

Membuat Layanan Migrasi Basis Data

  1. Beralih kembali ke portal Microsoft Azure.

  2. Klik Semua layanan, klik Langganan, lalu klik langganan Anda.

  3. Pada halaman langganan Anda, di bawah Pengaturan, klik Penyedia sumber.

  4. Dalam kotak Filter menurut nama, ketik DataMigration, lalu klik Microsoft.DataMigration.

  5. Jika Microsoft.DataMigration tidak terdaftar, klik Daftar, dan tunggu hingga Status berubah menjadi Terdaftar. Mungkin perlu mengeklik Refresh untuk melihat perubahan status.

  6. Di menu portal Microsoft Azure, pilih + Buat sumber daya.

  7. Pada halaman Baru , dalam kotak Cari Marketplace , ketik Azure Database Migration Service, lalu tekan Enter.

  8. Pada halaman Azure Database Migration Service, pilih Buat.

  9. Pada halaman Buat Layanan Migrasi , masukkan pengaturan berikut ini:

    Harta benda Nilai
    Grup sumber daya mongodbrg
    Nama Layanan MongoDBMigration
    Lokasi Pilih lokasi sama yang Anda gunakan sebelumnya
    Mode layanan Azure
    Lapisan Harga Standar: 1 vCore
  10. Pilih Berikutnya: Jaringan.

  11. Pada halaman Jaringan, pilih databasevnet/default, lalu pilih Tinjau + buat.

  12. Pilih Buat, dan tunggu layanan diluncurkan sebelum Anda melanjutkan. Operasi ini dapat memakan waktu sekitar 10 menit.

Membuat dan menjalankan proyek migrasi baru

  1. Di menu portal Microsoft Azure, pilih Grup sumber daya.

  2. Di jendela Grup sumber daya , pilih mongodbrg.

  3. Di jendela mongodbrg, pilih MongoDBMigration.

  4. Pada halaman MongoDBMigration , pilih + Proyek Migrasi Baru.

  5. Pada halaman Proyek migrasi baru , masukkan pengaturan berikut ini:

    Harta benda Nilai
    Nama proyek MigrateTemperatureData
    Jenis server sumber MongoDB
    Jenis server target Cosmos DB (MongoDB API)
    Pilih jenis aktivitas Migrasi data offline
  6. Pilih Buat dan jalankan aktivitas.

  7. Saat Wizard Migrasi dimulai, pada halaman Detail sumber , masukkan detail berikut ini:

    Harta benda Nilai
    Pengaturan Mode standar
    Nama server sumber Tentukan nilai alamat IP mongodbserver-ip yang Anda rekam sebelumnya
    Port server 8080
    Nama Pengguna administrator
    Kata sandi Pa55w.rd
    Memerlukan SSL tidak dipilih
  8. Pilih Berikutnya: Pilih target.

  9. Pada halaman Pilih target , masukkan detail berikut ini:

    Harta benda Nilai
    Pengaturan Pilih target Cosmos DB
    Pilih Nama Comos DB mongodb*nnn*
    Rangkaian koneksi Terima string koneksi yang dihasilkan untuk akun Cosmos DB Anda
  10. Pilih Berikutnya: Pengaturan database.

  11. Pada halaman Pengaturan database , masukkan detail berikut ini:

    Harta benda Nilai
    Database Sumber DeviceData
    Basis Data Sasaran DeviceData
    Throughput (RU/detik) 1000
    Merapikan koleksi Kosongkan kotak ini
  12. Pilih Berikutnya: Pengaturan koleksi.

  13. Pada halaman Pengaturan koleksi , pilih panah dropdown oleh database DeviceData, masukkan detail berikut ini:

    Harta benda Nilai
    Nama Suhu
    Koleksi Target Suhu
    Throughput (RU/detik) 1000
    Kunci Shard deviceID
    Unik Biarkan kosong
  14. Pilih Berikutnya: Ringkasan migrasi.

  15. Pada halaman Ringkasan migrasi , di bidang Nama aktivitas , masukkan mongodb-migration, lalu pilih Mulai migrasi.

  16. Pada halaman mongodb-migration , pilih Refresh setiap 30 detik, hingga migrasi selesai. Perhatikan jumlah dokumen yang diproses.

Verifikasi bahwa migrasi berhasil

  1. Di menu portal Microsoft Azure, pilih Semua Sumber Daya.

  2. Pada halaman Semua sumber daya , pilih mongodbnnn.

  3. Pada halaman mongodb*nnn , pilih Data Explorer.

  4. Di panel Data Explorer , perluas database DeviceData , perluas kumpulan Suhu , lalu pilih Dokumen.

  5. Di panel Dokumen , gulir daftar dokumen. Anda akan melihat id dokumen (_id) dan kunci shard (/deviceID) untuk setiap dokumen.

  6. Pilih dokumen apa pun. Anda akan melihat detail dokumen yang ditampilkan. Dokumen umum terlihat seperti ini:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Di toolbar di panel Penjelajah Dokumen , pilih Shell Baru.

  8. Di panel Shell 1 , pada > perintah , masukkan perintah berikut, lalu tekan Enter:

    db.Temperatures.count()
    

    Perintah ini menampilkan jumlah dokumen dalam koleksi Temperatures. Ini harus cocok dengan jumlah yang dilaporkan oleh Wizard Migrasi.

  9. Masukkan perintah berikut, lalu tekan Enter:

    db.Temperatures.find({deviceID: "Device 99"})
    

    Perintah ini mengambil dan menampilkan dokumen untuk Perangkat 99.

Mengonfigurasi ulang dan menjalankan aplikasi yang ada untuk menggunakan Cosmos DB

Langkah terakhir adalah mengonfigurasi ulang aplikasi MongoDB yang ada untuk terhubung ke Cosmos DB, dan memverifikasi bahwa aplikasi tersebut masih berfungsi. Ini mengharuskan Anda untuk memodifikasi cara aplikasi Anda terhubung ke database, tetapi logika aplikasi Anda harus tetap tidak berubah.

  1. Di panel mongodbnnn , di bawah Pengaturan, pilih String Koneksi.

  2. Pada halaman mongodbnnn String Koneksi, catat pengaturan berikut:

    • Pembawa acara
    • Nama pengguna
    • Kata Sandi Utama
  3. Kembali ke jendela Cloud Shell (sambungkan kembali jika sesi telah kehabisan waktu), dan pindah ke folder migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery :

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. Buka file App.config di editor Kode:

    code App.config
    
  5. Di bagian Pengaturan untuk MongoDB dari file, komentari pengaturan yang ada.

  6. Batalkan komentar pengaturan di bagian Pengaturan untuk Cosmos DB Mongo API , dan atur nilai untuk pengaturan ini sebagai berikut:

    Pengaturan Nilai
    Alamat HOST dari halaman mongodb String Koneksinnn
    Pelabuhan PORT dari halaman Connection Stringnnn mongodb
    Nama pengguna NAMA PENGGUNA dari halaman mongodbnnn String Koneksi
    Kata sandi KATA SANDI UTAMA dari halaman String Koneksimongodb nnn

    File yang telah selesai akan terlihat mirip dengan ini:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="Database" value="DeviceData" />
            <add key="Collection" value="Temperatures" />
    
            <!-- Settings for MongoDB 
            <add key="Address" value="nn.nn.nn.nn" />
            <add key="Port" value="27017" />
            <add key="Username" value="deviceadmin" />
            <add key="Password" value="Pa55w.rd" />
            End of settings for MongoDB -->
    
            <!-- Settings for CosmosDB Mongo API -->
            <add key="Address" value="mongodbnnn.documents.azure.com"/>
            <add key="Port" value="10255"/>
            <add key="Username" value="mongodbnnn"/>
            <add key="Password" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="/>
            <!-- End of settings for CosmosDB Mongo API -->
        </appSettings>
    </configuration>
    
  7. Simpan file, lalu tutup editor Kode.

  8. Buka file Program.cs menggunakan editor Kode:

    code Program.cs
    
  9. Gulir ke bawah ke metode ConnectToDatabase .

  10. Tambahkan komentar pada baris yang mengatur kredensial untuk menghubungkan ke MongoDB, dan hapus komentar dari pernyataan yang menentukan kredensial untuk menghubungkan ke Cosmos DB. Kode akan terlihat seperti ini:

    // Connect to the MongoDB database
    MongoClient client = new MongoClient(new MongoClientSettings
    {
        Server = new MongoServerAddress(address, port),
        ServerSelectionTimeout = TimeSpan.FromSeconds(10),
    
        //
        // Credential settings for MongoDB
        //
    
        // Credential = MongoCredential.CreateCredential(database, azureLogin.UserName, azureLogin.SecurePassword),
    
        //
        // Credential settings for CosmosDB Mongo API
        //
    
        UseTls = true,
        Credential = new MongoCredential("SCRAM-SHA-1", new MongoInternalIdentity(database, azureLogin.UserName), new PasswordEvidence(azureLogin.SecurePassword))
    
        // End of Mongo API settings
    });
    

    Perubahan ini diperlukan karena database MongoDB asli tidak menggunakan koneksi SSL. Cosmos DB selalu menggunakan SSL.

  11. Simpan file, lalu tutup editor Kode.

  12. Bangun ulang dan jalankan aplikasi:

    dotnet build
    dotnet run
    
  13. Pada perintah Masukkan Nomor Perangkat , masukkan nomor perangkat antara 0 dan 99. Aplikasi harus berjalan persis seperti sebelumnya, kecuali kali ini menggunakan data yang disimpan dalam database Cosmos DB.

Meningkatkan performa kueri di Cosmos DB

Cosmos DB memungkinkan Anda menambahkan lebih banyak indeks untuk meningkatkan performa kueri. Saat kami mengagregasi melalui deviceID menambahkan bidang tersebut sebagai indeks akan mempercepat kueri Anda.

  1. Beralih kembali ke portal Microsoft Azure.

  2. Di sebelah kiri, pilih Data Explorer.

  3. Di panel Data Explorer , perluas database DeviceData , perluas kumpulan Suhu , lalu pilih Pengaturan.

    Cuplikan layar memperlihatkan penambahan kebijakan pengindeksan Cosmos DB.

  4. Pilih Kebijakan pengindeksan.

  5. Di bawah _id tambahkan indeks baru, masukkan deviceID untuk Definisi, dan pilih Bidang Tunggal untuk Jenis.

  6. Pilih Simpan untuk menambahkan indeks baru.

  7. Kembali ke Cloud Shell Anda untuk mencoba kueri Anda lagi, dan catat respons yang ditingkatkan di aplikasi Anda.

  8. Uji aplikasi dengan nomor perangkat lain. Masukkan Q untuk menyelesaikan.

Anda telah berhasil memigrasikan database MongoDB ke Cosmos DB, dan mengonfigurasi ulang aplikasi MongoDB yang ada untuk menyambungkan ke database Cosmos DB baru.

Jernihkan sumber daya yang telah Anda buat

Penting

Jika Anda telah melakukan langkah-langkah ini dalam langganan pribadi, Anda dapat menghapus sumber daya satu per satu atau menghapus grup sumber daya untuk menghapus seluruh set sumber daya. Sumber daya yang dibiarkan tetap aktif dapat merugikan Anda secara finansial.

  1. Menggunakan Azure Cloud Shell, jalankan perintah ini untuk menghapus grup sumber daya:

    az group delete --name mongodbrg