Migrieren von Daten aus Cassandra in ein Azure Cosmos DB for Apache Cassandra-Konto mithilfe von Arcion
GILT FÜR: Cassandra
API for Cassandra in Azure Cosmos DB hat sich aus vielen Gründen zu einer guten Wahl für Unternehmensworkloads entwickelt, die in Apache Cassandra ausgeführt werden:
Kein Mehraufwand für Verwaltung und Überwachung: Beseitigt den Mehraufwand der Verwaltung und Überwachung von unzähligen Einstellungen für Betriebssystem, JVM und YAML-Dateien und deren Interaktionen.
Erhebliche Kosteneinsparungen: Sie können Kosten sparen mit Azure Cosmos DB, einschließlich der Kosten für virtuelle Computer, Bandbreite und alle anwendbaren Lizenzen. Außerdem entfällt die Verwaltung der Kosten für Rechenzentren, Server, SSD-Speicher, Netzwerk und Strom.
Möglichkeit der Verwendung von vorhandenem Code und Tools: Azure Cosmos DB bietet Kompatibilität auf Verbindungsprotokollebene mit vorhandenen SDKs und Tools. Durch diese Kompatibilität ist sichergestellt, dass Sie die vorhandene Codebasis mit Azure Cosmos DB for Apache Cassandra mit nur geringfügigen Änderungen verwenden können.
Es gibt verschiedene Möglichkeiten, Datenbankworkloads von einer Plattform zu einer anderen zu migrieren. Arcion ist ein Tool, das eine sichere und zuverlässige Möglichkeit bietet, eine Migration verschiedener Datenbanken zu Azure Cosmos DB ohne Ausfallzeiten durchzuführen. In diesem Artikel werden die erforderlichen Schritte beschrieben, mit denen Sie mithilfe von Arcion Daten aus einer Apache Cassandra-Datenbank in Azure Cosmos DB for Apache Cassandra migrieren.
Hinweis
Dieses Angebot von Arcion befindet sich derzeit in der Betaversion. Weitere Informationen finden Sie unter Arcion Support
Vorteile der Verwendung von Arcion für die Migration
Die Migrationslösung von Arcion befolgt einen schrittweisen Ansatz zum Migrieren komplexer Betriebs-Workloads. Im Folgenden finden Sie einige der wichtigsten Aspekte des Migrationsplans ohne Ausfallzeiten von Arcion:
Er bietet die automatische Migration der Geschäftslogik (Tabellen, Indizes, Sichten) aus einer Apache Cassandra-Datenbank zu Azure Cosmos DB. Sie müssen keine Schemas manuell erstellen.
Arcion bietet eine parallele Datenbankreplikation für hohe Volumen. Es ermöglicht sowohl den Quell- als auch den Zielplattformen, während der Migration synchron zu bleiben, durch Einsatz eines Verfahrens namens Change-Data-Capture (CDC). Mithilfe von CDC ruft Arcion kontinuierlich einen Datenstrom mit Änderungen aus der Quelldatenbank (Apache Cassandra) ab und wendet ihn auf die Zieldatenbank (Azure Cosmos DB) an.
Dies ist fehlertolerant und bietet selbst während eines Hardware- oder Softwarefehlers im System eine genau einmalige Übermittlung von Daten.
Die Daten werden während der Übertragung mithilfe verschiedener Sicherheitsmethoden wie TLS/SSL oder Verschlüsselung gesichert.
Schritte zum Migrieren von Daten
In diesem Abschnitt werden die erforderlichen Schritte zum Einrichten von Arcion und zum Migrieren von Daten aus einer Apache Cassandra-Datenbank zu Azure Cosmos DB beschrieben.
Fügen Sie von dem Computer, auf dem Sie den Arcion-Replikanten installieren möchten, ein Sicherheitszertifikat hinzu. Dieses Zertifikat wird von dem Arcion-Replikanten benötigt, um eine TLS-Verbindung mit dem angegebenen Azure Cosmos DB-Konto herzustellen. Sie können das Zertifikat mit den folgenden Schritten hinzufügen:
wget https://cacert.omniroot.com/bc2025.crt mv bc2025.crt bc2025.cer keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
Sie können die Arcion-Installation sowie die Binärdateien auch durch Anforderung einer Demo auf der Arcion-Website erhalten. Oder Sie können alternativ auch eine E-Mail an das Team senden.
Richten Sie im CLI-Terminal die Konfiguration der Quelldatenbank ein. Öffnen Sie die Konfigurationsdatei mithilfe des Befehls
vi conf/conn/cassandra.yml
, und fügen Sie eine durch Trennzeichen getrennte Liste mit den IP-Adressen der Cassandra-Knoten, die Portnummer, den Benutzernamen, das Kennwort und alle anderen erforderlichen Details hinzu. Im Folgenden finden Sie ein Beispiel für die Inhalte der Konfigurationsdatei:type: CASSANDRA host: 172.17.0.2 port: 9042 username: 'cassandra' password: 'cassandra' max-connections: 30
Nachdem Sie die Konfigurationsdetails ausgefüllt haben, speichern und schließen Sie die Datei.
Optional können Sie die Filterdatei der Quelldatenbank einrichten. Die Filterdatei gibt an, welche Schemas oder Tabellen migriert werden sollen. Öffnen Sie die Konfigurationsdatei, indem Sie den Befehl
vi filter/cassandra_filter.yml
verwenden und die folgenden Konfigurationsdetails eingeben:allow: - schema: “io_arcion” Types: [TABLE]
Nachdem Sie die Datenbankfilterdetails ausgefüllt haben, speichern und schließen Sie die Datei.
Als Nächstes richten Sie die Konfiguration der Zieldatenbank ein. Bevor Sie die Konfiguration definieren, erstellen Sie ein Azure Cosmos DB for Apache Cassandra-Konto. Dann erstellen Sie einen Keyspace sowie eine Tabelle zum Speichern der migrierten Daten. Da Sie von Apache Cassandra zur API für Cassandra in Azure Cosmos DB migrieren, können Sie denselben Partitionsschlüssel verwenden, den Sie auch mit Apache Cassandra verwendet haben.
Erhöhen Sie vor dem Migrieren der Daten den Containerdurchsatz auf den Betrag, der für eine schnelle Migration Ihrer Anwendung erforderlich ist. Beispielsweise können Sie den Durchsatz auf 100.000 RUs erhöhen. Das Skalieren des Durchsatzes vor dem Starten der Migration hilft Ihnen, Ihre Daten in kürzerer Zeit zu migrieren.
Verringern Sie nach Abschluss der Migration den Durchsatz wieder. Basierend auf der Menge der gespeicherten Daten und der erforderlichen RUs für jeden Vorgang können Sie den nach der Datenmigration erforderlichen Durchsatz abschätzen. Weitere Informationen zum Abschätzen der erforderlichen RUs finden Sie in den Artikeln Bereitstellen von Durchsatz für Container und Datenbanken und Schätzen des Durchsatzes (RU/s) mit dem Azure Cosmos DB Capacity Planner.
Rufen Sie Kontaktpunkt, Port, Benutzername und das primäre Kennwort Ihres Azure Cosmos DB-Kontos im Bereich Verbindungszeichenfolge ab. Diese Werte werden in der Konfigurationsdatei verwendet.
Richten Sie im CLI-Terminal die Konfiguration der Zieldatenbank ein. Öffnen Sie die Konfigurationsdatei mit dem Befehl
vi conf/conn/cosmosdb.yml
, und fügen Sie eine durch Trennzeichen getrennte Liste von Host-URI, Portnummer, Benutzername, Kennwort und anderen erforderlichen Parametern hinzu. Im folgenden Beispiel sehen Sie den Inhalt der Konfigurationsdatei:type: COSMOSDB host: '<Azure Cosmos DB account’s Contact point>' port: 10350 username: 'arciondemo' password: '<Your Azure Cosmos DB account’s primary password>' max-connections: 30
Als Nächstes migrieren Sie mithilfe von Arcion die Daten. Sie können den Arcion-Replikanten im vollständigen oder Momentaufnahmemodus ausführen:
Vollständiger Modus: In diesem Modus wird der Replikant nach der Migration weiter ausgeführt und lauscht auf Änderungen am Apache Cassandra-Quellsystem. Wenn es Änderungen erkennt, werden sie in Echtzeit in das Azure Cosmos DB-Zielkonto repliziert.
Momentaufnahmemodus: In diesem Modus können Sie eine Schemamigration sowie eine einmalige Datenreplikation durchführen. Echtzeitreplikation wird mit dieser Option nicht unterstützt.
Durch Verwendung der beiden oben genannten Modi kann die Migration ohne jegliche Ausfallzeiten durchgeführt werden.
Um Daten zu migrieren, führen Sie den folgenden Befehl im CLI-Terminal des Arcion-Replikanten aus:
./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing
Die Benutzeroberfläche des Replikanten zeigt den Status der Replikation an. Nachdem die Schemamigration und der Momentaufnahmevorgang abgeschlossen sind, zeigt der Status 100 % an. Nach Abschluss der Migration können Sie die Daten in der Azure Cosmos DB-Zieldatenbank überprüfen.
Da Sie den vollständigen Modus für die Migration verwendet haben, können Sie Vorgänge wie Einfügen, Aktualisieren oder Löschen von Daten in der Apache Cassandra-Quelldatenbank ausführen. Später überprüfen Sie, ob sie in Echtzeit in die Azure Cosmos DB-Zieldatenbank repliziert werden. Stellen Sie nach der Migration sicher, dass Sie den für Ihren Azure Cosmos DB-Container konfigurierten Durchsatz verringern.
Sie können den Replikanten zu jedem Zeitpunkt beenden und mit dem Schalter --resume neu starten. Die Replikation wird an dem Punkt fortgesetzt, an dem Sie beendet wurde, ohne die Datenkonsistenz zu beeinträchtigen. Die folgenden Befehle zeigen, wie der Schalter „--resume“ zu verwenden ist.
./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing --resume
Weitere Informationen zum Migrieren von Daten zu Zielen und zur Echtzeitmigration finden Sie im Arcion-Replikat-Demo.