練習:將 MongoDB 工作負載遷移至 Cosmos DB

已完成

您任職的公共事業公司具有收集溫度資料的 IoT 感應器。 溫度會與時間戳記一起記錄在 MongoDB 資料庫中。 每個裝置都有唯一的識別碼。 您將會執行可模擬這些裝置的 MongoDB 應用程式,並將資料儲存在資料庫中。 您也會使用第二個應用程式,讓使用者查詢每個裝置的統計資訊。 將資料庫從 MongoDB 遷移至 Cosmos DB 之後,您會將這兩個應用程式設定為連線至 Cosmos DB,並確認其仍然正常運作。

在此練習中,您將會採用現有的 MongoDB 資料庫,並將其遷移至 Cosmos DB。 您會使用 Azure 資料庫移轉服務。 您也會了解如何重新設定現有的應用程式,而這些應用程式會使用 MongoDB 資料庫改為連線至 Cosmos DB 資料庫。

重要

免費的 Azure 沙箱環境不支援 Azure 資料移轉服務。 您可以在自己的訂用帳戶中執行這些步驟,或是遵循以了解如何遷移資料庫。

在 Azure 中建立 MongoDB 資料庫

首先,您要建立 MongoDB 資料庫來保存從溫度裝置擷取的資料。

建立資源群組和虛擬網路

  1. 使用網頁瀏覽器開啟新的索引標籤,然後瀏覽至 Azure 入口網站

  2. 在 Azure 入口網站中,選取 [資源群組],然後選取 [+新增]

  3. 在 [建立資源群組] 頁面上,輸入下列詳細資料:

    屬性
    訂用帳戶 <您的訂用帳戶>
    資源群組 mongodbrg
    區域 選取最接近您的位置
  4. 選取 [檢閱 + 建立],然後選取 [建立]。 等候資源群組建立。

  5. 在 Azure 入口網站的功能表中,選取 [+ 建立資源]

  6. 在 [新增] 頁面的 [搜尋 Marketplace] 方塊中,輸入虛擬網路,然後按下 Enter 鍵。

  7. [虛擬網路] 頁面上,選取 [建立]

  8. 在 [建立虛擬網路] 頁面上,輸入下列詳細資料,然後選取 [下一步:IP 位址]

    屬性
    資源群組 mongodbrg
    名稱 databasevnet
    區域 選取為資源群組指定的相同位置
  9. 在 [IP 位址] 頁面上,將 [IPv4 位址空間] 設定為 10.0.0.0/24

  10. 選取預設子網路,然後選取 [移除子網路]

  11. 選取 [+ 新增子網路]。 在 [新增子網路] 窗格中,將 [子網路名稱] 設定為預設值,將 [子網路位址範圍] 設定為 10.0.0.0/28,然後選取 [新增]

  12. 在 [IP 位址] 頁面上,選取 [下一步:安全性]

  13. [安全性] 頁面上,確認 [Azure DDoS 網路保護] 已設為 [停用],而且 [防火牆] 也設為 [停用]。 選取 [檢閱 + 建立]。

  14. 在 [建立虛擬網路] 頁面上,選取 [建立]。 等候虛擬網路建立,然後再繼續。

