Gyakorlat: MongoDB-számítási feladatok migrálása a Cosmos DB-be
Olyan közművállalatnál dolgozik, amely hőmérsékleti adatokat gyűjtő IoT-érzékelőkkel rendelkezik. A hőmérsékletek egy MongoDB-adatbázisban vannak naplózva egy időbélyeggel együtt. Minden eszköz egyedi azonosítóval rendelkezik. Egy MongoDB-alkalmazást fog futtatni, amely szimulálja ezeket az eszközöket, és tárolja az adatokat az adatbázisban. Egy második alkalmazást is használ, amely lehetővé teszi a felhasználó számára az egyes eszközök statisztikai adatainak lekérdezését. Miután migrálta az adatbázist a MongoDB-ből a Cosmos DB-be, mindkét alkalmazást konfigurálnia kell a Cosmos DB-hez való csatlakozáshoz, és ellenőriznie kell, hogy továbbra is megfelelően működnek-e.
Ebben a gyakorlatban egy meglévő MongoDB-adatbázist fog áttelepíteni a Cosmos DB-be. Az Azure Database Migration Service-t fogja használni. Azt is látni fogja, hogyan konfigurálhatja újra a MongoDB-adatbázist használó meglévő alkalmazásokat a Cosmos DB-adatbázishoz való csatlakozáshoz.
Fontos
Az Azure Data Migration Service nem támogatott az ingyenes Azure-tesztkörnyezetben. Ezeket a lépéseket saját személyes előfizetésében hajthatja végre, vagy egyszerűen kövesse az adatbázis migrálásának módját.
MongoDB-adatbázis létrehozása az Azure-ban
Először létre kell hoznia a MongoDB-adatbázist a hőmérsékleti eszközökről rögzített adatok megtartásához.
Erőforráscsoport és virtuális hálózat létrehozása
Webböngésző használatával nyisson meg egy új lapot, és lépjen az Azure Portalra.
Az Azure Portalon válassza erőforráscsoportok, majd a +hozzáadása lehetőséget.
Az Erőforráscsoport létrehozása laponadja meg a következő adatokat:
Ingatlan Érték Előfizetés előfizetési<> Erőforráscsoport mongodbrg Régió Válassza ki a legközelebbi helyet Válassza a Véleményezés + Létrehozás lehetőséget, majd a Létrehozás lehetőséget. Várja meg, amíg az erőforráscsoport létrejön.
Az Azure Portal menüjében válassza a + Erőforrás létrehozásalehetőséget.
Az Új lap Keresés a Marketplace mezőjébe írja be virtuális hálózat, majd nyomja le az Enter billentyűt.
A Virtuális hálózat lapon válassza a létrehozása lehetőséget.
A Virtuális hálózat létrehozása lapon adja meg a következő adatokat, majd válassza Tovább: IP-címek:
Ingatlan Érték Erőforráscsoport mongodbrg Név databasevnet Régió Válassza ki ugyanazt a helyet, amelyet az erőforráscsoporthoz megadott Az IP-címek lapon állítsa a IPv4-címteret 10.0.0.0/24 .
Jelölje ki az alapértelmezett alhálózatot, majd válassza az Alhálózat eltávolításalehetőséget.
Válassza a + Alhálózat hozzáadásalehetőséget. Az Alhálózat hozzáadása panelen állítsa a alhálózat nevét az alapértelmezett , állítsa a alhálózat címtartományát 10.0.0.0/28 , majd válassza hozzáadása lehetőséget.
Az IP-címek lapon válassza a következő : Biztonságilehetőséget.
A Biztonsági lapon ellenőrizze, hogy Azure DDoS Network ProtectionTiltsa le, és tűzfalTiltsa le. Válassza a Véleményezés + létrehozás lehetőséget.
A Virtuális hálózat létrehozása lapon válassza a létrehozása lehetőséget. A folytatás előtt várja meg, amíg létrejön a virtuális hálózat.
MongoDB-adatbáziskiszolgáló létrehozása
Az Azure Portal menüjében válassza a + Erőforrás létrehozásalehetőséget.
A Keresés a Marketplace mezőbe írja be Ubuntu, majd nyomja le az Enter billentyűt.
A Marketplace lapon válassza Ubuntu Server 18.04 LTSlehetőséget.
Az Ubuntu Server 18.04 LTS lapon válassza a létrehozás lehetőséget.
A Virtuális gép létrehozása lapon adja meg a következő adatokat:
Ingatlan Érték Erőforráscsoport mongodbrg Virtuális gép neve mongodbserver Régió Válassza ki ugyanazt a helyet, amelyet az erőforráscsoporthoz megadott Rendelkezésre állási lehetőségek Nem szükséges infrastruktúra-redundancia Image Ubuntu Server 18.04 LTS – Gen1 Azure Spot-példány Ellenőrizetlen Méret Standard A1_v2 Hitelesítési típus Jelszó Felhasználónév azureuser Jelszó Pa55w.rdPa55w.rd Jelszó megerősítése Pa55w.rdPa55w.rd Nyilvános bejövő portok Kiválasztott portok engedélyezése Bejövő portok kiválasztása SSH (22) Válassza a Következő: Lemezek > opciót.
A Lemezek lapon hagyja meg az alapértelmezett beállításokat, majd válassza a következő : Hálózatkezelés >lehetőséget.
A Hálózatkezelés lapon adja meg a következő adatokat:
Ingatlan Érték Virtuális hálózat databasevnet Alhálózat alapértelmezett (10.0.0.0/28) Nyilvános IP-cím (új) mongodbserver-ip NIC hálózati biztonsági csoport Speciális Hálózati biztonsági csoport konfigurálása (új) mongodbserver-nsg Gyorsított hálózatkezelés Ellenőrizetlen Terheléselosztás Ellenőrizetlen Válassza a Véleményezés + létrehozás> lehetőséget.
Az érvényesítési lapon válassza a létrehozása lehetőséget.
Várakozás a virtuális gép üzembe helyezésére a folytatás előtt
Az Azure Portal menüjében válassza a Minden erőforráslehetőséget.
A Minden erőforrás lapon válassza mongodbserver-nsglehetőséget.
A mongodbserver-nsg lapon, a Beállításokterületen válassza Bejövő biztonsági szabályoklehetőséget.
A mongodbserver-nsg – Bejövő biztonsági szabályok lapon válassza a +hozzáadása lehetőséget.
A Bejövő biztonsági szabály hozzáadása panelen adja meg a következő adatokat:
Ingatlan Érték Forrás Bármely Forrásporttartományok * Célállomás Bármely Célporttartományok 8080 Protokoll Bármely Cselekvés Engedélyezés Elsőbbség 1030 Név Mongodb-port Leírás Port, amelyet az ügyfelek a MongoDB-hez való csatlakozáshoz használnak Válassza a Hozzáadás lehetőséget.
Megjegyzés
Ebben a gyakorlatban úgy konfigurálja a MongoDB-t, hogy a 8080-as portot használja. Ezt csak biztonsági korlátozások miatt kell elvégeznie ebben a környezetben. Általában a 27017-alapértelmezett MongoDB-portját használná.
A MongoDB telepítése
Az Azure Portal menüjében válassza a Minden erőforráslehetőséget.
A Minden erőforrás lapon válassza mongodbserver-iplehetőséget.
A mongodbserver-ip lapon jegyezze fel a IP-cím.
Az Azure Portal tetején található eszköztáron válassza Cloud Shelllehetőséget.
Ha megjelenik a Nincs tárolóra csatlakoztatva üzenetmező, válassza a Tárterület létrehozásalehetőséget.
A Cloud Shell indításakor a Cloud Shell ablak feletti legördülő listában válassza Bashlehetőséget.
A Cloud Shellben adja meg a következő parancsot a mongodbserver virtuális géphez való csatlakozáshoz. Cserélje le <IP-cím> értékét a mongodbserver-ip IP-cím értékére:
ssh azureuser@<ip address>A parancssorba írja be igen a csatlakozás folytatásához.
Adja meg a pa55w.rdPa55w.rd jelszót.
A csomagadatbázis újratöltéséhez írja be a következő parancsot:
sudo apt-get updateA MongoDB telepítéséhez írja be a következő parancsot:
sudo apt-get install -y mongodbA telepítés során a csomagok telepítésével, előkészítésével és kicsomagolásával kapcsolatos üzeneteket kell megjeleníteni. A telepítés végrehajtása eltarthat néhány percig.
A MongoDB-adatbázis konfigurálása
Alapértelmezés szerint a Mongo DB-példány hitelesítés nélküli futtatásra van konfigurálva. Ebben a feladatban úgy konfigurálja a MongoDB-t, hogy a helyi hálózati adapterhez kösse, hogy más számítógépekről is fogadhassa a kapcsolatokat. Emellett engedélyezi a hitelesítést, és létrehozza a migrálás végrehajtásához szükséges felhasználói fiókot. Végül hozzáad egy fiókot, amellyel egy tesztalkalmazás lekérdezheti az adatbázist.
A MongoDB konfigurációs fájljának megnyitásához futtassa a következő parancsot:
sudo nano /etc/mongodb.confA fájlban keresse meg a bind_ip beállítást, és állítsa be a 0.0.0.0értékre.
Keresse meg a port beállítást, és állítsa be a 8080értékre.
A konfigurációs fájl mentéséhez nyomja le Esc, majd nyomja le CTRL + Xbillentyűkombinációt. Nyomja le y, majd a módosított puffer mentéséhez Enter.
A MongoDB szolgáltatás újraindításához és a módosítások alkalmazásához írja be a következő parancsot:
sudo service mongodb restartA MongoDB szolgáltatáshoz való csatlakozáshoz írja be a következő parancsot:
mongo --host 127.0.0.1:8080Az > parancssorban a következő parancs futtatásával válthat a rendszergazdai adatbázisra:
use admin;Ha rendszergazdainevű új felhasználót szeretne létrehozni, futtassa a következő parancsot. A jobb olvashatóság érdekében a parancsot egy sorban vagy több sorban is megadhatja. A parancs akkor hajtható végre, amikor a
mongoprogram eléri a pontosvesszőt:db.createUser( { user: "administrator", pwd: "Pa55w.rd", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "clusterMonitor", db:"admin" }, "readWriteAnyDatabase" ] } );A
mongoprogramból való kilépéshez írja be ezt a parancsot;exit;Ha az új rendszergazda fiókjával szeretne csatlakozni a MongoDB-hez, futtassa a következő parancsot:
mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080Az DeviceData-adatbázisra való váltáshoz hajtsa végre a következő parancsot:
use DeviceData;Ha deviceadminnevű felhasználót szeretne létrehozni, amelyet az alkalmazás az adatbázishoz való csatlakozáshoz használ, futtassa a következő parancsot:
db.createUser( { user: "deviceadmin", pwd: "Pa55w.rd", roles: [ { role: "readWrite", db: "DeviceData" } ] } );A
mongoprogramból való kilépéshez írja be ezt a parancsot;exit;Futtassa a következő parancsot, indítsa újra a mongodb szolgáltatást. Ellenőrizze, hogy a szolgáltatás hibaüzenetek nélkül újraindul-e:
sudo service mongodb restartFuttassa a következő parancsot annak ellenőrzéséhez, hogy most már bejelentkezhet-e a mongodb-ba eszközadmin-felhasználóként:
mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080A > parancssorba írja be ezt a parancsot, hogy kilépjen a mongo shellből:
exit;A bash-parancssorban futtassa a következő parancsot a MongoDB-kiszolgálóról való leválasztáshoz és a Cloud Shellhez való visszatéréshez:
exit
A MongoDB-adatbázis feltöltése és lekérdezése
Most létrehozott egy MongoDB-kiszolgálót és -adatbázist. A következő lépés az adatbázis adatainak feltöltésére és lekérdezésére képes mintaalkalmazások bemutatása.
Alkalmazás létrehozása és futtatása a MongoDB-adatbázis feltöltéséhez
Az Azure Cloud Shellben futtassa a következő parancsot a mintakód letöltéséhez:
git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-appsLépjen a migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture mappába:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCaptureA TemperatureDevice.cs fájl vizsgálatához használja a Code szerkesztőt:
code TemperatureDevice.csA fájlban található kód egy TemperatureDevice nevű osztályt tartalmaz, amely szimulál egy hőmérsékleti eszközt, amely adatokat rögzít és MongoDB-adatbázisban menti. A MongoDB-kódtárat használja a .NET-keretrendszerhez. A TemperatureDevice konstruktor az alkalmazáskonfigurációs fájlban tárolt beállítások használatával csatlakozik az adatbázishoz. A RecordTemperatures metódus olvasást generál, és az adatbázisba írja.
Zárja be a kódszerkesztőt, majd nyissa meg a ThermometerReading.cs fájlt:
code ThermometerReading.csEz a fájl az alkalmazás által az adatbázisban tárolt dokumentumok struktúráját mutatja be. Minden dokumentum a következő mezőket tartalmazza:
- Objektumazonosító. A MongoDB által létrehozott "_id" mező az egyes dokumentumok egyedi azonosításához.
- Eszközazonosító. Minden eszköz rendelkezik egy "Device" előtaggal rendelkező számmal.
- Az eszköz által rögzített hőmérséklet.
- A hőmérséklet rögzítésének dátuma és időpontja.
Zárja be a kódszerkesztőt, majd nyissa meg a App.config fájlt:
code App.configEz a fájl tartalmazza a MongoDB-adatbázishoz való csatlakozás beállításait.
Állítsa a Cím kulcs értékét a mongoDB-kiszolgáló korábban rögzített IP-címére.
Módosítsa az alkalmazás által a 8080 használt portot.
Mentse a fájlt, és zárja be a szerkesztőt CTRL + s, majd CTRL + q használatával.
Futtassa a következő parancsot az alkalmazás újraépítéséhez:
dotnet buildEz körülbelül 5 percet vehet igénybe.
Futtassa az alkalmazást:
dotnet runAz alkalmazás 100 egyidejűleg futó eszközt szimulál. Hagyja, hogy az alkalmazás néhány percig fusson, majd az Enter billentyűt lenyomva állítsa le.
Egy másik alkalmazás létrehozása és futtatása a MongoDB-adatbázis lekérdezéséhez
Lépjen a DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery mappába:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQueryEz a mappa egy másik alkalmazást tartalmaz, amellyel elemezheti az egyes eszközök által rögzített adatokat.
A Program.cs fájl vizsgálatához használja a Code szerkesztőt:
code Program.csAz alkalmazás csatlakozik az adatbázishoz (a fájl alján található ConnectToDatabase metódus használatával), majd egy eszközszámot kér a felhasználótól. Az alkalmazás a .NET-keretrendszer MongoDB-kódtárával hoz létre és futtat egy összesített folyamatot, amely kiszámítja a megadott eszköz alábbi statisztikáit:
- A rögzített leolvasások száma.
- A rögzített átlagos hőmérséklet.
- A legalacsonyabb érték.
- A legmagasabb érték.
- A legújabb olvasat.
Zárja be a kódszerkesztőt, majd nyissa meg a App.config fájlt:
code App.configÁllítsa a Cím kulcs értékét a mongoDB-kiszolgáló korábban rögzített IP-címére.
Módosítsa az alkalmazás által a 8080 használt portot.
Mentse a fájlt, és zárja be a szerkesztőt CTRL + s, majd CTRL + q használatával.
Az alkalmazás létrehozása és futtatása:
dotnet build dotnet runAz Adja meg az eszközszám parancssorban adjon meg egy 0 és 99 közötti értéket. Az alkalmazás lekérdezi az adatbázist, kiszámítja a statisztikákat, és megjeleníti az eredményeket. Az alkalmazásból való kilépéshez nyomja le Q.
A MongoDB-adatbázis migrálása a Cosmos DB-be
A következő lépés a MongoDB-adatbázis áthelyezése a Cosmos DB-be.
Cosmos-fiók és -adatbázis létrehozása
Térjen vissza az Azure Portalra.
A menüben válassza a + Erőforrás létrehozásalehetőséget.
Az Új lapon, a Marketplace keresése mezőben írja be, hogy *Azure Cosmos DB, majd nyomja meg az Enter billentyűt.
Az Azure Cosmos DB lapon válassza Létrehozás.
Az Azure Cosmos DB-fiók létrehozása lapon adja meg a következő beállításokat:
Ingatlan Érték Erőforráscsoport mongodbrg Fióknév mongodb*nnn*, ahol nnn egy ön által kiválasztott véletlenszerű szám API MongoDB API-hoz készült Azure Cosmos DB Notebooks Ki Elhelyezkedés Adja meg ugyanazt a helyet, amelyet a MongoDB-kiszolgálóhoz és a virtuális hálózathoz használt Kapacitásmód Kiosztott átviteli sebesség Ingyenes szintű kedvezmény alkalmazása alkalmazása Fiók típusa nem éles verzió 3.6 Földrajzi redundancia letiltása Többrégiós írások letiltása Availability Zones letiltása Válassza a Véleményezés + létrehozás lehetőséget.
Az érvényesítési lapon válassza a létrehozása lehetőséget, és várja meg a Cosmos DB-fiók üzembe helyezését.
Az Azure Portal menüjében válassza a Minden erőforráslehetőséget, majd válassza ki az új Cosmos DB-fiókot (mongodbnnn).
A mongodbnnn lapon válassza Adatkezelőlehetőséget.
Az Adatkezelő panelen válassza Új gyűjteménylehetőséget.
A Gyűjtemény hozzáadása panelen adja meg a következő beállításokat:
Ingatlan Érték Adatbázis-azonosító Válassza a Új létrehozása lehetőséget, majd írja be DeviceData Adatbázis átviteli sebességének kiépítése kijelölt Áteresztőképesség 10000 Gyűjtemény azonosítója hőmérsékletek Tárolókapacitás Korlátlan Felosztókulcs deviceID A szeletkulcs nagyobb, mint 100 bájt hagyja kijelöletlenül Helyettesítő karakter index létrehozása minden mezőn hagyja kijelöletlenül Elemző tároló Ki Válassza az OK gombot.
Az Adatbázis-migrálási szolgáltatás létrehozása
Váltson vissza az Azure Portalra.
Kattintson az Összes szolgáltatás elemre, majd az Előfizetések elemre, majd az előfizetésre.
Az előfizetési lapon a Beállítások csoportban kattintson az Erőforrás-szolgáltatók elemre.
A Szűrés név szerint mezőbe írja be DataMigration kifejezést, majd kattintson a Microsoft.DataMigration elemre.
Ha a Microsoft.DataMigration nincs regisztrálva, kattintson a Regisztráció gombra, és várja meg, amíg az állapot regisztrálva lesz. Előfordulhat, hogy az állapotváltozás megtekintéséhez a Frissítés gombra kell kattintania.
Az Azure Portal menüjében válassza a + Erőforrás létrehozásalehetőséget.
Az Új lap Keresés a Marketplace mezőben írja be Azure Database Migration Service, majd nyomja le az Enter billentyűt.
Az Azure Database Migration Service oldalán válassza a Létrehozás lehetőséget.
A Migrálási szolgáltatás létrehozása lapon adja meg a következő beállításokat:
Ingatlan Érték Erőforráscsoport mongodbrg Szolgáltatás neve MongoDBMigration Elhelyezkedés Válassza a korábban használt helyet Szolgáltatásmód Kék Árkategória Standard: 1 virtuális mag Válassza a Tovább: Hálózatkezelés lehetőséget.
A Hálózatkezelés lapon válassza databasevnet/alapértelmezett, majd válassza a Véleményezés + létrehozáslehetőséget.
Válassza létrehozása lehetőséget, és várja meg, amíg a szolgáltatás üzembe lesz helyezve a folytatás előtt. Ez a művelet körülbelül 10 percet vehet igénybe.
Új migrálási projekt létrehozása és futtatása
Az Azure Portal menüjében válassza erőforráscsoportoklehetőséget.
Az Erőforráscsoportok ablakban válassza mongodbrglehetőséget.
A mongodbrg ablakban válassza MongoDBMigrationlehetőséget.
Az MongoDBMigration lapon válassza a + Új áttelepítési projektlehetőséget.
Az Új áttelepítési projekt lapon adja meg a következő beállításokat:
Ingatlan Érték Projekt neve MigrateTemperatureData Forráskiszolgáló típusa MongoDB Célkiszolgáló típusa Cosmos DB (MongoDB API) Válassza ki a tevékenység típusát Offline adatmigrálás Válassza Tevékenység létrehozása és futtatásalehetőséget.
A migrálási varázsló elindulásakor a Forrás részletei lapon adja meg a következő adatokat:
Ingatlan Érték Üzemmód Standard mód Forráskiszolgáló neve Adja meg a korábban rögzített mongodbserver-ip IP-cím értékét Kiszolgálóport 8080 Felhasználónév rendszergazda Jelszó Pa55w.rd SSL megkövetelése törölve a kijelölésből Válassza a Tovább: Célkiválasztása lehetőséget.
A Cél kiválasztása lapon adja meg a következő adatokat:
Ingatlan Érték Üzemmód Válassza ki a Cosmos DB célpontot Comos DB-név kiválasztása mongodb*nnn* Csatlakozási karakterlánc Fogadja el a Cosmos DB-fiókhoz létrehozott kapcsolati karakterláncot Válassza Tovább: Adatbázis beállításalehetőséget.
Az Adatbázis beállítása lapon adja meg a következő adatokat:
Ingatlan Érték Forrásadatbázis DeviceData Céladatbázis DeviceData Átbocsátás (RU/s) 1000 Gyűjtemények törlése A mező törlése Válassza Tovább: Gyűjtemény beállításalehetőséget.
A Gyűjtemény beállítás lapon válassza a DeviceData adatbázis melletti legördülő nyilat, és adja meg a következő adatokat:
Ingatlan Érték Név hőmérsékletek Target gyűjtemény hőmérsékletek Átbocsátás (RU/s) 1000 Szegmenskulcs deviceID Egyedülálló Hagyja üresen Válassza a következőt: Migrálás összegzése.
Az Áttelepítés összegzése lapon, a Tevékenység neve mezőben adja meg mongodb-migration, majd válassza Áttelepítés indításalehetőséget.
A mongodb-migration lapon válassza Frissítés 30 másodpercenként, amíg az áttelepítés befejeződik. Figyelje meg a feldolgozott dokumentumok számát.
Ellenőrizze, hogy a migrálás sikeres volt-e
Az Azure Portal menüjében válassza a Minden erőforráslehetőséget.
A Minden erőforrás lapon válassza mongodbnnnlehetőséget.
A mongodb*nnn lapon válassza Adatkezelőlehetőséget.
Az Data Explorer panelen bontsa ki a DeviceData adatbázist, bontsa ki a Hőmérsékletek gyűjteményt, majd válassza Dokumentumoklehetőséget.
Az Dokumentumok panelen görgessen végig a dokumentumok listáján. Minden dokumentumhoz látnia kell egy dokumentumazonosítót (_id) és a szegmenskulcsot (/deviceID).
Jelöljön ki egy dokumentumot. Látnia kell a dokumentum részleteit. Egy tipikus dokumentum a következőképpen néz ki:
{ "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"), "deviceID" : "Device 83", "temperature" : 19.65268837271849, "time" : 636943091952553500 }A Dokumentumkezelő panel eszköztárán válassza New Shelllehetőséget.
A Shell 1 panelen, a > parancssorban adja meg a következő parancsot, majd nyomja le az Enter billentyűt:
db.Temperatures.count()Ez a parancs a Hőmérsékletek gyűjtemény dokumentumainak számát jeleníti meg. Ennek meg kell egyeznie a Migrálás varázsló által jelentett számmal.
Írja be a következő parancsot, majd nyomja le az Enter billentyűt:
db.Temperatures.find({deviceID: "Device 99"})Ez a parancs lekéri és megjeleníti a Device 99 dokumentumait.
Meglévő alkalmazások újrakonfigurálása és futtatása a Cosmos DB használatához
Az utolsó lépés a meglévő MongoDB-alkalmazások újrakonfigurálása a Cosmos DB-hez való csatlakozáshoz, és annak ellenőrzése, hogy továbbra is működnek-e. Ehhez módosítania kell az alkalmazások adatbázishoz való kapcsolódásának módját, de az alkalmazások logikájának változatlannak kell maradnia.
A mongodbnnn panel Beállítások területén válassza a Kapcsolati karakterlánc lehetőséget.
A
mongodb nnn Kapcsolati karakterlánc oldalon jegyezze fel a következő beállításokat:- Házigazda
- Felhasználónév
- Elsődleges jelszó
Térjen vissza a Cloud Shell ablakához (ha a munkamenet túllépte az időkorlátot), és lépjen a migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery mappába:
cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQueryNyissa meg a App.config fájlt a Kódszerkesztőben:
code App.configA MongoDB beállításai szakaszában megjegyzést fűzzön a meglévő beállításokhoz.
Törölje a Cosmos DB Mongo API beállításai szakasz beállításait, és állítsa be az alábbi beállítások értékeit:
Beállítás Érték Cím A HOST a mongodbnnn kapcsolati string oldalán található. Kikötő A PORT a mongodbnnn kapcsolati sztring oldaláról Felhasználónév A felhasználónév a mongodbnnn Kapcsolati Sztring oldalról Jelszó A ELSŐDLEGES JELSZÓ a mongodbnnn kapcsolati lánc oldalán A kész fájlnak a következőhöz hasonlóan kell kinéznie:
<?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>Mentse a fájlt, majd zárja be a Kódszerkesztőt.
Nyissa meg a Program.cs fájlt a Kódszerkesztővel:
code Program.csGörgessen le a ConnectToDatabase metódushoz.
Megjegyzést fűzhet a MongoDB-hez való csatlakozás hitelesítő adatait meghatározó sorhoz, és törölje a Cosmos DB-hez való csatlakozáshoz szükséges hitelesítő adatokat meghatározó utasításokat. A kódnak így kell kinéznie:
// 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 });Ezek a módosítások azért szükségesek, mert az eredeti MongoDB-adatbázis nem használt SSL-kapcsolatot. A Cosmos DB mindig SSL-t használ.
Mentse a fájlt, majd zárja be a Kódszerkesztőt.
Az alkalmazás újraépítése és futtatása:
dotnet build dotnet runAz Adja meg az eszközszámot parancssorban adjon meg egy 0 és 99 közötti eszközszámot. Az alkalmazásnak pontosan a korábbiakhoz hasonlóan kell futnia, kivéve, hogy ezúttal a Cosmos DB-adatbázisban tárolt adatokat használja.
Lekérdezési teljesítmény javítása a Cosmos DB-ben
A Cosmos DB lehetővé teszi további indexek hozzáadását a lekérdezési teljesítmény javítása érdekében. Mivel a deviceID-t összesítjük, a mező indexként való hozzáadása felgyorsítja a lekérdezéseket.
Váltson vissza az Azure Portalra.
A bal oldalon válassza Adatkezelőlehetőséget.
Az Adatkezelő panelen bontsa ki a DeviceData adatbázist, bontsa ki a Hőmérsékletek gyűjteményt, majd válassza Beállításoklehetőséget.
Válassza a Indexelési szabályzat lehetőséget.
Az _id alatt vegyen fel egy új indexet, adja meg a Definition számára a deviceID-t, majd válassza az Egimezejű lehetőséget a Típusnál.
Válassza a Mentés lehetőséget az új index hozzáadásához.
Térjen vissza a Cloud Shellbe a lekérdezés ismételt kipróbálásához, és figyelje meg az alkalmazás továbbfejlesztett válaszát.
Tesztelje az alkalmazást más eszközszámokkal. A befejezéshez adja meg Q.
Sikeresen migrált egy MongoDB-adatbázist a Cosmos DB-be, és újrakonfigurált egy meglévő MongoDB-alkalmazást az új Cosmos DB-adatbázishoz való csatlakozáshoz.
A létrehozott erőforrások törlése
Fontos
Ha ezeket a lépéseket a saját személyes előfizetésében hajtotta végre, egyenként törölheti az erőforrásokat, vagy törölheti az erőforráscsoportot a teljes erőforráskészlet törléséhez. A továbbra is futó erőforrások pénzbe kerülhetnek.
A Cloud Shell használatával futtassa ezt a parancsot az erőforráscsoport törléséhez:
az group delete --name mongodbrg