Alıştırma: MongoDB iş yüklerini Cosmos DB'ye geçirme

Tamamlandı

IoT sensörleriyle sıcaklık verilerini toplayan bir kamu hizmetleri şirketinde çalışıyorsunuz. Sıcaklıklar mongoDB veritabanına bir zaman damgasıyla birlikte kaydedilir. Her cihazın benzersiz bir kimliği vardır. Bu cihazların simülasyonunu yapıp verileri veritabanında depolayan bir MongoDB uygulaması çalıştıracaksınız. Ayrıca, kullanıcının her cihazla ilgili istatistiksel bilgileri sorgulamasına olanak tanıyan ikinci bir uygulama da kullanacaksınız. Veritabanını MongoDB'den Cosmos DB'ye geçirdikten sonra her iki uygulamayı da Cosmos DB'ye bağlanacak ve hala düzgün çalıştıklarını doğrulayacak şekilde yapılandıracaksınız.

Bu alıştırmada mevcut bir MongoDB veritabanını alıp Cosmos DB'ye geçireceksiniz. Azure Veritabanı Geçiş Hizmeti'ni kullanacaksınız. Bunun yerine Cosmos DB veritabanına bağlanmak için MongoDB veritabanını kullanan mevcut uygulamaları yeniden yapılandırmayı da göreceksiniz.

Önemli

Azure Veri Geçiş Hizmeti, ücretsiz Azure korumalı alan ortamında desteklenmez. Bu adımları kendi kişisel aboneliğinizde gerçekleştirebilir veya veritabanınızı nasıl geçirebileceğinizi anlamak için takip edebilirsiniz.

Azure'da MongoDB veritabanı oluşturma

İlk olarak sıcaklık cihazlarından yakalanan verileri tutmak için MongoDB veritabanını oluşturacaksınız.

Kaynak Grubu ve Sanal Ağ Oluşturma

  1. Web tarayıcısı kullanarak yeni bir sekme açın ve Azure portalına gidin.

  2. Azure portalında Kaynak grupları'nı ve ardından +Ekle'yi seçin.

  3. Kaynak grubu oluştur sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Abonelik Aboneliğinizi<>
    Kaynak Grubu mongodbrg
    Bölge Size en yakın konumu seçin
  4. Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin. Kaynak grubunun oluşturulmasını bekleyin.

  5. Azure portalının menüsünde + Kaynak oluşturöğesini seçin.

  6. yeni sayfasında, markette ara kutusuna sanal ağ yazın ve Enter tuşuna basın.

  7. Sanal Ağ sayfasında Oluştur'useçin.

  8. Sanal ağ oluştur sayfasında aşağıdaki ayrıntıları girin ve ardından İleri'yi seçin: IP Adresleri:

    Mülkiyet Değer
    Kaynak Grubu mongodbrg
    İsim databasevnet
    Bölge Kaynak grubu için belirttiğiniz konumu seçin
  9. IP Adresleri sayfasında, IPv4 adres alanını 10.0.0.0/24olarak ayarlayın.

  10. Varsayılan alt ağı seçin ve ardından Alt ağı kaldır seçin.

  11. + Alt ağ ekle'yi seçin. Alt ağ ekle bölmesinde, Alt ağ adı varsayılan olarak ayarlayın, Alt ağ adres aralığını10.0.0.0/28olarak ayarlayın ve Ekle'yi seçin.

  12. IP Adresleri sayfasında İleri: Güvenlik öğesini seçin.

  13. Güvenlik sayfasında Azure DDoS Ağ Koruması'nin Devre Dışı Bırakolarak ayarlandığını ve Güvenlik Duvarı'nin Devre Dışı Bırakolarak ayarlandığını doğrulayın. Gözden geçir ve oluştur'u seçin.

  14. Sanal ağ oluştur sayfasında oluştur'useçin. Devam etmeden önce sanal ağın oluşturulmasını bekleyin.