建立 MongoDB 資料庫伺服器

  1. 在 Azure 入口網站的功能表中,選取 [+ 建立資源]

  2. 在 [搜尋 Marketplace] 方塊中鍵入 Ubuntu,然後按 Enter。

  3. 在 [Marketplace] 頁面上,選取 [Ubuntu Server 18.04 LTS]

  4. 在 [Ubuntu Server 18.04 LTS] 頁面上,選取 [建立]

  5. 在 [建立虛擬機器] 頁面上,輸入下列詳細資料:

    屬性
    資源群組 mongodbrg
    虛擬機器名稱 mongodbserver
    區域 選取為資源群組指定的相同位置
    可用性選項 無需基礎結構備援
    映像 Ubuntu Server 18.04 LTS - Gen1
    Azure Spot 執行個體 未選取
    大小 Standard A1_v2
    驗證類型 密碼
    使用者名稱 azureuser
    密碼 Pa55w.rdPa55w.rd
    確認密碼 Pa55w.rdPa55w.rd
    公用輸入連接埠 允許選取的連接埠
    選取輸入連接埠 SSH (22)
  6. 完成時,選取 [下一步: 磁碟]。

  7. 在 [磁碟] 頁面上,保留設定的預設值,然後選取 [下一步:網路]>

  8. 在 [網路] 頁面上,輸入下列詳細資料:

    屬性
    虛擬網路 databasevnet
    子網路 預設值 (10.0.0.0/28)
    公用 IP (新) mongodbserver-ip
    NIC 網路安全性群組 進階
    設定網路安全性群組 (新) mongodbserver-nsg
    加速網路 未選取
    負載平衡 未選取
  9. 選取 [檢閱 + 建立>]。

  10. 在驗證頁面上,選取 [建立]

  11. 等候虛擬機器部署後再繼續

  12. 在 Azure 入口網站的功能表中,選取 [所有資源]

  13. 在 [所有資源] 頁面上,選取 [mongodbserver-nsg]

  14. 在 [mongodbserver-nsg] 頁面的 [設定] 底下,選取 [輸入安全性規則]

  15. 在 [mongodbserver-nsg - 輸入安全性規則] 頁面上,選取 [+ 新增]

  16. 在 [新增輸入安全性規則] 窗格中,輸入下列詳細資料:

    屬性 數值
    來源 任何
    來源連接埠範圍 *
    Destination 任意
    目的地連接埠範圍 8080
    通訊協定 任意
    動作 允許
    優先順序 1030
    名稱 Mongodb-port
    描述 用戶端用來連線到 MongoDB 的連接埠
  17. 選取新增

注意

您將在此練習中將 MongoDB 設定為使用連接埠 8080。 因為此環境中的安全性條件約束,所以您只需要這麼做。 您通常會使用預設的 MongoDB 連接埠 27017

安裝 MongoDB

  1. 在 Azure 入口網站的功能表中,選取 [所有資源]

  2. 在 [所有資源] 頁面上,選取 [mongodbserver-ip]

  3. 在 [mongodbserver-ip] 頁面上,記下 IP 位址

  4. 在 Azure 入口網站頂端的工具列中,選取 [Cloud Shell]

  5. 如果出現 [您未掛接任何儲存體] 訊息方塊,請選取 [建立儲存體]

  6. 當 Cloud Shell 啟動時,在 [Cloud Shell] 視窗上方的下拉式清單中,選取 [Bash]

  7. 在 Cloud Shell 視窗中,輸入下列命令以連線到 mongodbserver 虛擬機器。 將 [IP 位址] 取代為 mongodbserver-ip IP 位址的值:<>

    ssh azureuser@<ip address>
    
  8. 出現提示時,輸入 yes 繼續連線。

  9. 輸入密碼 Pa55w.rdPa55w.rd

  10. 若要重新載入套件資料庫,請輸入下列命令:

    sudo apt-get update
    
  11. 若要安裝 MongoDB,請輸入下列命令:

    sudo apt-get install -y mongodb
    

    安裝作業應該繼續,並且有安裝、準備和解除封裝套件的相關訊息。 需要幾分鐘時間讓安裝完成。

設定 MongoDB 資料庫

