Übersicht über die Migration

In diesem Dokument wird die Migration Ihrer Datenbank zu Spanner. Wir beschreiben die Phasen der Migration und die Tools, für jede Phase empfohlen, abhängig von Ihrer Quelldatenbank und anderen Faktoren. Zu den empfohlenen Tools gehören Google Cloud-Produkte sowie kommerzielle und Open-Source-Tools. Mit diesen Tools können Sie und Risiken zu reduzieren.

Jede Spanner-Migration umfasst die folgenden Kernphasen:

  1. Bewerten Sie die Komplexität der Migration.
  2. Migrieren Sie Ihr Schema.
  3. Migrieren Sie Ihre Anwendung.
  4. Leistung testen und optimieren
  5. Migrieren Sie die Daten.
  6. Validieren Sie die Migration.
  7. Umstellungs- und Failover-Mechanismen konfigurieren

Das folgende Diagramm zeigt diesen Vorgang.

Diagramm des Migrationsprozesses mit Bewertung, Schema und Anwendung
Migration, Tests und Feinabstimmung, Datenmigration, Validierung und
Umstellung.

In diesen Phasen kann Ihr Migrationsplan je nach Faktoren erheblich variieren. z. B. die Quelle und Größe Ihrer Datenbank, die Anforderungen an Ausfallzeiten, den Anwendungscode Komplexität, Fragmentierungsschema, benutzerdefinierte Funktionen oder Transformationen und Failover und Replikationsstrategie.

Wir bieten Migrationsleitfäden für Amazon DynamoDB, MySQL, Oracle Database und PostgreSQL Wenn Sie von einer dieser Datenbanken migrieren, folgen Sie auch den relevanten Leitfaden:

Wenn Sie von einer anderen Datenbank migrieren, benötigen Sie möglicherweise Anpassungen und Tools, die in diesem Leitfaden nicht behandelt werden.

Migrationstools

Wir empfehlen die Verwendung der folgenden Tools, die Sie in den verschiedenen Phasen des Migration abhängig von Ihrer Quelldatenbank und anderen Faktoren. Nur einige Tools bestimmte Quelldatenbanken unterstützen. Für einige Schritte des Prozesses wird kein Tool und führen diese Schritte manuell aus.

  • Spanner-Migrationstool ist ein Open-Source-Tool, das grundlegende Bewertungen sowie Schema- und zur Datenmigration.
  • Datenvalidierungstool ist eine standardisierte Datenvalidierungsmethode von Google, die von der Open-Source-Community. Sie können DVT in bestehende Google Cloud-Produkte
  • Datastream ist ein Google Cloud-Dienst mit dem Sie Change-Data-Capture-Ereignisse (CDC) und Bulk-Daten aus einem Quelldatenbank.
  • Dataflow ist ein Google Cloud-Dienst, der hilft Ihnen, große Datenmengen in Spanner zu schreiben, effizient mit Vorlagen arbeiten. Diese Vorlagen generieren keine Dumpdatei. muss die Dumpdatei von den Quelldatenbanktools oder Tools von Drittanbietern.

In der folgenden Tabelle sind die wichtigsten Tools zusammengefasst, die wir jeweils für Phase der Migration für einige häufig verwendete Quelldatenbanken. Sie können aus folgenden Quellen migrieren: anderen Datenbanken mit Anpassungen.

Quelldatenbank Umfang bewerten Schema migrieren App migrieren Daten migrieren Datenmigration validieren Umstellung und Failover konfigurieren
MySQL Manuell Spanner-Migrationstool Manuell Spanner-Migrationstool DVT Manuell
PostgreSQL Manuell Spanner-Migrationstool Manuell Spanner-Migrationstool DVT Manuell
Andere Datenbanken Manuell Spanner-Migrationstool Manuell Manuell DVT Manuell

Bewerten Sie die Komplexität der Migration