MongoDB veritabanı sunucusu oluşturma

  1. Azure portalının menüsünde + Kaynak oluşturöğesini seçin.

  2. Markette Ara kutusuna Ubuntuyazın ve Enter tuşuna basın.

  3. Market sayfasında Ubuntu Server 18.04 LTSöğesini seçin.

  4. Ubuntu Server 18.04 LTS sayfasında Oluştur'useçin.

  5. Sanal makine oluşturma sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Kaynak Grubu mongodbrg
    Sanal makine adı mongodbserver
    Bölge Kaynak grubu için belirttiğiniz konumu seçin
    Kullanılabilirlik seçenekleri Altyapı yedekliliği gerekmez
    Resim Ubuntu Server 18.04 LTS - 1. Nesil
    Azure Spot örneği Kontrol edilmemiş
    Boyut Standart A1_v2
    Kimlik doğrulama türü Şifre
    Kullanıcı adı azureuser
    Şifre Pa55w.rdPa55w.rd
    Parolayı onaylayın Pa55w.rdPa55w.rd
    Genel gelen bağlantı noktaları Seçili bağlantı noktalarına izin ver
    Gelen bağlantı noktalarını seçin SSH (22)
  6. >'i seçin.

  7. Diskler sayfasında, ayarları varsayılan değerlerinde bırakın ve ardından İleri: Ağ >öğesini seçin.

  8. Ağ Ayarları sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Sanal ağ databasevnet
    Alt ağ varsayılan (10.0.0.0/28)
    Genel Kullanıma Açık IP (yeni) mongodbserver-ip
    NIC ağ güvenlik grubu Gelişmiş
    Ağ güvenlik grubunu yapılandırma (yeni) mongodbserver-nsg
    Hızlandırılmış ağ Kontrol edilmemiş
    Yük dengeleme Kontrol edilmemiş
  9. gözden geçir ve oluştur >seçin.

  10. Doğrulama sayfasında Oluşturöğesini seçin.

  11. Devam etmeden önce sanal makinenin dağıtılmasını bekleyin

  12. Azure portalının menüsünde tüm kaynaklar seçin.

  13. Tüm kaynaklar sayfasında mongodbserver-nsg seçin.

  14. mongodbserver-nsg sayfasında, ayarlar altında gelen güvenlik kurallarınıseçin.

  15. mongodbserver-nsg - Gelen güvenlik kuralları sayfasında +Ekle'yi seçin.

  16. Gelen güvenlik kuralını ekle bölmesine aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Kaynak Herhangi bir
    Kaynak bağlantı noktası aralıkları *
    Varış Yeri Herhangi bir
    Hedef bağlantı noktası aralıkları 8080
    Protokol Herhangi bir
    Eylem İzin Ver
    Öncelik 1030
    İsim Mongodb-port
    Açıklama İstemcilerin MongoDB'ye bağlanmak için kullandığı bağlantı noktası
  17. Ekle'yi seçin.

Uyarı

Bu alıştırmada MongoDB'yi 8080 numaralı bağlantı noktasını kullanacak şekilde yapılandıracaksınız. Bunu yalnızca bu ortamdaki güvenlik kısıtlamaları nedeniyle yapmanız gerekir. Normalde 27017varsayılan MongoDB bağlantı noktasını kullanırsınız.

MongoDB'yi yükleme

  1. Azure portalı menüsünde tüm kaynaklar seçin.

  2. Tüm kaynaklar sayfasında mongodbserver-ip öğesini seçin.

  3. mongodbserver-ip sayfasında, IP adresininot edin.

  4. Azure portalının üst kısmındaki araç çubuğunda cloud shell öğesini seçin.

  5. Bağlı depolamanız yok ileti kutusu görüntülenirse Depolama oluştur seçeneğini belirleyin.

  6. Cloud Shell başlatıldığında, Cloud Shell penceresinin üzerindeki açılan listede Bash seçin.

  7. Cloud Shell'de aşağıdaki komutu girerek mongodbserver sanal makinesine bağlanın. <ip adresi> değerini mongodbserver-ip IP adresi değeriyle değiştirin:

    ssh azureuser@<ip address>
    
  8. Bağlanmaya devam etmek için istemde evet yazın.

  9. Pa55w.rdPa55w.rd parolayı girin.

  10. Paket veritabanını yeniden yüklemek için şu komutu girin:

    sudo apt-get update
    
  11. MongoDB'yi yüklemek için şu komutu girin:

    sudo apt-get install -y mongodb
    

    Yükleme, paketleri yükleme, hazırlama ve açma ile ilgili iletilerle devam etmelidir. Yüklemenin tamamlanması birkaç dakika sürebilir.