根據預設,Mongo DB 執行個體會設定為在沒有驗證的情況下執行。 在此工作中,您會將 MongoDB 設定為繫結至區域網路介面,使其可以接受來自其他電腦的連線。 您也會啟用驗證並建立必要的使用者帳戶,以執行移轉。 最後,您將會新增測試應用程式可用來查詢資料庫的帳戶。

  1. 若要開啟 MongoDB 組態檔,請執行下列命令:

    sudo nano /etc/mongodb.conf
    
  2. 在檔案中,找出 [bind_ip] 設定,並將其設定為 0.0.0.0

  3. 找出 [連接埠] 設定,並將其設定為 8080

  4. 若要儲存組態檔,請按下 Esc 鍵,然後按下 CTRL + X。按下 y,然後按下 Enter 鍵以儲存修改過的緩衝區。

  5. 若要重新啟動 MongoDB 服務並套用您的變更,請輸入下列命令:

    sudo service mongodb restart
    
  6. 若要連線到 MongoDB 服務,請輸入下列命令:

    mongo --host 127.0.0.1:8080
    
  7. > 提示字元中,若要切換至 [管理] 資料庫,請執行下列命令:

    use admin;
    
  8. 若要建立名為 administrator 的新使用者,請執行下列命令。 您可以在一行中或跨多行輸入命令,以提升可讀性。 當 mongo 程式到達分號時,會執行此命令:

    db.createUser(
        {
            user: "administrator",
            pwd: "Pa55w.rd",
            roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "clusterMonitor", db:"admin" },
                "readWriteAnyDatabase"
            ]
        }
    );
    
  9. 若要結束 mongo 程式,請輸入此命令;

    exit;
    
  10. 若要使用新的系統管理員帳戶連線到 MongoDB,請執行下列命令:

    mongo admin -u "administrator" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  11. 若要切換至 DeviceData 資料庫,請執行下列命令:

    use DeviceData;    
    
  12. 若要建立名為 deviceadmin 的使用者,讓應用程式用來連線到資料庫,請執行下列命令:

    db.createUser(
        {
            user: "deviceadmin",
            pwd: "Pa55w.rd",
            roles: [ { role: "readWrite", db: "DeviceData" } ]
        }
    );
    
  13. 若要結束 mongo 程式,請輸入此命令;

    exit;
    
  14. 執行下列命令,重新啟動 mongodb 服務。 確認服務在沒有任何錯誤訊息的情況下重新啟動:

    sudo service mongodb restart
    
  15. 執行下列命令,確認您現在可以使用 deviceadmin 使用者的身分登入 mongodb:

    mongo DeviceData -u "deviceadmin" -p "Pa55w.rd" --host 127.0.0.1:8080
    
  16. > 提示字元中執行下列命令,以結束 mongo Shell:

    exit;
    
  17. 在 bash 提示字元中,執行下列命令以中斷與 MongoDB 伺服器的連線,並返回 Cloud Shell:

    exit
    

填入和查詢 MongoDB 資料庫

您現在已建立 MongoDB 伺服器和資料庫。 下一步是示範可填入和查詢此資料庫中資料的範例應用程式。

建置並執行應用程式以填入 MongoDB 資料庫

  1. 在 Azure Cloud Shell 中,執行下列命令來下載範例程式碼:

    git clone https://github.com/MicrosoftLearning/DP-060T00A-Migrating-your-Database-to-Cosmos-DB migration-workshop-apps
    
  2. 移至 migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceCapture 資料夾:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/MongoDeviceDataCapture
    
  3. 使用程式碼編輯器來檢查 TemperatureDevice.cs 檔案:

    code TemperatureDevice.cs
    

    此檔案中的程式碼包含名為 TemperatureDevice 的類別,可模擬擷取資料的溫度裝置,並且將其儲存在 MongoDB 資料庫中。 會使用適用於 .NET Framework 的 MongoDB 程式庫。 TemperatureDevice 建構函式會使用儲存在應用程式組態檔中的設定,連線到資料庫。 RecordTemperatures 方法會產生讀數,並將其寫入至資料庫。

  4. 關閉程式碼編輯器,然後開啟 ThermometerReading.cs 檔案:

    code ThermometerReading.cs
    

    此檔案會顯示應用程式儲存在資料庫中的文件結構。 每份文件都包含下列欄位:

    • 物件識別碼。 這是 MongoDB 產生的 "_id" 欄位,可唯一識別每份文件。
    • 裝置識別碼。 每個裝置都有一個首碼為 "Device" 的數字。
    • 裝置所記錄的溫度。
    • 記錄溫度的日期和時間。
  5. 關閉程式碼編輯器,然後開啟 App.config 檔案:

    code App.config
    

    此檔案包含用來連線到 MongoDB 資料庫的設定。

  6. 位址索引鍵的值設定為您稍早記錄的 MongoDB 伺服器 IP 位址。

  7. 將應用程式使用的連接埠變更為 8080

  8. 依序使用 CTRL + sCTRL + q,儲存檔案然後關閉編輯器。

  9. 執行下列命令以重建應用程式:

    dotnet build
    

    需要大約 5 分鐘的時間。

  10. 執行應用程式:

    dotnet run
    

    應用程式會模擬同時執行 100 部裝置。 允許應用程式執行數分鐘,然後按下 Enter 鍵停止。

