Azure Cosmos DB 桌面移轉工具是開放原始碼命令列應用程式,可從 Azure Cosmos DB 匯入或匯出資料。 此工具可以在許多來源和接收端之間遷移資料,包括但不限於:
- Azure Cosmos DB for NoSQL
- Azure Cosmos DB for MongoDB
- Azure Cosmos DB for Table
- Azure 資料表儲存體
- JSON
- MongoDB
- SQL Server
重要事項
針對本指南,您會執行從 JSON 將數據遷移至適用於 NoSQL 的 Azure Cosmos DB。
先決條件
安裝桌面資料移轉工具
首先,從 GitHub 存放庫安裝最新版本的桌面資料移轉工具。
附註
桌面資料移轉工具需要本機電腦上具有 .NET 6.0 或更新版本。
在您的瀏覽器中,瀏覽至存放庫的 [發行] 區段。
下載適用您平台的最新壓縮資料夾。 其中有適用於 win-x64、mac-x64 和 linux-x64 平台的壓縮資料夾。
將檔案解壓縮到本機電腦上的安裝位置。
(選擇性) 將桌面資料移轉工具新增至本機電腦的
PATH環境變數。
準備移轉目標
接下來,在 Azure Cosmos DB for NoSQL 帳戶上建立目標資料庫和容器。
開啟新的終端機。 如果您尚未登入,請先登入 Azure CLI。
為 Azure Cosmos DB 帳戶的名稱和資源群組建立新的殼層變數。
# Variable for Azure Cosmos DB account name accountName="<name-of-existing-account>" # Variable for resource group name resourceGroupName="<name-of-existing-resource-group>"使用
az cosmosdb sql database create建立新資料庫。 將新資料庫命名為cosmicworks,並為資料庫設定 400 RU/秒的共用輸送量。az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400使用
az cosmosdb sql container create在products資料庫內建立名為cosmicworks的新容器。 將新容器的分割區索引鍵路徑設定為/category。az cosmosdb sql container create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name cosmicworks \ --name products \ --partition-key-path "/category"使用 ,從帳戶的金鑰清單中尋找「主要連接字串」
az cosmosdb keys list。az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings記下 [主要連接字串] 值。 稍後使用工具遷移資料時,會用到此認證。
執行移轉作業
現在,將資料從 JSON 陣列遷移至新建立的 Azure Cosmos DB for NoSQL 容器。
瀏覽至本機電腦上的空白目錄。 在該目錄中,建立名為 migrationsettings.json 的新檔案。
在 JSON 檔案中,建立新的空白 JSON 物件:
{}建立值為
Source且名為json的新屬性。 建立另一個名為SourceSettings的新屬性,並以空物件當作其值。{ "Source": "json", "SourceSettings": {} }在
SourceSettings物件中,建立名為FilePath的新屬性,並將值設定為此 URI:https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json。{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" } }建立另一個值為
Sink且名為cosmos-nosql的新屬性。 此外,建立名為SinkSettings的屬性,並使用空物件。{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { } }在
SinkSettings中,建立名為ConnectionString的屬性,並以您稍早在本指南中記下的「主要連接字串」作為其值。{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>" } }新增
Database、Container和PartitionKeyPath屬性,並分別以cosmicworks、products和/category作為其值。{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { "ConnectionString": "<connection-string-for-existing-account>", "Database": "cosmicworks", "Container": "products", "PartitionKeyPath": "/category" } }儲存migrationsettings.json 檔案。
開啟新的終端,並瀏覽至包含您 migrationsettings.json 檔案的目錄。
使用
dmt命令執行桌面資料移轉工具。dmt附註
如果您未將安裝路徑新增至
PATH環境變數,您可能需要指定可執行檔的完整路徑dmt。此工具現在會輸出移轉所使用的來源和接收端。
Using JSON Source Using Cosmos-nosql Sink