MongoDB veritabanını yapılandırma

Varsayılan olarak, Mongo DB örneği kimlik doğrulaması olmadan çalışacak şekilde yapılandırılır. Bu görevde MongoDB'yi, diğer bilgisayarlardan gelen bağlantıları kabul edebilmesi için yerel ağ arabirimine bağlanacak şekilde yapılandıracaksınız. Ayrıca kimlik doğrulamasını etkinleştirecek ve geçişi gerçekleştirmek için gerekli kullanıcı hesabını oluşturacaksınız. Son olarak, bir test uygulamasının veritabanını sorgulamak için kullanabileceği bir hesap ekleyeceksiniz.

  1. MongoDB yapılandırma dosyasını açmak için şu komutu çalıştırın:

    sudo nano /etc/mongodb.conf
    
  2. dosyasında bind_ip ayarını bulun ve 0.0.0.0olarak ayarlayın.

  3. bağlantı noktası ayarını bulun ve 8080olarak ayarlayın.

  4. Yapılandırma dosyasını kaydetmek için Esc basın ve ardından CTRL + Xtuşlarına basın. değiştirilen arabelleği kaydetmek için y basın ve ardından Enter .

  5. MongoDB hizmetini yeniden başlatmak ve değişikliklerinizi uygulamak için şu komutu girin:

    sudo service mongodb restart
    
  6. MongoDB hizmetine bağlanmak için şu komutu girin:

    mongo --host 127.0.0.1:8080
    
  7. > isteminde, yönetici veritabanına geçmek için şu komutu çalıştırın:

    use admin;
    
  8. yöneticiadlı yeni bir kullanıcı oluşturmak için aşağıdaki komutu çalıştırın. Daha iyi okunabilirlik için komutu bir satıra veya birden çok satıra girebilirsiniz. mongo programı noktalı virgüle ulaştığında komut yürütülür:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. mongo programından çıkmak için şu komutu girin;

    exit;
    
  10. MongoDB'ye yeni yönetici hesabıyla bağlanmak için şu komutu çalıştırın:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. DeviceData veritabanına geçmek için şu komutu yürütebilirsiniz:

    use DeviceData;    
    
  12. Uygulamanın veritabanına bağlanmak için kullanacağı deviceadminadlı bir kullanıcı oluşturmak için şu komutu çalıştırın:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. mongo programından çıkmak için şu komutu girin;

    exit;
    
  14. Mongodb hizmetini yeniden başlatmak için aşağıdaki komutu çalıştırın. Hizmetin herhangi bir hata iletisi olmadan yeniden başlatıldığını doğrulayın:

    sudo service mongodb restart
    
  15. Şimdi mongodb'de deviceadmin kullanıcısı olarak oturum açabildiğinizi doğrulamak için aşağıdaki komutu çalıştırın:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. > isteminde aşağıdaki komutu çalıştırarak mongo kabuğundan çıkın:

    exit;
    
  17. Bash isteminde aşağıdaki komutu çalıştırarak MongoDB sunucusu bağlantısını kesin ve Cloud Shell'e dönün:

    exit
    

MongoDB veritabanını doldurma ve sorgulama

Şimdi bir MongoDB sunucusu ve veritabanı oluşturdunuz. Sonraki adım, bu veritabanındaki verileri doldurabilen ve sorgulayan örnek uygulamaları göstermektir.