Zur Beurteilung des Umfangs und der Komplexität der Migration und der Planung Ihres Ansatzes müssen Daten über Ihre Quelldatenbank sammeln. Dazu gehören:

  • Abfragemuster
  • Umfang der Anwendungslogik, die von Datenbankfunktionen wie als gespeicherte Prozeduren und Trigger
  • Hardwareanforderungen
  • Gesamtbetriebskosten (TCO)

Schema migrieren

Bewerten Sie vor der Migration eines Schemas zu einem Spanner-Schema die Kompatibilität zwischen den Schemas zu ermöglichen und Ihr Schema zu optimieren, Spanner. Sie können beispielsweise Schlüssel ändern, löschen oder oder Spalten vorhandener Tabellen hinzufügen oder entfernen. So optimieren Sie Ihr Schema für Spanner finden Sie unter Best Practices für Schemadesign und Empfohlen Primärschlüssel-Migrationsstrategien.

Spanner-Migrationstool, ein Open-Source-Tool, das von Google-Entwicklern gepflegt und von der Community verwaltet wird, Erstellt automatisch ein Spanner-Schema aus Ihrer Quelldatenbank Schema. Sie können das Schema mit dem Schemaassistenten des Spanner-Migrationstools anpassen.

Das Spanner-Migrationstool nimmt Schema und Daten aus einem der folgenden Speicherorte auf:

  • Eine Dumpdatei von einem lokalen Speicherort oder aus Cloud Storage (MySQL, PostgreSQL, CSV)
  • Direkt aus der Quelldatenbank (MySQL, PostgreSQL)

Das Spanner-Migrationstool führt die folgenden Funktionen für Schemabewertungen aus: Empfehlungen und Migrationen:

  • Prüfung und Empfehlungen zur Datentypkompatibilität
  • Primärschlüsselbearbeitung und Empfehlungen
  • Sekundäre Indexbearbeitung und Empfehlungen
  • Tabellenbearbeitung und Empfehlungen verschachteln
  • Allgemeine Empfehlungen zum Schemadesign von Spanner
  • Schemaversionsverwaltung
  • Collaborative Schema-Änderung

Weitere Informationen zu Schemamigrationen mit dem Spanner-Migrationstool finden Sie in der README.md-Datei des Spanner-Migrationstools.

Sie verwenden auch das Spanner-Migrationstool für die Datenmigration.

Anwendung migrieren

Für eine Datenbankmigration sind verschiedene Treiber und Bibliotheken sowie Vergütung für Funktionen, die Spanner nicht unterstützt. Bis ähnliche Funktionen zu erreichen und die Spanner-Stärken zu optimieren, müssen Sie möglicherweise Ihren Code, Ihre Anwendungsabläufe und Ihre Architektur ändern.

Hier sind einige der Änderungen, die für die Migration Ihrer Anwendung zu Spanner:

  • Spanner unterstützt das Ausführen von Nutzercode auf Datenbankebene nicht. Sie müssen alle auf Datenbankebene gespeicherten Prozeduren und Trigger verschieben in die Anwendung ein.
  • Spanner-Clientbibliotheken und objektrelationale Mapper verwenden (ORMs). Weitere Informationen finden Sie unter Übersicht über APIs, Clientbibliotheken und ORM-Treiber
  • Wenn Sie Suchanfragen übersetzen müssen, übersetzen Sie sie manuell oder verwenden Sie andere Tools von Drittanbietern.
  • Beachten Sie die partitionierte DML. schreibgeschützte Transaktionen, Commit-Zeitstempel, Lesezeitstempel und wie sie die Anwendungsleistung optimieren können.