建置並執行另一個應用程式以查詢 MongoDB 資料庫

  1. 移至 DP160T00A-Migrating-your-Database-to-Cosmos-DB/MongoDeviceDataCapture/DeviceDataQuery 資料夾:

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

    此資料夾包含另一個應用程式,可讓您用來分析每部裝置所擷取的資料。

  2. 使用程式碼編輯器來檢查 Program.cs 檔案:

    code Program.cs
    

    應用程式會連線到資料庫 (使用檔案底部的 ConnectToDatabase 方法),然後向使用者提示裝置號碼。 應用程式會使用適用於 .NET Framework 的 MongoDB 程式庫,以建立並執行彙總管道,計算指定裝置的下列統計資料:

    • 記錄的讀數數目。
    • 記錄的平均溫度。
    • 最低讀數。
    • 最高讀數。
    • 最新讀數。
  3. 關閉程式碼編輯器,然後開啟 App.config 檔案:

    code App.config
    
  4. 位址索引鍵的值設定為您稍早記錄的 MongoDB 伺服器 IP 位址。

  5. 將應用程式使用的連接埠變更為 8080

  6. 依序使用 CTRL + sCTRL + q,儲存檔案然後關閉編輯器。

  7. 建置並執行應用程式:

    dotnet build
    dotnet run
    
  8. 在 [輸入裝置號碼] 提示字元中,輸入介於 0 和 99 之間的值。 應用程式會查詢資料庫、計算統計資料,並顯示結果。 按下 Q 鍵以結束應用程式。

將 MongoDB 資料庫遷移至 Cosmos DB

下一步是取得 MongoDB 資料庫,並將其傳輸至 Cosmos DB。

建立 Cosmos 帳戶和資料庫

  1. 返回 Azure 入口網站。

  2. 在功能表中選取 [+ 建立資源]

  3. 在 [新增] 頁面的 [搜尋 Marketplace] 方塊中,鍵入* Azure Cosmos DB,然後按下 Enter 鍵。

  4. [Azure Cosmos DB] 頁面上,選取 [建立]

  5. 在 [建立 Azure Cosmos DB 帳戶] 頁面上,輸入下列設定:

    屬性
    資源群組 mongodbrg
    客戶名稱 mongodb*nnn*,其中 nnn 是您選取的隨機數字
    API 適用於 MongoDB 的 Azure Cosmos DB API
    Notebooks 關閉
    位置 指定您用於 MongoDB 伺服器和虛擬網路的相同位置
    容量模式 佈建的輸送量
    套用免費層折扣 套用
    帳戶類型 非生產環境
    版本 3.6
    異地備援 停用
    多重區域寫入 停用
    可用性區域 停用
  6. 選取 [檢閱 + 建立]。

  7. 在驗證頁面上,選取 [建立],然後等候 Cosmos DB 帳戶進行部署。

  8. 在 Azure 入口網站的功能表中,選取 [所有資源],然後選取您的新 Cosmos DB 帳戶 (mongodbnnn)。

  9. 在 [mongodbnnn] 頁面上,選取 [資料總管]

  10. 在 [資料總管] 窗格中,然後選取 [新增集合]

  11. 在 [新增集合] 窗格中,指定下列設定:

    屬性
    資料庫識別碼 選取 [新建],然後輸入 DeviceData
    佈建資料庫輸送量 已選取
    輸送量 10000
    集合識別碼 溫度
    儲存容量 無限制
    分區金鑰 deviceID
    我的分區索引鍵大於 100 個位元組 保留取消選取
    在所有欄位上建立萬用字元索引 保留取消選取
    分析存放區 關閉
  12. 選取 [確定]。

