Optionen zum Migrieren von lokalen oder Clouddaten zu Azure Cosmos DB

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Sie können Daten aus verschiedenen Datenquellen in Azure Cosmos DB laden. Azure Cosmos DB unterstützt verschiedene APIs, die als Ziele genutzt werden können. In den folgenden Szenarien werden Daten zu Azure Cosmos DB migriert:

  • Verschieben von Daten aus einem Azure Cosmos DB-Container in einen anderen Container im Azure Cosmos DB-Konto (es kann sich um dieselbe Datenbank oder eine andere Datenbank handeln).
  • Verschieben von Daten aus einem Azure Cosmos DB-Konto in ein anderes Azure Cosmos DB-Konto (es kann sich um dieselbe Region oder eine andere Region, dasselbe Abonnement oder ein anderes handeln).
  • Verschieben von Daten aus einer Quelle, z. B. Azure Blob Storage, einer JSON-Datei, Oracle-Datenbank, Couchbase oder DynamoDB nach Azure Cosmos DB

Um Migrationspfade aus den verschiedenen Quellen zu den unterschiedlichen Azure Cosmos DB-APIs zu unterstützen, gibt es mehrere Lösungen, die eine spezielle Behandlung für jeden Migrationspfad bereitstellen. In diesem Dokument werden die verfügbaren Lösungen aufgeführt und ihre Vor- und Nachteile beschrieben.

Faktoren für die Auswahl des Migrationstools

Die folgenden Faktoren haben Einfluss auf die Auswahl des Migrationstools:

  • Online- oder Offlinemigration: Viele Migrationstools bieten nur einen Pfad für eine einmalige Migration. Dies bedeutet, dass bei Anwendungen, die auf die Datenbank zugreifen, möglicherweise eine gewisse Ausfallzeit auftritt. Einige Migrationslösungen bieten eine Möglichkeit, eine Livemigration durchzuführen, bei der eine Replikationspipeline zwischen der Quelle und dem Ziel eingerichtet ist.

  • Datenquelle: Die vorhandenen Daten können sich in verschiedenen Datenquellen wie Oracle DB2, DataStax Cassanda, Azure SQL-Datenbank, PostgreSQL usw. befinden. Außerdem können sich die Daten auch in einem vorhandenen Azure Cosmos DB-Konto befinden und das Ziel der Migration besteht darin, das Datenmodell zu ändern oder die Daten in einem Container mit einem anderen Partitionsschlüssel neu zu partitionieren.

  • Azure Cosmos DB-API: Für die API für NoSQL in Azure Cosmos DB gibt es eine Reihe von Tools, die vom Azure Cosmos DB-Team für die unterschiedlichen Migrationsszenarien entwickelt wurden. Alle anderen APIs enthalten einen eigenen spezialisierten Satz von Tools, der von der Community entwickelt und verwaltet wird. Da Azure Cosmos DB diese APIs auf einer festen Protokollebene unterstützt, sollten diese Tools während der Migration von Daten zu Azure Cosmos DB ebenfalls unverändert funktionieren. Sie erfordern jedoch möglicherweise eine benutzerdefinierte Behandlung der Drosselung, da dieses Konzept für Azure Cosmos DB spezifisch ist.

  • Datengröße: Die meisten Migrationstools funktionieren bei kleineren Datasets sehr gut. Wenn das Dataset jedoch einige Hundert Gigabyte überschreitet, ist die Auswahl an Migrationstools beschränkt.

  • Erwartete Migrationsdauer: Migrationsvorgänge können so konfiguriert werden, dass sie langsam und schrittweise ausgeführt werden und damit weniger Durchsatz beanspruchen, oder so, dass der gesamten Durchsatz des Ziel Azure Cosmos DB-Zielcontainers genutzt wird, um die Migration in kürzerer Zeit abzuschließen.

Azure Cosmos DB-API für NoSQL

Wenn Sie Hilfe bei der Kapazitätsplanung benötigen, lesen Sie bitte unsere Führungslinie zur Schätzung von RU/s mit Azure Cosmos DB Kapazitätsplanung.

