Mit der verwalteten Migration einen selbstverwalteten MySQL-Metastore zu Dataproc Metastore migrieren

Die verwaltete Migration ist ein automatisiertes Feature, mit dem Sie Daten von einem selbstverwalteten Hive-Metastore zu einem Dataproc Metastore-Dienst ohne größere Ausfallzeit (auch als Flag-Tag bezeichnet) migrieren können.

Funktionsweise der verwalteten Migration

Zum Abschließen einer verwalteten Migration muss Ihr Dienst zwei Migrationsprozesse durchlaufen: Migration starten und Migration abschließen. Sie können eine Migration jederzeit mit Migration abbrechen abbrechen. Es gibt auch eine Reihe von operativen Befehlen, die Sie ausführen können und die zum Ausführen einer Migration nicht erforderlich sind. Beispiel: Migration auflisten oder Migration löschen.

Im Laufe dieses Prozesses wechselt Ihr Dienst auch zwischen verschiedenen Migrationsstatus und Migrationsphasen. Diese Zustände und Phasen stellen die Prozesse dar, die im Hintergrund ablaufen. Der Status MIGRATING gibt beispielsweise an, dass Ihr Dienst aktiv Daten aus Ihrer Cloud SQL-Datenbank an Dataproc Metastore überträgt.

Für die verwaltete Migration sind drei Subnetze erforderlich: proxy_subnet, nat_subnet und reverse_proxy_subnet. Konfigurieren Sie Folgendes, um Latenzprobleme zu vermeiden:

  • proxy_subnet und nat_subnet befinden sich in derselben Region wie Cloud SQL.
  • reverse_proxy_subnet befindet sich in derselben Region wie der Dataproc Metastore-Dienst.

Weitere Informationen zu den verschiedenen Subnetztypen finden Sie unter Zwecke von Subnetzen.

Verwalteter Migrationsablauf

Migration starten

  1. Sie führen den Prozess Migration starten für einen Dataproc Metastore-Dienst aus.
  2. Ihr Dataproc Metastore-Dienst stellt eine Verbindung zu Ihrer Cloud SQL-Datenbank her, die als Back-End-Datenbank für Ihren selbstverwalteten Hive-Metastore dient. In diesem Schritt bleibt die Cloud SQL-Datenbank weiterhin die „Source of Truth“ für Ihre Daten.

  3. Dataproc Metastore führt einen CDC-Stream (Change Data Capture) aus, der Daten aus der Cloud SQL-Datenbank in die Dataproc Metastore-Datenbank (Cloud Spanner) kopiert.

    Nachdem die Migration erfolgreich gestartet wurde, können Sie damit beginnen, Arbeitslasten an Dataproc Metastore weiterzuleiten. Zu diesem Zeitpunkt ist Cloud SQL immer noch die zentrale Datenquelle für Ihre Daten.

Migration abschließen

Nachdem Sie die Arbeitslasten in Dataproc Metastore verschoben haben, können Sie die Migration abschließen. Wenn ein vollständiger Migrationsprozess aufgerufen wird, geschieht Folgendes:

  • Dataproc Metastore wechselt in den Lesemodus, bis die vollständige Migration abgeschlossen ist.
  • Der CDC-Stream überträgt alle In-Flight-Daten an Dataproc Metastore.
  • Dataproc Metastore stellt eine Verbindung zu Spanner her und trennt die Verbindung zu Cloud SQL. Dataproc Metastore fungiert jetzt als zentrale Datenquelle für Ihre Daten.

Hinweise

