View a markdown version of this page

Schreiben neuer Daten während einer Online-Migration - Amazon Keyspaces (für Apache Cassandra)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schreiben neuer Daten während einer Online-Migration

Der erste Schritt in einem Online-Migrationsplan besteht darin, sicherzustellen, dass alle neuen Daten, die von der Anwendung geschrieben werden, in beiden Datenbanken, Ihrem vorhandenen Cassandra-Cluster und Amazon Keyspaces, gespeichert werden. Ziel ist es, einen konsistenten Überblick über die beiden Datenspeicher zu bieten. Sie können dies tun, indem Sie alle neuen Schreibvorgänge auf beide Datenbanken anwenden. Um duale Schreibvorgänge zu implementieren, ziehen Sie eine der folgenden drei Optionen in Betracht.

  • Migration von ZDM Dual Write Proxy für Amazon Keyspaces — Mithilfe des auf Github verfügbaren ZDM-Proxy für Amazon Keyspaces können Sie Ihre Apache Cassandra-Workloads ohne Anwendungsausfälle zu Amazon Keyspaces migrieren. Diese verbesserte Lösung implementiert AWS Best Practices und erweitert die offiziellen ZDM-Proxy-Funktionen.

    • Führen Sie Online-Migrationen zwischen Apache Cassandra und Amazon Keyspaces durch.

    • Schreiben Sie Daten gleichzeitig in Quell- und Zieltabellen, ohne die Anwendungen umzugestalten.

    • Überprüfen Sie Abfragen durch duale Lesevorgänge.

    Die Lösung bietet die folgenden Verbesserungen für die Arbeit mit AWS Amazon Keyspaces.

    • Container-Bereitstellung — Verwenden Sie ein vorkonfiguriertes Docker-Image aus Amazon Elastic Container Registry (Amazon ECR) für Bereitstellungen. VPC-accessible

    • Infrastruktur als Code — Bereitstellung mithilfe von AWS CloudFormation Vorlagen für die automatische Einrichtung AWS Fargate

    • Amazon Keyspaces-Kompatibilität — Greifen Sie auf Systemtabellen mit benutzerdefinierten Anpassungen für Amazon Keyspaces zu.

    Die Lösung läuft auf Amazon ECS mit Fargate und bietet serverlose Skalierbarkeit auf der Grundlage Ihrer Workload-Anforderungen. Ein Network Load Balancer verteilt den eingehenden Anwendungsdatenverkehr auf mehrere Amazon ECS-Aufgaben, um eine hohe Verfügbarkeit zu gewährleisten.

    Implementierung des ZDM-Dual-Write-Proxys für die Migration von Daten von Apache Cassandra zu Amazon Keyspaces.
  • Doppeltes Schreiben von Anwendungen — Sie können duale Schreibvorgänge mit minimalen Änderungen an Ihrem Anwendungscode implementieren, indem Sie die vorhandenen Cassandra-Clientbibliotheken und -Treiber nutzen. Sie können entweder duale Schreibvorgänge in Ihrer vorhandenen Anwendung implementieren oder eine neue Ebene in der Architektur erstellen, um duale Schreibvorgänge zu verarbeiten. Weitere Informationen und eine Kundenfallstudie, die zeigt, wie duale Schreibvorgänge in einer vorhandenen Anwendung implementiert wurden, finden Sie in der Fallstudie zur Cassandra-Migration.

    Bei der Implementierung von Dual-Writes können Sie eine Datenbank als Leader und die andere Datenbank als Follower-Datenbank festlegen. Auf diese Weise können Sie weiterhin in Ihre ursprüngliche Quell- oder Leader-Datenbank schreiben, ohne dass Schreibfehler in die Follower- oder Zieldatenbank den kritischen Pfad Ihrer Anwendung stören.

    Anstatt fehlgeschlagene Schreibvorgänge in den Follower erneut zu versuchen, können Sie Amazon Simple Queue Service verwenden, um fehlgeschlagene Schreibvorgänge in einer Dead Letter Queue (DLQ) aufzuzeichnen. Mit dem DLQ können Sie die fehlgeschlagenen Schreibvorgänge in den Follower analysieren und feststellen, warum die Verarbeitung in der Zieldatenbank nicht erfolgreich war.

    Für eine anspruchsvollere Dual-Write-Implementierung können Sie die AWS bewährten Methoden zum Entwerfen einer Abfolge lokaler Transaktionen mithilfe des Saga-Musters befolgen. Ein Saga-Muster stellt sicher, dass die Saga, wenn eine Transaktion fehlschlägt, kompensierende Transaktionen ausführt, um die durch die vorherigen Transaktionen vorgenommenen Datenbankänderungen rückgängig zu machen.

    Wenn Sie Dual-Writes für eine Online-Migration verwenden, können Sie die Dual-Writes nach dem Saga-Muster konfigurieren, sodass jeder Schreibvorgang eine lokale Transaktion ist, um atomare Operationen in heterogenen Datenbanken sicherzustellen. Weitere Informationen zum Entwerfen verteilter Anwendungen mithilfe der empfohlenen Entwurfsmuster für finden Sie unter Cloud-Entwurfsmuster AWS Cloud, -Architekturen und -Implementierungen.

    Implementierung von dualen Schreibvorgängen auf Anwendungsebene bei der Migration von Apache Cassandra zu Amazon Keyspaces.
  • Doppelte Schreibvorgänge auf Messaging-Ebene — Anstatt duale Schreibvorgänge auf der Anwendungsebene zu implementieren, können Sie Ihre bestehende Messaging-Ebene verwenden, um duale Schreibvorgänge an Cassandra und Amazon Keyspaces durchzuführen.

    Zu diesem Zweck können Sie auf Ihrer Messaging-Plattform einen zusätzlichen Consumer konfigurieren, der Schreibvorgänge an beide Datenspeicher sendet. Dieser Ansatz bietet eine einfache Low-Code-Strategie, bei der die Messaging-Ebene verwendet wird, um zwei Ansichten in beiden Datenbanken zu erstellen, die letztendlich konsistent sind.