Wichtig

Der benutzerdefinierte Migrationsdienst mithilfe von ChangeFeed ist ein Open-Source-Tool für die Livemigration von Containern, das Änderungsfeed und Unterstützung für Massenvorgänge implementiert. Beachten Sie jedoch, dass der Anwendungscode der Benutzeroberfläche für dieses Tool von Microsoft nicht unterstützt oder aktiv verwaltet wird. Für die Livemigration von Containern mithilfe der Azure Cosmos DB-API für NoSQL empfehlen wir die Verwendung des Spark-Connectors und des Änderungsfeeds, wie im folgenden Beispiel dargestellt. Der Spark-Connector für Azure Cosmos DB wird von Microsoft vollständig unterstützt.

Migrationstyp Lösung Unterstützte Quellen Unterstützte Ziele Überlegungen
Offline Kopieren eines kontointernen Containers Azure Cosmos DB for NoSQL Azure Cosmos DB for NoSQL • CLI-basiert; keine Einrichtung erforderlich.
• Unterstützt große Datasets.
Offline Azure Data Factory •JSON-/CSV-Dateien
•Azure Cosmos DB for NoSQL
•Azure Cosmos DB for MongoDB
•MongoDB
•SQL Server
•Tabellenspeicher
•Azure-Blobspeicher

Informationen zu weiteren unterstützten Quellen finden Sie im Artikel Azure Data Factory.
•Azure Cosmos DB for NoSQL
•Azure Cosmos DB for MongoDB
•JSON-Dateien

Informationen zu weiteren unterstützten Zielen finden Sie im Artikel Azure Data Factory.
• Einfach einzurichten und unterstützt mehrere Quellen.
• Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Geeignet für große Datasets.
• Fehlende Prüfpunktausführung: Wenn während der Migration ein Problem auftritt, müssen Sie den gesamten Migrationsprozess neu starten.
• Fehlende Warteschlange für unzustellbare Nachrichten: Dies bedeutet, dass wenige fehlerhafte Dateien den gesamten Migrationsprozess unterbrechen können.
Offline Azure Cosmos DB-Spark-Connector Azure Cosmos DB for NoSQL.

Sie können weitere Quellen mit zusätzlichen Connectors aus dem Spark-Ökosystem verwenden.
Azure Cosmos DB for NoSQL.

Sie können weitere Ziele mit zusätzlichen Connectors aus dem Spark-Ökosystem verwenden.
• Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Geeignet für große Datasets.
• Erfordert eine benutzerdefinierte Spark-Einrichtung
• Spark bietet keine Toleranz gegenüber Inkonsistenzen beim Schema. Dies kann während der Migration ein Problem darstellen.
Online Azure Cosmos DB Spark-Connector und Änderungsfeed Azure Cosmos DB for NoSQL.

Nutzt den Azure Cosmos DB-Änderungsfeed, um alle historischen Daten sowie Liveupdates zu streamen.
Azure Cosmos DB for NoSQL.

Sie können weitere Ziele mit zusätzlichen Connectors aus dem Spark-Ökosystem verwenden.
• Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Geeignet für große Datasets.
• Erfordert eine benutzerdefinierte Spark-Einrichtung
• Spark bietet keine Toleranz gegenüber Inkonsistenzen beim Schema. Dies kann während der Migration ein Problem darstellen.
Offline Benutzerdefiniertes Tool mit Azure Cosmos DB-Bulk Executor-Bibliothek Die Quelle ist abhängig von benutzerdefiniertem Code. Azure Cosmos DB for NoSQL • Bietet Prüfpunktfunktionen für unzustellbare Nachrichten und damit eine höhere Resilienz bei der Migration.
• Geeignet für sehr große Datasets (> 10 TB).
• Erfordert die benutzerdefinierte Einrichtung dieses Tools, das als App Service ausgeführt wird.
Online Azure Cosmos DB-Funktionen + ChangeFeed-API Azure Cosmos DB for NoSQL Azure Cosmos DB for NoSQL • Leicht einzurichten.
• Funktioniert nur, wenn die Quelle ein Azure Cosmos DB-Container ist.
• Nicht geeignet für große Datasets
• Erfasst keine Löschvorgänge im Quellcontainer.
Online Benutzerdefinierter Migrationsdienst mithilfe von ChangeFeed Azure Cosmos DB for NoSQL Azure Cosmos DB for NoSQL • Ermöglicht die Statusnachverfolgung.
• Funktioniert nur, wenn die Quelle ein Azure Cosmos DB-Container ist.
• Funktioniert auch bei größeren Datensätzen.
• Erfordert die Einrichtung einer App Service-Instanz zum Hosten der Änderungsfeedverarbeitung.
• Erfasst keine Löschvorgänge im Quellcontainer.
Online Striim • Oracle
• Apache Cassandra