Um eine Migration zu starten, müssen Sie die folgenden Dienste einrichten oder darauf zugreifen:

  • Einen Dataproc Metastore, der mit dem Spanner-Datenbanktyp konfiguriert ist.
  • Eine Cloud SQL for MySQL-Datenbankinstanz, die mit privater IP-Adresse konfiguriert ist.

    • Das VPC-Netzwerk der Cloud SQL-Instanz hat die erforderlichen Subnetze.

    • Cloud SQL verwendet eine Datenbank mit einem Schema, das mit der Hive-Metastore-Version kompatibel ist, die in dem Dataproc Metastore-Dienst ausgeführt wird, in den Daten kopiert werden.

    • Richten Sie Cloud SQL so ein, dass es als Datastream-Quelle verwendet wird. Erstellen Sie einen Nutzernamen und ein Passwort, um Datastream mit Cloud SQL zu verbinden.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen eines Dataproc Metastores und zum Starten einer verwalteten Migration benötigen:

  • So gewähren Sie vollen Zugriff auf alle Dataproc Metastore-Ressourcen, einschließlich der Festlegung von IAM-Berechtigungen: Dataproc Metastore-Administrator (roles/metastore.admin) für das Dataproc Metastore-Nutzerkonto oder -Dienstkonto.
  • So gewähren Sie die vollständige Kontrolle über Dataproc Metastore-Ressourcen: Dataproc Metastore Editor (roles/metastore.editor) auf dem Dataproc Metastore-Nutzerkonto oder -Dienstkonto
  • So erstellen Sie eine verwaltete Migration: Migrationsadministrator (roles/metastore.migrationAdmin) im Dataproc Metastore [Dienst-Agent][7]
  • So verwenden Sie das Cloud Storage-Objekt mit Datastream:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Verwaltete Migration konfigurieren

Sie können eine Migration mithilfe der Dataproc Metastore APIs konfigurieren.

Ein Dataproc Metastore-Dienst kann jeweils nur eine Migration ausführen.

Migration starten

Wenn Sie eine Migration starten, stellt Dataproc Metastore eine Verbindung zu Cloud SQL her und verwendet Cloud SQL als Back-End-Datenbank. Während dieses Vorgangs führt Dataproc Metastore eine Pipeline aus, die Daten aus Cloud SQL in eine eigene Datenbank (Spanner) kopiert.

Dataproc Metastore verwendet weiterhin Cloud SQL als Back-End und repliziert Daten, bis der vollständige Migrationsprozess aufgerufen wird.

Hinweise

  • Eine Migration bleibt aktiv, bis der Migrationsprozess abgeschlossen ist. Es gibt keine Frist für den Abschluss der Migration. Die Migration kann beispielsweise 1 Tag, 30 Tage oder ein Jahr dauern.

  • Geplante Sicherungen sind während einer Migration nicht eingeschränkt. Die Sicherung ist jedoch möglicherweise unvollständig. Deaktivieren Sie daher während der Migration alle geplanten Sicherungen, um Probleme zu vermeiden.

Beim Starten der Migration werden die folgenden Statusänderungen ausgelöst:

  • Dataproc Metastore wird in den Status MIGRATING versetzt.
  • Der Status der Migrationsausführung wird in RUNNING verschoben.
  • Die Phase der Migrationsausführung wechselt zu REPLICATION.

Console

Jetzt starten

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore:

    Dataproc Metastore öffnen

  2. Klicken Sie auf der Seite Dataproc Metastore auf den Namen des Dienstes, zu dem Sie migrieren möchten.

    Die Seite Dienstdetails wird geöffnet.

  3. Klicken Sie oben auf der Seite auf Daten migrieren.

    Auf der Seite Migration erstellen wird der Tab Konnektivität geöffnet und die Konfigurationseinstellungen der Cloud SQL-Datenbankkonfiguration für Dataproc Metastore werden angezeigt.

Cloud SQL-Datenbankkonfiguration für DPMS

  1. Geben Sie unter Name der Instanzverbindung den Namen der Instanzverbindung der Cloud SQL-Datenbank im folgenden Format ein: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.

  2. Geben Sie im Feld IP-Adresse die IP-Adresse ein, die für die Verbindung zur Cloud SQL-Instanz erforderlich ist.

  3. Geben Sie in das Feld Port den Wert 3306 ein.

  4. Geben Sie im Feld Name der Hive-Datenbank den Namen der Datenbank ein, die als Back-End des selbstverwalteten Hive-Metaspeichers verwendet wird.

  5. Geben Sie im Feld Nutzername den Nutzernamen ein, mit dem Sie Cloud SQL mit dem Hive Metastore verbinden.

  6. Geben Sie im Feld Passwort das Passwort ein, das Sie zum Verbinden von Cloud SQL mit dem Hive Metastore verwenden.

SOCKS5-Proxy-Dienst

  1. Geben Sie im Feld Proxy-Subnetz das Subnetzwerk ein, das im Cloud SQL-VPC-Netzwerk verwendet wird. Dieses Subnetz wird zum Bereitstellen des SOCKS5-Zwischenproxys verwendet.

  2. Geben Sie im Feld Nat-Subnetz das Private Service Connect-Subnetz ein, das eine Verbindung vom Dataproc Metastore-Dienst für den Zugriff auf den Zwischen-Proxy herstellt. Die Subnetzgröße sollte eine Präfixlänge von mindestens /29 haben.

  3. Klicken Sie auf Weiter.

    Der Tab Change Data Capture (CDC) wird geöffnet und zeigt die Konfigurationseinstellungen der Cloud SQL-Datenbankkonfiguration für Datastream an.