MongoDB veritabanını doldurmak için uygulama oluşturma ve çalıştırma

  1. Azure Cloud Shell'de aşağıdaki komutu çalıştırarak örnek kodu indirin:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture klasörüne gidin:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. TemperatureDevice.cs dosyasını incelemek için Code düzenleyicisini kullanın:

    code TemperatureDevice.cs
    

    Bu dosyadaki kod, verileri yakalayan ve MongoDB veritabanına kaydeden bir sıcaklık cihazının benzetimini TemperatureDevice adlı bir sınıf içerir. .NET Framework için MongoDB kitaplığını kullanır. TemperatureDevice oluşturucu, uygulama yapılandırma dosyasında depolanan ayarları kullanarak veritabanına bağlanır. RecordTemperatures yöntemi bir okuma oluşturur ve bunu veritabanına yazar.

  4. Kod düzenleyicisini kapatın ve ThermometerReading.cs dosyasını açın:

    code ThermometerReading.cs
    

    Bu dosya, uygulamanın veritabanında depolayan belgelerin yapısını gösterir. Her belge aşağıdaki alanları içerir:

    • Nesne kimliği. , MongoDB tarafından her belgeyi benzersiz olarak tanımlamak için oluşturulan "_id" alanıdır.
    • Cihaz kimliği. Her cihazın "Cihaz" ön ekiyle bir numarası vardır.
    • Cihaz tarafından kaydedilen sıcaklık.
    • Sıcaklığın kaydedilildiği tarih ve saat.
  5. Kod düzenleyicisini kapatın ve App.config dosyasını açın:

    code App.config
    

    Bu dosya MongoDB veritabanına bağlanma ayarlarını içerir.

  6. Adresi anahtarının değerini daha önce kaydettiğiniz MongoDB sunucusunun IP adresi olarak ayarlayın.

  7. Uygulamanın kullandığı bağlantı noktasını 8080olarak değiştirin.

  8. Dosyayı kaydedin ve CTRL + s kullanarak düzenleyiciyi kapatın, ardından CTRL + q.

  9. Uygulamayı yeniden derlemek için aşağıdaki komutu çalıştırın:

    dotnet build
    

    Bu işlem yaklaşık 5 dakika sürebilir.

  10. Uygulamayı çalıştırın:

    dotnet run
    

    Uygulama, aynı anda çalışan 100 cihazın simülasyonunu oluşturur. Uygulamanın birkaç dakika çalışmasına izin verin ve ardından durdurmak için Enter tuşuna basın.

MongoDB veritabanını sorgulamak için başka bir uygulama derleme ve çalıştırma

  1. DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery klasörüne gidin:

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

    Bu klasör, her cihaz tarafından yakalanan verileri analiz etmek için kullanabileceğiniz başka bir uygulama içerir.

  2. Program.cs dosyasını incelemek için Code düzenleyicisini kullanın:

    code Program.cs
    

    Uygulama veritabanına bağlanır (dosyanın en altındaki ConnectToDatabase yöntemini kullanarak) ve ardından kullanıcıdan bir cihaz numarası ister. Uygulama, belirtilen cihaz için aşağıdaki istatistikleri hesaplayan bir toplama işlem hattı oluşturmak ve çalıştırmak için .NET Framework için MongoDB kitaplığını kullanır:

    • Kaydedilen okuma sayısı.
    • Kaydedilen ortalama sıcaklık.
    • En düşük okuma.
    • En yüksek okuma.
    • Son ölçüm.
  3. Kod düzenleyicisini kapatın ve App.config dosyasını açın:

    code App.config
    
  4. Adresi anahtarının değerini daha önce kaydettiğiniz MongoDB sunucusunun IP adresi olarak ayarlayın.

  5. Uygulamanın kullandığı bağlantı noktasını 8080olarak değiştirin.

  6. Dosyayı kaydedin ve CTRL + s kullanarak düzenleyiciyi kapatın, ardından CTRL + q.

  7. Uygulamayı derleyin ve çalıştırın:

    dotnet build
    dotnet run
    
  8. Cihaz Numarasını Girin isteminde 0 ile 99 arasında bir değer girin. Uygulama veritabanını sorgular, istatistikleri hesaplar ve sonuçları görüntüler. Uygulamadan çıkmak için Q tuşuna basın.

MongoDB Veritabanını Cosmos DB'ye geçirme

Sonraki adım MongoDB veritabanını alıp Cosmos DB'ye aktarmaktır.