Informationen zu weiteren unterstützten Quellen finden Sie auf der Striim-Website.
•Azure Cosmos DB for NoSQL
• Azure Cosmos DB for Cassandra

Informationen zu weiteren unterstützten Zielen finden Sie auf der Striim-Website.
• Funktioniert mit einer Vielzahl von Quellen wie Oracle, DB2, SQL Server.
• Einfaches Erstellen von ETL-Pipelines; einschließlich eines Dashboards für die Überwachung.
• Unterstützt größere Datasets.
• Da dies ein Drittanbietertool ist, muss es über den Marketplace erworben und in der Benutzerumgebung installiert werden.

Azure Cosmos DB-API für MongoDB

Folgen Sie dem Vor-Migration-Führungslinie, um Ihre Migration zu planen.

Wenn Sie für die Migration bereit sind, finden Sie im Folgenden detaillierte Anleitungen zu Migrationstools

Folgen Sie dann unsere Nach-Migration-Führungslinie, um Ihren Azure Cosmos DB-Datenbestand zu optimieren, nachdem Sie migriert haben.

Unten finden Sie eine Zusammenfassung der Migrationspfade von Ihrer aktuellen Lösung zu Azure Cosmos DB for MongoDB:

Migrationstyp Lösung Unterstützte Quellen Unterstützte Ziele Überlegungen
Online Azure Database Migration Service MongoDB Azure Cosmos DB for MongoDB • Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Eignet sich für große Datasets und übernimmt die Replikation von Liveänderungen.
• Funktioniert nur mit anderen MongoDB-Quellen.
Offline Azure Database Migration Service MongoDB Azure Cosmos DB for MongoDB • Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Eignet sich für große Datasets und übernimmt die Replikation von Liveänderungen.
• Funktioniert nur mit anderen MongoDB-Quellen.
Offline Azure Data Factory •JSON-/CSV-Dateien
•Azure Cosmos DB for NoSQL
•Azure Cosmos DB for MongoDB
•MongoDB
•SQL Server
•Tabellenspeicher
•Azure-Blobspeicher

Informationen zu weiteren unterstützten Quellen finden Sie im Artikel Azure Data Factory.
•Azure Cosmos DB for NoSQL
•Azure Cosmos DB for MongoDB
• JSON-Dateien

Informationen zu weiteren unterstützten Zielen finden Sie im Artikel Azure Data Factory.
• Einfach einzurichten und unterstützt mehrere Quellen.
• Nutzt die Azure Cosmos DB-BulkExecutor-Bibliothek.
• Geeignet für große Datasets.
• Fehlende Prüfpunktausführung: Wenn während der Migration ein Problem auftritt, muss der gesamte Migrationsprozess neu gestartet werden.
• Fehlende Warteschlange für unzustellbare Nachrichten: Dies bedeutet, dass wenige fehlerhafte Dateien den gesamten Migrationsprozess unterbrechen können.
• Erfordert benutzerdefinierten Code, um den Lesedurchsatz für bestimmte Datenquellen zu erhöhen.
Offline Vorhandene Mongo-Tools (mongodump, mongorestore, Studio3T) •MongoDB
•Azure Cosmos DB for MongoDB
Azure Cosmos DB for MongoDB • Einfache Einrichtung und Integration.
• Erfordert die benutzerdefinierte Behandlung von Drosselungen.