Cloud SQL-Datenbankkonfiguration für Datenstreams

  1. Geben Sie im Feld Nutzername den Nutzernamen ein, mit dem Sie sich bei der von Datastream verwendeten Cloud SQL-CDC anmelden.

  2. Geben Sie im Feld Password (Passwort) das Passwort ein, mit dem Sie sich bei der von Datastream verwendeten Cloud SQL CDC anmelden.

  3. Geben Sie im Feld VPC-Netzwerk das Netzwerk ein, das sich im selben VPC-Netzwerk wie die Cloud SQL-Instanz befindet, die von Datastream zum Herstellen einer privaten Verbindung zur CDC verwendet wird.

  4. Geben Sie im Feld Subnetz-IP-Bereich einen Subnetz-IP-Bereich von mindestens /29 ein. Datastream verwendet diese IP-Adresse, um das Peering zum VPC-Netzwerk einzurichten.

  5. Geben Sie im Feld Reverse-Proxy-Subnetz das Subnetzwerk ein, das Sie im selben VPC-Netzwerk wie Cloud SQL erstellt haben. Datastream verwendet dieses Subnetzwerk. Das Subnetzwerk wird zum Hosten einer Reverse-Proxy-Verbindung für die Datastream-CDC verwendet. Das Subnetz muss in derselben Region konfiguriert werden wie der Dataproc Metastore-Dienst.

GCS-Konfiguration

  1. Wählen Sie als Bucket-ID den Cloud Storage-Pfad zum Speichern der CDC-Daten während der Migration aus.

  2. Geben Sie im Feld Root-Pfad den Stammpfad im Cloud Storage-Bucket ein. Die Streamereignisdaten werden in diesen Pfad geschrieben.

  3. Klicken Sie auf Erstellen.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d \
  '{
    "migration_execution": {
      "cloud_sql_migration_config": {
        "cloud_sql_connection_config": {
          "instance_connection_name": INSTANCE_CONNECTION_NAME,
          "hive_database_name": "HIVE_DATABASE_NAME",
          "ip_address": "IP_ADDRESS",
          "port": 3306,
          "username": "CONNECTION_USERNAME",
          "password": "CONNECTION_PASSWORD",
          "proxy_subnet": "PROXY_SUBNET",
          "nat_subnet": "NAT_SUBNET"
        },
        "cdc_config": {
          "username": "CDC_USENAME",
          "password": "CDC_PASSWORD",
          "vpc_network": "VPC_NETWORK",
          "subnet_ip_range": "SUBNET_IP_RANGE",
          "reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
          "bucket": "BUCKET_NAME",
          "root_path": "ROOT_PATH",
        }
      }
    }
}' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration

Ersetzen Sie Folgendes:

  • SERVICE: der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.

Cloud SQL-Migrationskonfiguration

  • INSTANCE_CONNECTION_NAME: der Name der Instanzverbindung für die Cloud SQL-Datenbank im folgenden Format: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.
  • HIVE_DATABASE_NAME: der Name der selbstverwalteten Hive-Datenbank, die mit Cloud SQL verbunden ist
  • IP_ADDRESS ist die IP-Adresse, die für die Verbindung zur Cloud SQL-Instanz erforderlich ist.
  • CONNECTION_USERNAME: der Nutzername, mit dem Sie Cloud SQL mit dem Hive Metastore verbinden.
  • CONNECTION_PASSWORD ist das Passwort, mit dem Sie Cloud SQL mit dem Hive Metastore verbinden.
  • PROXY_SUBNET: Das Subnetzwerk, das im Cloud SQL-VPC-Netzwerk verwendet wird. Dieses Subnetzwerk hostet einen Zwischen-Proxy, um Konnektivität über transitive Netzwerke bereitzustellen.
  • NAT_SUBNET: ein Private Service Connect-Subnetz, das eine Verbindung vom Dataproc Metastore-Dienst für den Zugriff auf den Zwischen-Proxy bereitstellt. Die Subnetzgröße sollte eine Präfixlänge von mindestens /29 haben und im IPv4-Bereich liegen.