建立資料庫移轉服務

  1. 切換回到 Azure 入口網站。

  2. 按一下 [所有服務],按一下 [訂閱],再按一下您的訂閱。

  3. 在您的訂閱頁面上,於 [設定] 下方按一下 [資源提供者]

  4. 在 [依名稱篩選] 方塊中,鍵入 DataMigration,再按一下 Microsoft.DataMigration

  5. 若尚未註冊 [Microsoft.DataMigration],按一下 [註冊],等待 [狀態] 變更為 [已註冊]。 可能需要按一下 [重新整理] 來查看狀態是否變更。

  6. 在 Azure 入口網站的功能表中,選取 [+ 建立資源]

  7. 在 [新增] 頁面上,於 [搜尋 Marketplace] 方塊中,輸入 Azure 資料庫移轉服務,再按 ENTER 鍵。

  8. 在 [Azure 資料庫移轉服務] 頁面上,選取 [建立]

  9. 在 [建立移轉服務] 頁面上,輸入下列設定:

    屬性
    資源群組 mongodbrg
    服務名稱 MongoDBMigration
    位置 選取您先前使用的相同位置
    服務模式 Azure
    定價層 標準:1 個虛擬核心
  10. 選取 [下一步:網路]

  11. 在 [網路] 頁面上,選取 [databasevnet/預設值],然後選取 [檢閱 + 建立]

  12. 選取 [建立],然後等候服務部署後再繼續。 此作業可能需要 10 分鐘的時間。

建立並執行新移轉專案

  1. 在 Azure 入口網站的功能表中,選取 [資源群組]

  2. 在 [資源群組] 視窗中,選取 [mongodbrg]

  3. 在 [mongodbrg] 視窗中,選取 [MongoDBMigration]

  4. 在 [MongoDBMigration] 頁面上,選取 [+ 新增移轉專案]

  5. 在 [新增移轉專案] 頁面上,輸入下列設定:

    屬性
    專案名稱 MigrateTemperatureData
    來源伺服器類型 MongoDB
    目標伺服器類型 Cosmos DB (MongoDB API)
    選擇活動類型 離線資料移轉
  6. 選取 [建立及執行活動]

  7. 移轉精靈啟動時,在 [來源詳細資料] 頁面上輸入下列詳細資料:

    屬性
    模式 標準模式
    來源伺服器名稱 指定您稍早記錄的 mongodbserver-ip IP 位址值
    伺服器通訊埠 8080
    使用者名稱 administrator
    密碼 Pa55w.rd
    需要 SSL de-selected
  8. 選取 [下一步: 選取目標]

  9. 在 [選取目標] 頁面上輸入下列詳細資料:

    屬性
    模式 選取 Cosmos DB 目標
    選取 Cosmos DB 名稱 mongodb*nnn*
    Connection string 接受針對您的 Cosmos DB 帳戶產生的連接字串
  10. 選取 [下一步:資料庫設定]

  11. 在 [資料庫設定] 頁面上,輸入下列詳細資料:

    屬性
    來源資料庫 DeviceData
    目標資料庫 DeviceData
    輸送量 (RU/秒) 1000
    清除集合 清除此方塊
  12. 選取 [下一步:集合設定]

  13. 在 [集合設定] 頁面上,選取 DeviceData 資料庫的下拉式箭號,並輸入下列詳細資料:

    屬性
    名稱 溫度
    目標集合 溫度
    輸送量 (RU/秒) 1000
    分區金鑰 deviceID
    唯一 保留空白
  14. 選取 [下一步:移轉摘要]

  15. 在 [移轉摘要] 頁面的 [活動名稱] 欄位中,輸入 mongodb-migration,然後選取 [開始移轉]

  16. 在 [mongodb-migration] 頁面上,每隔 30 秒選取 [重新整理] 一次,直到完成移轉為止。 請注意已處理的文件數目。

確認移轉是否成功

  1. 在 Azure 入口網站的功能表中,選取 [所有資源]

  2. 在 [所有資源] 頁面上,選取 [mongodbnnn]

  3. 在 [mongodb*nnn] 頁面上,選取 [資料總管]

  4. 在 [資料總管] 窗格中,展開 [DeviceData] 資料庫,展開 [溫度] 集合,然後選取 [文件]

  5. 在 [文件] 窗格中,瀏覽文件清單。 您應該會看到文件識別碼 (_id),以及每份文件的分區索引鍵 (/deviceID)。

  6. 選取任何文件。 您應該會看到文件的詳細資料顯示出來。 典型的文件外觀如下所示:

    {
        "_id" : ObjectId("5ce8104bf56e8a04a2d0929a"),
        "deviceID" : "Device 83",
        "temperature" : 19.65268837271849,
        "time" : 636943091952553500
    }
    
  7. 在 [文件總管] 窗格的工具列中,選取 [新增 Shell]

  8. 在 [Shell 1] 窗格的 > 提示字元中,輸入下列命令,然後按下 Enter 鍵:

    db.Temperatures.count()
    

    此命令會顯示「溫度」集合中的文件數目。 應該符合「移轉精靈」所報告的數目。

  9. 輸入下列命令,然後按下 Enter 鍵:

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

    此命令會擷取並顯示「裝置 99」的文件。