Cosmos hesabı ve veritabanı oluşturma

  1. Azure portalına dönün.

  2. menüsünde + Kaynakoluştur'u seçin.

  3. Yeni sayfasında, Markette Ara kutusuna *Azure Cosmos DByazın, sonlandırın ve Enter tuşuna basın.

  4. Azure Cosmos DB sayfasında Oluştur'u seçin.

  5. Azure Cosmos DB Hesabı Oluştur sayfasında aşağıdaki ayarları girin:

    Mülkiyet Değer
    Kaynak grubu mongodbrg
    Hesap Adı mongodb*nnn* ; burada nnn sizin seçtiğiniz rastgele bir sayıdır
    Uygulama Programlama Arayüzü (API) MongoDB için Azure Cosmos DB API
    Dizüstü bilgisayarlar Kapalı
    Yer MongoDB sunucusu ve sanal ağı için kullandığınız konumu belirtin
    Kapasite modu Sağlanan aktarım hızı
    Ücretsiz Katman İndirimi Uygula Uygula
    Hesap Türü üretim dışı
    Sürüm 3.6
    Coğrafi Yedeklilik 'i Devre Dışı Bırak
    Birden Çok Bölgeli Yazmalar 'i Devre Dışı Bırak
    Kullanılabilirlik Alanları 'i Devre Dışı Bırak
  6. Gözden geçir ve oluştur'u seçin.

  7. Doğrulama sayfasında oluşturseçin ve Cosmos DB hesabının dağıtılması için bekleyin.

  8. Azure portalının menüsünde tüm kaynaklar seçin ve ardından yeni Cosmos DB hesabınızı (mongodbnnn) seçin.

  9. mongodbnnn sayfasında veri gezgini seçin.

  10. Veri Gezgini bölmesinde yeni koleksiyon seçin.

  11. Koleksiyon Ekle bölmesinde aşağıdaki ayarları belirtin:

    Mülkiyet Değer
    Veritabanı Kimliği yeni oluştur'useçin ve ardından DeviceData yazın
    Veritabanı aktarım hızı ayarlama seçili
    İşlem Hacmi 10000
    Koleksiyon kimliği Sıcaklık
    Depolama kapasitesi sınırsız
    Parça anahtarı deviceID
    Parça anahtarım 100 bayttan büyük seçilmemiş halde bırak
    Tüm alanlarda Wildcard Dizini oluşturun seçilmemiş halde bırak
    Analiz deposu Kapalı
  12. Tamam'ı seçin.

Veritabanı Geçiş Hizmeti oluşturma

  1. Azure portalına geri dönün.

  2. Tüm hizmetler'e, Abonelikler'e ve ardından aboneliğinize tıklayın.

  3. Abonelik sayfanızdaki Ayarlar'ın altında Kaynak sağlayıcıları'nı tıklatın.

  4. Ada göre filtrele kutusuna DataMigration yazın ve Microsoft.DataMigration'a tıklayın.

  5. Microsoft.DataMigration kayıtlı değilse Kaydet'e tıklayın ve Durum'un Kayıtlı olarak değişmesini bekleyin. Durum değişikliğini görmek için Yenile'ye tıklamak gerekebilir.

  6. Azure portalının menüsünde + Kaynak oluşturöğesini seçin.

  7. Yeni Sayfasında, Pazaryerinde Ara kutusuna Azure Veritabanı Geçiş Hizmeti yazın ve Enter tuşuna basın.

  8. Azure Veritabanı Geçiş Hizmeti sayfasında Oluştur'u seçin.

  9. Geçiş Hizmeti Oluştur sayfasında aşağıdaki ayarları girin:

    Mülkiyet Değer
    Kaynak grubu mongodbrg
    Hizmet Adı MongoDBMigration
    Yer Önceden kullandığınız konumu seçin
    Hizmet modu Azure
    Fiyatlandırma Katmanı Standart: 1 vCPU
  10. İleri: Ağ'ı seçin.

  11. sayfasında databasevnet/default'ü seçin, ardından Gözden geçir + oluştur'u seçin.

  12. Oluştur'u seçin ve devam etmeden önce hizmetin dağıtılmasını bekleyin. Bu işlem yaklaşık 10 dakika sürebilir.