Möglicherweise müssen Sie auch Änderungen an der Transaktionsabwicklung vornehmen. Es gibt keine Tools, die Ihnen dabei helfen können. Sie müssen diesen Schritt daher manuell ausführen. Notizen im Hinterkopf:

  • Das Limit für Mutationen pro Commit ist 40.000. Jeder sekundäre Index einer Tabelle ist eine zusätzliche Mutation pro Zeile. Informationen zum Ändern von Daten mithilfe von Mutationen finden Sie unter Daten mit Mutationen einfügen, aktualisieren und löschen Um große Datenmengen zu ändern, verwenden Sie partitionierte DML verwendet.
  • Auf der Transaktionsisolationsebene ist keine Verarbeitung erforderlich, Spanner-Transaktionen sind isolierter.
  • Da Spanner linearisierbar ist, verarbeitet es Konsistenz und ist standardmäßig gesperrt.

Schema und Anwendungsleistung testen und optimieren

Die Leistungsoptimierung ist ein iterativer Prozess, bei dem Sie Messwerte wie CPU-Auslastung und -Latenz basierend auf einer Teilmenge Ihrer Daten, Schema anpassen um die Leistung zu verbessern, und führen Sie den Test erneut durch.

Sie können in Ihrem Schema beispielsweise einen Index hinzufügen oder ändern oder einen Primärschlüssel. In Ihrer Anwendung können Sie Schreibvorgänge im Batch verarbeiten oder Daten zusammenführen bzw. Ihre Abfragen zu ändern.

Insbesondere für den Produktionstraffic ist die Leistungsoptimierung wichtig, um Überraschungen zu vermeiden. Die Leistungsoptimierung ist umso effektiver, je näher die Einrichtung und Datengrößen des Live-Produktionstraffics.

So testen und optimieren Sie die Schema- und Anwendungsleistung:

  1. Laden Sie eine Teilmenge Ihrer Daten in eine Spanner-Datenbank hoch. Für Weitere Informationen finden Sie unter Daten migrieren.
  2. Verweisen Sie die Anwendung auf Spanner.
  3. Überprüfen Sie die Richtigkeit, indem Sie grundlegende Datenflüsse prüfen.
  4. Prüfen, ob die Leistung Ihren Erwartungen entspricht, indem Sie Lasttests durchführen in Ihrer Anwendung. Für die Ermittlung und Optimierung Ihrer bei teuren Suchanfragen Erkennen Sie mit Query Insights Probleme mit der Abfrageleistung. Insbesondere folgende Faktoren können zu einer suboptimalen Abfrage beitragen Leistung:
    1. Ineffiziente Abfragen: Informationen zum Schreiben effizienter Abfragen finden Sie unter Siehe Best Practices für SQL.
    2. Hohe CPU-Auslastung: Weitere Informationen finden Sie unter Prüfen Sie die hohe CPU-Auslastung.
    3. Sperren: Um Engpässe zu reduzieren, die durch Transaktionssperren verursacht werden, Siehe Transaktionen identifizieren, die hohe Latenzen verursachen können
    4. Ineffizientes Schemadesign: Wenn das Schema nicht gut konzipiert ist, nicht wirklich nützlich ist.
    5. Heißlaufen: Hotspots in Spanner begrenzen den Durchsatz von Schreibvorgängen, insbesondere für Anwendungen mit hohen Abfragen pro Sekunde. Um Hotspots oder Anti-Patterns verwenden, aktivieren Sie die Visualizer Statistiken aus der Google Cloud Console abrufen. Weitere Informationen zu zur Vermeidung von Hotspots, siehe Wählen Sie einen Primärschlüssel aus, um Hotspots zu verhindern.
  5. Wiederholen Sie bei Änderungen des Schemas oder der Indexe die Richtigkeit und Leistung. bis Sie zufriedenstellende Ergebnisse erzielt haben.

Weitere Informationen zur Feinabstimmung Ihrer Datenbankleistung erhalten Sie bei Spanner-Unterstützung.

Daten migrieren

Nachdem Sie das Spanner-Schema optimiert und übertragen Sie Ihre Daten in eine leere Produktionsgröße Spanner-Datenbank und wechseln Sie dann Spanner-Datenbank.

Je nach Quelldatenbank können Sie Ihre Datenbank möglicherweise migrieren. mit minimalen Ausfallzeiten oder längere Ausfallzeiten benötigen.