CDC-Konfiguration

  • CDC_USERNAME: der Nutzername, mit dem sich der Datastream-Dienst in Cloud SQL anmeldet.
  • CDC_PASSWORD: das Passwort, mit dem sich der Datastream-Dienst in Cloud SQL anmeldet.
  • VPC_NETWORK: ein Netzwerk im selben VPC-Netzwerk wie die Cloud SQL-Instanz, die von Datastream zum Herstellen einer privaten Verbindung zum CDC verwendet wird.
  • SUBNET_IP_RANGE: Ein Subnetz-IP-Bereich von mindestens /29, der von Datastream zum Einrichten des Peerings zum VPC-Netzwerk verwendet wird.
  • REVERSE_PROXY_SUBNET_ID: ein Subnetzwerk im selben VPC-Netzwerk wie die von Datastream verwendete Cloud SQL-Instanz. Das Subnetzwerk wird zum Hosten einer Reverse-Proxy-Verbindung für die Datastream-CDC verwendet. Das Subnetz muss in derselben Region konfiguriert werden wie der Dataproc Metastore-Dienst.
  • BUCKET_NAME: der Cloud Storage-Pfad zum Speichern von CDC-Daten während der Migration.
  • ROOT_PATH: der Stammpfad im Cloud Storage-Bucket. Die Streamereignisdaten werden in diesen Pfad geschrieben.

Migration abschließen

Wenn Sie eine Migration abgeschlossen haben, stellt Dataproc Metastore eine Verbindung zu Spanner her und verwendet Spanner als Back-End-Datenbank.

Eine abgeschlossene Migration löst die folgenden Statusänderungen aus:

  • Dataproc Metastore wird in den Status ACTIVE zurückgesetzt.
  • Der Status der Migrationsausführung wird in SUCCEEDED verschoben.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.

  2. Klicken Sie oben auf der Seite auf Daten migrieren.

    Die Seite Daten migrieren wird geöffnet und zeigt Ihre abgeschlossenen verwalteten Migrationen an.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration

Ersetzen Sie Folgendes:

  • SERVICE: Der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.

Migration abbrechen

Wenn Sie eine Migration abbrechen, macht Dataproc Metastore alle Änderungen rückgängig und verwendet den Spanner-Datenbanktyp als Back-End-Datenbank. Alle Daten, die während der Migration übertragen wurden, werden gelöscht.

Ein Migrationsabbruch führt zu den folgenden Statusänderungen:

  • Dataproc Metastore wird in den Status ACTIVE zurückgesetzt.
  • Der Status der Migrationsausführung wird in CANCELLED verschoben.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.

  2. Klicken Sie oben auf der Seite auf Daten migrieren.

    Die Seite Daten migrieren wird geöffnet und zeigt die abgebrochenen verwalteten Migrationen an.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
   -X POST -d '' \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration

Ersetzen Sie Folgendes:

  • SERVICE_NAME: Der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.

Details zur Migration abrufen

Details zu einer einzelnen verwalteten Migration abrufen.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.

  2. Klicken Sie oben auf der Seite auf Daten migrieren.

    Die Seite Daten migrieren wird geöffnet und Ihre verwalteten Migrationen werden angezeigt.

    Klicken Sie auf den Namen einer verwalteten Migration, um weitere Migrationsdetails zu erhalten.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ersetzen Sie Folgendes:

  • SERVICE: Der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.
  • MIGRATION_ID: Der Name oder die ID Ihrer Dataproc Metastore-Migration.

Migrationen auflisten

Verwaltete Migrationen auflisten.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Dataproc Metastore.

  2. Klicken Sie oben auf der Seite auf Daten migrieren.

    Die Seite Daten migrieren wird geöffnet und Ihre verwalteten Migrationen werden angezeigt.

  3. Prüfen Sie, ob der Befehl die Migrationen aufgelistet hat.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ersetzen Sie Folgendes:

  • SERVICE: Der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.

Migrationen löschen

Verwaltete Migrationen löschen.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X DELETE \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ersetzen Sie Folgendes:

  • SERVICE: der Name oder die ID Ihres Dataproc Metastore-Dienstes.
  • PROJECT_ID: die Projekt-ID des Google Cloud-Projekts, in dem sich Ihr Dataproc Metastore-Dienst befindet.
  • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.
  • MIGRATION_ID: der Name oder die ID der Dataproc Metastore-Migration.

Nächste Schritte