Yeni geçiş projesi oluşturma ve çalıştırma

  1. Azure portalının menüsünde Kaynak grupları'nı seçin.

  2. Kaynak grupları penceresinde mongodbrg seçin.

  3. mongodbrg penceresinde mongoDBMigration seçin.

  4. MongoDBMigration sayfasında + Yeni Geçiş Projesiöğesini seçin.

  5. Yeni geçiş projesi sayfasında aşağıdaki ayarları girin:

    Mülkiyet Değer
    Proje adı MigrateTemperatureData
    Kaynak sunucu türü MongoDB
    Hedef sunucu türü Cosmos DB (MongoDB API)
    Etkinlik türünü seçin Çevrimdışı veri geçişi
  6. etkinlik oluştur ve çalıştır seçin.

  7. Geçiş Sihirbazı başlatıldığında, Kaynak ayrıntıları sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Modül standart mod
    Kaynak sunucu adı Daha önce kaydettiğiniz mongodbserver-ip IP adresinin değerini belirtin
    Sunucu bağlantı noktası 8080
    Kullanıcı Adı yönetici
    Şifre Pa55w.rd
    SSL gerektir seçimi kaldırıldı
  8. İleri: Hedefseçin.

  9. Hedef seçin sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Modül Cosmos DB hedefini seç
    Comos DB adını seçin mongodb*nnn*
    Bağlantı dizesi Cosmos DB hesabınız için oluşturulan bağlantı dizesini kabul edin
  10. İleri: Veritabanı ayarı seçin.

  11. Veritabanı ayarı sayfasında aşağıdaki ayrıntıları girin:

    Mülkiyet Değer
    Kaynak Veritabanı DeviceData
    Hedef Veritabanı DeviceData
    Aktarım hızı (RU/sn) 1000
    Koleksiyonları temizleme Bu kutuyu temizle
  12. İleri: Koleksiyon ayarı seçin.

  13. Koleksiyon ayarları sayfasında, DeviceData veritabanının yanındaki açılan oku seçin ve aşağıdaki bilgileri girin:

    Mülkiyet Değer
    İsim Sıcaklık
    Hedef Koleksiyonu Sıcaklık
    Aktarım hızı (RU/sn) 1000
    Veri Bölümleme Anahtarı deviceID
    Eşsiz Boş bırakın
  14. İleri: Geçiş özeti öğesini seçin.

  15. Geçiş özeti sayfasında, Etkinlik adı alanına mongodb-migration girin ve Geçişi başlatöğesini seçin.

  16. mongodb-migration sayfasında, geçiş tamamlanana kadar her 30 saniyede bir Yenile'yi seçin. İşlenen belge sayısını not edin.

Geçişin başarılı olduğunu doğrulayın

  1. Azure portalının menüsünde tüm kaynaklar seçin.

  2. Tüm kaynaklar sayfasında mongodbnnnöğesini seçin.

  3. mongodb*nnn sayfasında veri gezgini seçin.

  4. Veri Gezgini bölmesinde DeviceData veritabanını genişletin, Sıcaklıklar koleksiyonunu genişletin ve belgeler seçin.

  5. Belgeler bölmesinde belge listesinde ilerleyin. Her belge için bir belge kimliği (_id) ve parça anahtarı (/deviceID) görmeniz gerekir.

  6. Herhangi bir belgeyi seçin. Belgenin ayrıntılarının görüntülendiğini görmeniz gerekir. Tipik bir belge şuna benzer:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. Belge Gezgini bölmesindeki araç çubuğunda yeni kabuk seçin.

  8. Shell 1 bölmesindeki > isteminde aşağıdaki komutu girin ve Enter tuşuna basın:

    db.Temperatures.count()
    

    Bu komut, Temperatures koleksiyonundaki belge sayısını görüntüler. Geçiş Sihirbazı tarafından bildirilen sayıyla eşleşmelidir.

  9. Aşağıdaki komutu girin ve Enter tuşuna basın:

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

    Bu komut, Cihaz 99 belgelerini getirir ve görüntüler.

Cosmos DB kullanmak için mevcut uygulamaları yeniden yapılandırma ve çalıştırma

