Alıştırma: MongoDB iş yüklerini Cosmos DB'ye geçirme
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
Web tarayıcısı kullanarak yeni bir sekme açın ve Azure portalına gidin.
Azure portalında Kaynak grupları'nı ve ardından +Ekle'yi seçin.
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 Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin. Kaynak grubunun oluşturulmasını bekleyin.
Azure portalının menüsünde + Kaynak oluşturöğesini seçin.
yeni sayfasında, markette ara kutusuna sanal ağ yazın ve Enter tuşuna basın.
Sanal Ağ sayfasında Oluştur'useçin.
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 IP Adresleri sayfasında, IPv4 adres alanını 10.0.0.0/24olarak ayarlayın.
Varsayılan alt ağı seçin ve ardından Alt ağı kaldır seçin.
+ 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.
IP Adresleri sayfasında İleri: Güvenlik öğesini seçin.
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.
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
Azure portalının menüsünde + Kaynak oluşturöğesini seçin.
Markette Ara kutusuna Ubuntuyazın ve Enter tuşuna basın.
Market sayfasında Ubuntu Server 18.04 LTSöğesini seçin.
Ubuntu Server 18.04 LTS sayfasında Oluştur'useçin.
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) >'i seçin.
Diskler sayfasında, ayarları varsayılan değerlerinde bırakın ve ardından İleri: Ağ >öğesini seçin.
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ş gözden geçir ve oluştur >seçin.
Doğrulama sayfasında Oluşturöğesini seçin.
Devam etmeden önce sanal makinenin dağıtılmasını bekleyin
Azure portalının menüsünde tüm kaynaklar seçin.
Tüm kaynaklar sayfasında mongodbserver-nsg seçin.
mongodbserver-nsg sayfasında, ayarlar altında gelen güvenlik kurallarınıseçin.
mongodbserver-nsg - Gelen güvenlik kuralları sayfasında +Ekle'yi seçin.
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ı 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
Azure portalı menüsünde tüm kaynaklar seçin.
Tüm kaynaklar sayfasında mongodbserver-ip öğesini seçin.
mongodbserver-ip sayfasında, IP adresininot edin.
Azure portalının üst kısmındaki araç çubuğunda cloud shell öğesini seçin.
Bağlı depolamanız yok ileti kutusu görüntülenirse Depolama oluştur seçeneğini belirleyin.
Cloud Shell başlatıldığında, Cloud Shell penceresinin üzerindeki açılan listede Bash seçin.
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>Bağlanmaya devam etmek için istemde evet yazın.
Pa55w.rdPa55w.rd parolayı girin.
Paket veritabanını yeniden yüklemek için şu komutu girin:
sudo apt-get updateMongoDB'yi yüklemek için şu komutu girin:
sudo apt-get install -y mongodbYü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.
MongoDB yapılandırma dosyasını açmak için şu komutu çalıştırın:
sudo nano /etc/mongodb.confdosyasında bind_ip ayarını bulun ve 0.0.0.0olarak ayarlayın.
bağlantı noktası ayarını bulun ve 8080olarak ayarlayın.
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 .
MongoDB hizmetini yeniden başlatmak ve değişikliklerinizi uygulamak için şu komutu girin:
sudo service mongodb restartMongoDB hizmetine bağlanmak için şu komutu girin:
mongo --host 127.0.0.1:8080> isteminde, yönetici veritabanına geçmek için şu komutu çalıştırın:
use admin;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.
mongoprogramı 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" ] } );mongoprogramından çıkmak için şu komutu girin;exit;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:8080DeviceData veritabanına geçmek için şu komutu yürütebilirsiniz:
use DeviceData;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" } ] } );mongoprogramından çıkmak için şu komutu girin;exit;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Ş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> isteminde aşağıdaki komutu çalıştırarak mongo kabuğundan çıkın:
exit;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
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-appsmigration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture klasörüne gidin:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCaptureTemperatureDevice.cs dosyasını incelemek için Code düzenleyicisini kullanın:
code TemperatureDevice.csBu 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.
Kod düzenleyicisini kapatın ve ThermometerReading.cs dosyasını açın:
code ThermometerReading.csBu 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.
Kod düzenleyicisini kapatın ve App.config dosyasını açın:
code App.configBu dosya MongoDB veritabanına bağlanma ayarlarını içerir.
Adresi anahtarının değerini daha önce kaydettiğiniz MongoDB sunucusunun IP adresi olarak ayarlayın.
Uygulamanın kullandığı bağlantı noktasını 8080olarak değiştirin.
Dosyayı kaydedin ve CTRL + s kullanarak düzenleyiciyi kapatın, ardından CTRL + q.
Uygulamayı yeniden derlemek için aşağıdaki komutu çalıştırın:
dotnet buildBu işlem yaklaşık 5 dakika sürebilir.
Uygulamayı çalıştırın:
dotnet runUygulama, 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
DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery klasörüne gidin:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQueryBu klasör, her cihaz tarafından yakalanan verileri analiz etmek için kullanabileceğiniz başka bir uygulama içerir.
Program.cs dosyasını incelemek için Code düzenleyicisini kullanın:
code Program.csUygulama 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.
Kod düzenleyicisini kapatın ve App.config dosyasını açın:
code App.configAdresi anahtarının değerini daha önce kaydettiğiniz MongoDB sunucusunun IP adresi olarak ayarlayın.
Uygulamanın kullandığı bağlantı noktasını 8080olarak değiştirin.
Dosyayı kaydedin ve CTRL + s kullanarak düzenleyiciyi kapatın, ardından CTRL + q.
Uygulamayı derleyin ve çalıştırın:
dotnet build dotnet runCihaz 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
Azure portalına dönün.
menüsünde + Kaynakoluştur'u seçin.
Yeni sayfasında, Markette Ara kutusuna *Azure Cosmos DByazın, sonlandırın ve Enter tuşuna basın.
Azure Cosmos DB sayfasında Oluştur'u seçin.
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 Gözden geçir ve oluştur'u seçin.
Doğrulama sayfasında oluşturseçin ve Cosmos DB hesabının dağıtılması için bekleyin.
Azure portalının menüsünde tüm kaynaklar seçin ve ardından yeni Cosmos DB hesabınızı (mongodbnnn) seçin.
mongodbnnn sayfasında veri gezgini seçin.
Veri Gezgini bölmesinde yeni koleksiyon seçin.
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ı Tamam'ı seçin.
Veritabanı Geçiş Hizmeti oluşturma
Azure portalına geri dönün.
Tüm hizmetler'e, Abonelikler'e ve ardından aboneliğinize tıklayın.
Abonelik sayfanızdaki Ayarlar'ın altında Kaynak sağlayıcıları'nı tıklatın.
Ada göre filtrele kutusuna DataMigration yazın ve Microsoft.DataMigration'a tıklayın.
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.
Azure portalının menüsünde + Kaynak oluşturöğesini seçin.
Yeni Sayfasında, Pazaryerinde Ara kutusuna Azure Veritabanı Geçiş Hizmeti yazın ve Enter tuşuna basın.
Azure Veritabanı Geçiş Hizmeti sayfasında Oluştur'u seçin.
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 İleri: Ağ'ı seçin.
Ağ sayfasında databasevnet/default'ü seçin, ardından Gözden geçir + oluştur'u seçin.
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
Azure portalının menüsünde Kaynak grupları'nı seçin.
Kaynak grupları penceresinde mongodbrg seçin.
mongodbrg penceresinde mongoDBMigration seçin.
MongoDBMigration sayfasında + Yeni Geçiş Projesiöğesini seçin.
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 etkinlik oluştur ve çalıştır seçin.
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ı İleri: Hedefseçin.
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 İleri: Veritabanı ayarı seçin.
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 İleri: Koleksiyon ayarı seçin.
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 İleri: Geçiş özeti öğesini seçin.
Geçiş özeti sayfasında, Etkinlik adı alanına mongodb-migration girin ve Geçişi başlatöğesini seçin.
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
Azure portalının menüsünde tüm kaynaklar seçin.
Tüm kaynaklar sayfasında mongodbnnnöğesini seçin.
mongodb*nnn sayfasında veri gezgini seçin.
Veri Gezgini bölmesinde DeviceData veritabanını genişletin, Sıcaklıklar koleksiyonunu genişletin ve belgeler seçin.
Belgeler bölmesinde belge listesinde ilerleyin. Her belge için bir belge kimliği (_id) ve parça anahtarı (/deviceID) görmeniz gerekir.
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 }Belge Gezgini bölmesindeki araç çubuğunda yeni kabuk seçin.
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.
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.
mongodbnnn bölmesinde, ayarlar altında Bağlantı Dizesiöğesini seçin.
mongodbnnn Bağlantı Dizesi sayfasında aşağıdaki ayarları not edin:
- Sunucu
- Kullanıcı adı
- Birincil Parola
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/DeviceDataQuerykod düzenleyicisinde App.config dosyasını açın:
code App.configDosyanın MongoDB için Ayarları bölümünde mevcut ayarları açıklama satırı yapın.
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>Dosyayı kaydedin ve kod düzenleyicisini kapatın.
Kod düzenleyicisini kullanarak Program.cs dosyasını açın:
code Program.csAşağı kaydırarak ConnectToDatabase yöntemine gelin.
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.
Dosyayı kaydedin ve kod düzenleyicisini kapatın.
Uygulamayı yeniden derleyin ve çalıştırın:
dotnet build dotnet runCihaz 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.
Azure portalına geri dönün.
Sol tarafta Veri Gezgini'ni seçin.
Veri Gezgini bölmesinde DeviceData veritabanını genişletin, Sıcaklıklar koleksiyonunu genişletin ve ardından ayarlar seçin.
dizin oluşturma ilkesi seçin.
Yeni dizin ekleme _id altında, Tanımıiçin deviceID girin ve Türüiçin Tek Alan seçin.
Yeni dizini eklemek için Kaydet seçin.
Sorgunuzu yeniden denemek için Cloud Shell'inize dönün ve uygulamanızdaki geliştirilmiş yanıtı not edin.
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.
Cloud Shell'i kullanarak şu komutu çalıştırarak kaynak grubunu silin:
az group delete --name mongodbrg