重新設定並執行現有的應用程式以使用 Cosmos DB

最後一個步驟是重新設定現有的 MongoDB 應用程式以連線到 Cosmos DB,並確認其仍能運作。 這需要您修改應用程式連線至資料庫的方式,但是應用程式的邏輯應維持不變。

  1. 在 [mongodbnnn] 窗格的 [設定] 底下,選取 [連接字串]

  2. 在 [mongodbnnn] 連接字串 頁面上,記下下列設定:

    • Host
    • 使用者名稱
    • 主要密碼
  3. 返回 Cloud Shell 視窗 (如果工作階段逾時則重新連線),然後移至 migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery 資料夾:

    cd ~/migration-workshop-apps/MongoDeviceDataCapture/DeviceDataQuery
    
  4. 在程式碼編輯器中開啟 App.config 檔案:

    code App.config
    
  5. 在檔案的 [MongoDB 設定] 區段中,將現有的設定註解化。

  6. 在 [Cosmos DB Mongo API 的設定] 區段中將設定取消註解,並設定這些設定的值,如下所示:

    設定
    位址 [mongodbnnn 連接字串] 頁面的 [主機]
    Port [mongodbnnn 連接字串] 頁面的 [連接埠]
    使用者名稱 [mongodbnnn 連接字串] 頁面的 [使用者名稱]
    密碼 [mongodbnnn 連接字串] 頁面的 [主要密碼]

    完成的檔案看起來應如下所示:

    <?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. 儲存檔案,然後關閉程式碼編輯器。

  8. 在程式碼編輯器中開啟 Program.cs 檔案:

    code Program.cs
    
  9. 向下捲動至 ConnectToDatabase 方法。

  10. 將程式碼行註解化,該程式碼行會設定用來連線到 MongoDB 的認證,以及將陳述式取消註解,該陳述式會指定用來連線到 Cosmos DB 的認證。 程式碼看起來應該類似:

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

    這些變更是必要的,因為原始的 MongoDB 資料庫未使用 SSL 連線。 Cosmos DB 一律使用 SSL。

  11. 儲存檔案,然後關閉程式碼編輯器。

  12. 重建和執行應用程式:

    dotnet build
    dotnet run
    
  13. 在 [輸入裝置號碼] 提示字元中,輸入介於 0 和 99 之間的裝置號碼。 應用程式的執行方式應該與之前完全相同,但是這次使用 Cosmos DB 資料庫中保存的資料。

改善 Cosmos DB 中的查詢效能

Cosmos DB 可讓您新增更多索引來改善查詢效能。 當我們彙總了 deviceID 之後,將該欄位新增為索引會加速您的查詢。

  1. 切換回到 Azure 入口網站。

  2. 在左側選取 [資料總管]

  3. 在 [資料總管] 窗格中,展開 [DeviceData] 資料庫,展開 [溫度] 集合,然後選取 [設定]

    Screenshot showing adding a Cosmos DB indexing policy.

  4. 選取 [編製索引原則]

  5. 在 [_id] 底下新增索引,為 [定義] 輸入deviceID,然後為 [類型] 選取 [單一欄位]

  6. 選取 [儲存] 以新增索引。

  7. 返回您的 Cloud Shell,然後再試一次查詢,並在您的應用程式中記下改良的回應。

  8. 使用其他裝置號碼測試應用程式。 輸入 Q 以完成。

您已成功將 MongoDB 資料庫遷移至 Cosmos DB,並重新設定現有的 MongoDB 應用程式以連線到新的 Cosmos DB 資料庫。

清除已建立的資源

重要

若是在自己的個人訂閱中執行這些步驟,您即可個別刪除資源,或是刪除資源群組來刪除整組資源。 資源若繼續執行,將需付費。

  1. 使用 Cloud Shell 執行下列命令以刪除資源群組:

    az group delete --name mongodbrg