Migrieren von Daten zu Azure Cosmos DB mithilfe des Desktop-Datenmigrationstools
GILT FÜR: NoSQL MongoDB Tabelle
Das Desktop-Datenmigrationstool von Azure Cosmos DB ist eine Open-Source-Befehlszeilenanwendung zum Importieren oder Exportieren von Daten aus Azure Cosmos DB. Das Tool kann Daten in viele und aus vielen Quellen und Senken migrieren, einschließlich, aber nicht beschränkt auf:
- Azure Cosmos DB for NoSQL
- Azure Cosmos DB for MongoDB
- Azure Cosmos DB for Table
- Azure-Tabellenspeicher
- JSON
- MongoDB
- SQL Server
Wichtig
In diesem Leitfaden führen Sie eine Datenmigration von JSON zu Azure Cosmos DB for NoSQL durch.
Voraussetzungen
- Ein vorhandenes Azure Cosmos DB for NoSQL-Konto.
- Falls Sie bereits über ein Azure-Abonnement verfügen, erstellen Sie ein neues Konto.
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Alternativ können Sie Azure Cosmos DB kostenlos testen, bevor Sie sich festlegen.
- Neueste Version von Azure CLI.
- .NET 6.0 oder höher.
Installieren des Desktop-Datenmigrationstools
Installieren Sie zunächst die neueste Version des Desktop-Datenmigrationstools aus dem GitHub-Repository.
Hinweis
Das Desktop-Datenmigrationstool erfordert .NET 6.0 oder höher auf Ihrem lokalen Computer.
Navigieren Sie in Ihrem Browser zum Abschnitt Releases des Repositorys azurecosmosdb/data-migration-desktop-tool/releases.
Laden Sie den neuesten komprimierten Ordner für Ihre Plattform herunter. Es gibt komprimierte Ordner für die Plattformen win-x64, mac-x64 und linux-x64.
Extrahieren Sie die Dateien an einen Installationsspeicherort auf Ihrem lokalen Computer.
(Optional) Fügen Sie das Desktop-Datenmigrationstool der Umgebungsvariablen „
PATH
“ Ihres lokalen Computers hinzu.
Vorbereiten des Migrationsziels
Erstellen Sie als Nächstes eine Zieldatenbank und einen Container im Azure Cosmos DB for NoSQL-Konto.
Öffnen Sie ein neues Terminal. Melden Sie sich bei Azure CLI an, falls Sie dies noch nicht getan haben.
Erstellen Sie neue Shellvariablen für den Namen und die Ressourcengruppe des Azure Cosmos DB-Kontos.
# Variable for Azure Cosmos DB account name accountName="<name-of-existing-account>" # Variable for resource group name resourceGroupName="<name-of-existing-resource-group>"
Erstellen Sie eine neue Datenbank mit
az cosmosdb sql database create
. Nennen Sie die neue Datenbank „cosmicworks
“, und konfigurieren Sie die Datenbank mit 400 RU/s freigegebenem Durchsatz.az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400
Verwenden Sie
az cosmosdb sql container create
, um einen neuen Container mit dem Namen „products
“ innerhalb der Datenbank „cosmicworks
“ zu erstellen. Legen Sie den Partitionsschlüsselpfad des neuen Containers auf/category
fest.az cosmosdb sql container create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name cosmicworks \ --name products \ --partition-key-path "/category"
Suchen Sie die Primäre Verbindungszeichenfolge aus der Liste der Schlüssel für das Konto mit
az cosmosdb keys list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings
Notieren Sie den Wert der Primäre Verbindungszeichenfolge. Sie benötigen diese Anmeldeinformationen später beim Migrieren von Daten mit dem Tool.
Ausführen eines Migrationsvorgangs
Migrieren Sie nun Daten aus einem JSON-Array in den neu erstellten Azure Cosmos DB for NoSQL-Container.
Navigieren Sie zu einem leeren Verzeichnis auf Ihrem lokalen Computer. Erstellen Sie in diesem Verzeichnis eine neue Datei namens migrationsettings.json.
Erstellen Sie in der JSON-Datei ein neues leeres JSON-Objekt:
{}
Erstellen Sie eine neue Eigenschaft namens „
Source
“ mit dem Wert „json
“. Erstellen Sie eine weitere neue Eigenschaft namens „SourceSettings
“ mit einem leeren Objekt als Wert.{ "Source": "json", "SourceSettings": {} }
Erstellen Sie innerhalb des
SourceSettings
-Objekts eine neue Eigenschaft namens „FilePath
“ wobei der Wert auf diesen URI „https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json“ festgelegt ist.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" } }
Erstellen Sie eine weitere neue Eigenschaft namens „
Sink
“ mit dem Wert „cosmos-nosql
“. Erstellen Sie außerdem eine Eigenschaft namens „SinkSettings
“ mit einem leeren Objekt.{ "Source": "json", "SourceSettings": { "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json" }, "Sink": "cosmos-nosql", "SinkSettings": { } }
Erstellen Sie innerhalb von
SinkSettings
eine Eigenschaft namens „ConnectionString
“ mit der primären Verbindungszeichenfolge, die Sie zuvor in dieser Anleitung als Wert aufgezeichnet haben.{ "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>" } }
Fügen Sie die Eigenschaften
Database
,Container
undPartitionKeyPath
mitcosmicworks
,products
und/category
als Werte hinzu.{ "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" } }
Speichern Sie die Datei migrationsettings.json.
Öffnen Sie ein neues Terminal, und navigieren Sie zu dem Verzeichnis, das Ihre Datei migrationsettings.json enthält.
Führen Sie das Desktop-Datenmigrationstool mithilfe des Befehls „
dmt
“ aus.dmt
Hinweis
Wenn Sie der Umgebungsvariablen nicht den Installationspfad „
PATH
“ hinzugefügt haben, müssen Sie möglicherweise den vollständigen Pfad zur ausführbaren Datei „dmt
“ angeben.Das Tool gibt nun die Quellen und Senken aus, die für die Migration verwendet werden.
Using JSON Source Using Cosmos-nosql Sink