Sowohl bei Migrationen mit minimaler Ausfallzeit als auch bei Migrationen mit längeren Ausfallzeiten empfehlen wir Dataflow und das Spanner-Migrationstool

Die folgende Tabelle zeigt die Unterschiede zwischen Migrationen mit minimaler Ausfallzeit und Migrationen mit längeren Ausfallzeiten, einschließlich unterstützter Quellen, Formate, Größen, und Durchsatz.

Migration mit minimaler Ausfallzeit Migration mit Ausfallzeiten
Unterstützte Quellen MySQL, PostgreSQL Jede Datenbank, die als CSV- oder Avro
Unterstützte Datenformate Direkt kommunizieren Siehe Direkt Verbindung zu einer MySQL-Datenbank herstellen MySQL, PostgreSQL, CSV, Avro
Unterstützte Datenbankgrößen Kein Limit Kein Limit
Maximaler Durchsatz 45 GB pro Stunde 200 GB pro Stunde

Migration mit minimaler Ausfallzeit

Spanner unterstützt Migrationen von MySQL mit minimaler Ausfallzeit PostgreSQL und Oracle Database. Eine Migration mit minimaler Ausfallzeit besteht aus zwei Komponenten:

  • Konsistenter Snapshot aller Daten in der Datenbank
  • Den Stream der Änderungen (Einfügungen und Aktualisierungen) seit diesem Snapshot, als Change Data Capture (CDC) bezeichnet.

Migrationen mit minimaler Ausfallzeit tragen zwar zum Schutz Ihrer Daten bei, doch der Prozess umfasst Herausforderungen an, darunter:

  • CDC-Daten während der Migration des Snapshots speichern.
  • CDC-Daten beim Erfassen der eingehenden Daten in Spanner schreiben CDC-Stream
  • Schnellere Migration von CDC-Daten zu Spanner als der eingehende CDC-Stream.

Um eine Migration mit minimaler Ausfallzeit zu verwalten, orchestriert das Spanner-Migrationstool Folgendes: Abläufe für Sie:

  1. Cloud Storage-Bucket zum Speichern von CDC-Ereignissen einrichten in der Quelldatenbank während der Snapshot-Migration.
  2. Datastream-Job einrichten, der die Bulk-Verarbeitung verschiebt und streamt kontinuierlich inkrementelle CDC-Daten an die Cloud Storage-Bucket. Sie richten das Quellverbindungsprofil ein. im Spanner-Migrationstool an.
  3. Richtet den Dataflow-Job für die Migration der CDC ein in Spanner importieren.

Wenn Dataflow einen Großteil der Daten kopiert hat, werden die Daten nicht mehr in und wartet, bis die Migration der Daten abgeschlossen ist. Dieses Ergebnis in einer kurzen Ausfallzeit, während Spanner die Quelle aufholt. Datenbank. Anschließend kann die Anwendung auf Spanner umgestellt werden.

Das folgende Diagramm zeigt diesen Vorgang.

Das Diagramm zeigt den Prozess einer Migration mit minimaler Ausfallzeit.

Migration mit Ausfallzeiten

Für andere Datenbanken als MySQL, PostgreSQL oder Oracle Database, wenn die Datenbank können Sie Daten in eine CSV- oder Avro-Datei exportieren. Anschließend können Sie Ausfallzeiten. Wir empfehlen die Verwendung von Dataflow oder Spanner-Migrationstool.

Migrationen mit Ausfallzeiten werden nur für Testumgebungen oder Anwendungen, die ein paar Stunden Ausfallzeiten standhalten können. In einer Live-Datenbank Migrationen mit Ausfallzeiten können Datenverluste nach sich ziehen.