Azure Cosmos DB-API für Cassandra

Wenn Sie Hilfe bei der Kapazitätsplanung benötigen, lesen Sie bitte unsere Führungslinie zur Schätzung von RU/s mit Azure Cosmos DB Kapazitätsplanung.

Migrationstyp Lösung Unterstützte Quellen Unterstützte Ziele Überlegungen
Offline Kopieren eines kontointernen Containers Azure Cosmos DB-API für Cassandra Azure Cosmos DB-API für Cassandra • CLI-basiert; keine Einrichtung erforderlich.
• Unterstützt große Datasets.
Offline cqlsh-Befehl COPY CSV-Dateien Azure Cosmos DB-API für Cassandra • Leicht einzurichten.
• Nicht geeignet für große Datasets
• Funktioniert nur, wenn die Quelle eine Cassandra-Tabelle ist.
Offline Kopieren der Tabelle mit Spark • Apache Cassandra
Azure Cosmos DB-API für Cassandra • Ermöglicht die Verwendung von Spark-Funktionen zum Parallelisieren von Transformation und Erfassung
• Erfordert die Konfiguration mit einer benutzerdefinierten Wiederholungsrichtlinie für die Behandlung der Drosselung
Online Proxy für duales Schreiben und Spark • Apache Cassandra
•Azure Cosmos DB-API für Cassandra
• Unterstützt größere Datasets, erfordert Sorgfalt bei Setup und Validierung.
• Open-Source-Tools, Kauf nicht erforderlich
Online Striim (aus Oracle DB/Apache Cassandra) • Oracle
• Apache Cassandra

Informationen zu weiteren unterstützten Quellen finden Sie auf der Striim-Website.
•Azure Cosmos DB-API für NoSQL
•Azure Cosmos DB-API für Cassandra

Informationen zu weiteren unterstützten Zielen finden Sie auf der Striim-Website.
• Funktioniert mit einer Vielzahl von Quellen wie Oracle, DB2, SQL Server.
• Einfaches Erstellen von ETL-Pipelines; einschließlich eines Dashboards für die Überwachung.
• Unterstützt größere Datasets.
• Da dies ein Drittanbietertool ist, muss es über den Marketplace erworben und in der Benutzerumgebung installiert werden.
Online Arcion (aus Oracle DB/Apache Cassandra) • Oracle
• Apache Cassandra

Informationen zu weiteren unterstützten Quellen finden Sie auf der Arcion-Website.
Azure Cosmos DB-API für Cassandra.

Informationen zu weiteren unterstützten Quellen finden Sie auf der Arcion-Website.
• Unterstützt größere Datasets.
• Da dies ein Drittanbietertool ist, muss es über den Marketplace erworben und in der Benutzerumgebung installiert werden.

Andere APIs

Bei anderen APIs als die API für NoSQL, die API für MongoDB und die API für Cassandra werden in den Umgebungen der einzelnen APIs verschiedene Tools unterstützt.

API für Gremlin

Nächste Schritte

  • Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen?
  • Erfahren Sie mehr darüber, indem Sie die Beispielanwendungen ausprobieren, die die BulkExecutor-Bibliothek in .NET und Java nutzen.
  • Die Bulk Executor-Bibliothek ist in den Spark-Connector für Azure Cosmos DB integriert. Weitere Informationen finden Sie im Artikel Spark-Connector für Azure Cosmos DB.
  • Wenden Sie sich an das Azure Cosmos DB-Team, indem Sie unter dem Problemtyp „General Advisory“ (Allgemeine Ratschläge) und dem Problemuntertyp „Large (TB+) migrations“ (Umfangreiche Migrationen (TB+)) ein Supportticket erstellen, um weitere Hilfe zu größeren Migrationen zu erhalten.