Son adım, mevcut MongoDB uygulamalarınızı Cosmos DB'ye bağlanacak şekilde yeniden yapılandırmak ve hala çalıştıklarını doğrulamaktır. Bu, uygulamalarınızın veritabanına bağlanma şeklini değiştirmenizi gerektirir, ancak uygulamalarınızın mantığı değişmeden kalmalıdır.

  1. mongodbnnn bölmesinde, ayarlar altında Bağlantı Dizesiöğesini seçin.

  2. mongodbnnn Bağlantı Dizesi sayfasında aşağıdaki ayarları not edin:

    • Sunucu
    • Kullanıcı adı
    • Birincil Parola
  3. Cloud Shell penceresine dönün (oturum zaman aşımına uğradıysa yeniden bağlanın) ve migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery klasörüne gidin:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. kod düzenleyicisinde App.config dosyasını açın:

    code App.config
    
  5. Dosyanın MongoDB için Ayarları bölümünde mevcut ayarları açıklama satırı yapın.

  6. Cosmos DB Mongo API'için Ayarları bölümünde ayarların açıklamalarını kaldırın ve bu ayarların değerlerini aşağıdaki gibi ayarlayın:

    Ayarlar Değer
    Adres mongodbnnn Bağlantı Dizesi sayfasındaki HOST
    Liman mongodbnnn Bağlantı Dizesi sayfasından PORT
    Kullanıcı adı USERNAMEmongodbnnn Bağlantı Dizesi sayfasından
    Şifre PRIMARY PASSWORD, mongodbnnn Bağlantı Dizesi sayfasından

    Tamamlanan dosya şuna benzer olmalıdır:

    <?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. Dosyayı kaydedin ve kod düzenleyicisini kapatın.

  8. Kod düzenleyicisini kullanarak Program.cs dosyasını açın:

    code Program.cs
    
  9. Aşağı kaydırarak ConnectToDatabase yöntemine gelin.

  10. MongoDB'ye bağlanmak için kimlik bilgilerini ayarlayan satırı yorum satırı haline getirin ve Cosmos DB'ye bağlanmak için kimlik bilgilerini belirten satırları yorum satırından çıkarın. Kod şu şekilde görünmelidir:

    // 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
    });
    

    Özgün MongoDB veritabanı SSL bağlantısı kullanmadığından bu değişiklikler gereklidir. Cosmos DB her zaman SSL kullanır.

  11. Dosyayı kaydedin ve kod düzenleyicisini kapatın.

  12. Uygulamayı yeniden derleyin ve çalıştırın:

    dotnet build
    dotnet run
    
  13. Cihaz Numarasını Girin isteminde 0 ile 99 arasında bir cihaz numarası girin. Uygulama, Cosmos DB veritabanında tutulan verileri kullanma dışında tam olarak önceki gibi çalışmalıdır.

Cosmos DB'de sorgu performansını geliştirme

Cosmos DB, sorgu performansını geliştirmek için daha fazla dizin eklemenize olanak tanır. DeviceID üzerinden toplama yaptığımız için bu alanı dizin olarak eklemek sorgularınızı hızlandıracaktır.

  1. Azure portalına geri dönün.

  2. Sol tarafta Veri Gezgini'ni seçin.

  3. Veri Gezgini bölmesinde DeviceData veritabanını genişletin, Sıcaklıklar koleksiyonunu genişletin ve ardından ayarlar seçin.

    Cosmos DB dizin oluşturma ilkesi eklemeyi gösteren ekran görüntüsü.

  4. dizin oluşturma ilkesi seçin.

  5. Yeni dizin ekleme _id altında, Tanımıiçin deviceID girin ve Türüiçin Tek Alan seçin.

  6. Yeni dizini eklemek için Kaydet seçin.

  7. Sorgunuzu yeniden denemek için Cloud Shell'inize dönün ve uygulamanızdaki geliştirilmiş yanıtı not edin.

  8. Uygulamayı diğer cihaz numaralarıyla test edin. Bitirmek için Q girin.

MongoDB veritabanını Cosmos DB'ye başarıyla geçirdiniz ve mevcut bir MongoDB uygulamasını yeni Cosmos DB veritabanına bağlanacak şekilde yeniden yapılandırdıktan sonra.

Oluşturduğunuz kaynakları temizleme

Önemli

Bu adımları kendi kişisel aboneliğinizde gerçekleştirdiyseniz, kaynakları tek tek silebilir veya kaynak grubunu silip kaynak kümesinin tamamını silebilirsiniz. Çalışır durumda kalan kaynaklar size pahalıya mal olabilir.

  1. Cloud Shell'i kullanarak şu komutu çalıştırarak kaynak grubunu silin:

    az group delete --name mongodbrg