Führen Sie die folgenden allgemeinen Schritte aus, um eine Migration einer Ausfallzeit durchzuführen:

  1. Generieren Sie eine Dumpdatei der Daten aus der Quelldatenbank.
  2. Laden Sie die Dumpdatei in einem MySQL-, PostgreSQL-, Avro- oder CSV-Dump-Format.
  3. Dumpdatei mit Dataflow in Spanner laden oder das Spanner-Migrationstool.

Durch das Generieren mehrerer kleiner Dumpdateien lassen sich Spanner, da Spanner mehrere Dumpdateien lesen kann .

Beim Generieren einer Dumpdatei aus der Quelldatenbank, um eine konsistente eine Übersicht der Daten, behalten Sie Folgendes im Hinterkopf:

  • Um zu verhindern, dass sich die Daten während der Generierung der Dumpdatei ändern, Wenden Sie vor dem Dump eine Lesesperre auf die Quelldatenbank an.
  • Generieren Sie die Dumpdatei mithilfe eines Lesereplikats aus der Quelldatenbank mit Replikation deaktiviert.

Avro ist das bevorzugte Format für eine Bulk-Migration zu Spanner. Wenn sollten Sie Folgendes beachten:

Wenn Sie CSV verwenden, sollten Sie Folgendes berücksichtigen:

  • Um einen CSV-Dump der Daten zu generieren, verwenden Sie die CSV-Generierung, die vom Quelle. Wenn Daten neue Zeilen enthalten, verwende ein benutzerdefiniertes Zeilentrennzeichen.
  • Verwenden Sie zum Importieren von CSV-Daten einen Dataflow-Importjob. Sie können eine eigene Dataflow-Importvorlage oder eine Google Cloud Vorlage importieren. Weitere Informationen finden Sie unter Vorlagen für Dataflow-Datenpipeline

Wenn Sie MySQL oder PostgreSQL verwenden, können Sie das Spanner-Migrationstool verwenden.

Informationen zum Verwenden von benutzerdefinierten Skripts zum Laden von Daten in Spanner finden Sie unter Leistungsrichtlinien für das Laden im Bulk

Datenmigration überprüfen

Datenvalidierung ist der Vorgang des Vergleichs von Daten aus der Quelle und der um sicherzustellen, dass sie übereinstimmen.

Datenvalidierungstool ist ein Open-Source-Tool, das eine Verbindung zu Datenspeichern herstellen und Prüfungen durchführen kann zwischen der Quelle und Spanner. Wir empfehlen, es zu verwenden, grundlegende Validierungen im Rahmen der Migration durchführen, z. B.:

  • Prüfen Sie, ob alle Tabellen erstellt wurden und alle Schemazuordnungen korrekt sind richtig .
  • Gleichen Sie die Anzahl der Zeilen für jede Tabelle ab.
  • Extrahieren Sie zufällige Zeilen, um die Richtigkeit zu überprüfen.
  • Validieren Sie die Spalten (count, sum, avg, min, max, group by).
  • Vergleichen Sie alle zyklischen Redundanzprüfungen oder Hash-Funktionen auf Zeilenebene.

Wenn Sie spezifischere Validierungen durchführen möchten, können Sie während der Migration benutzerdefinierte Prüfungen erstellen.

Umstellungs- und Failover-Mechanismen konfigurieren

Migrationen sind oft zeitaufwendig und komplex. Fallbacks einbinden, um sie zu vermeiden Auswirkungen haben, falls während der Migration Fehler auftreten, sodass Sie mit minimaler Ausfallzeit zur Quelldatenbank zurückkehren.

Die aktuelle Empfehlung ist, Änderungsstreams zur Durchführung einer umgekehrten Replikation und über einen Stream wie Pub/Sub oder Cloud Storage

Das Diagramm zeigt den Umstellungsprozess.

Die umgekehrte Replikation muss Folgendes tun:

  • Sie können Änderungen an Datentypen oder -inhalten verarbeiten.
  • Machen Sie alle während der Migration ausgeführten Transformationen rückgängig.
  • Übertragen Sie die Daten unter Berücksichtigung der Fragmentierungsschemata auf der Quelle.