Daten von Amazon Redshift migrieren

Übersicht

In diesem Dokument wird die Migration von Daten von Amazon Redshift zu BigQuery über öffentliche IP-Adressen beschrieben.

Informationen zum Übertragen von Daten von einer Redshift-Instanz über eine Virtual Private Cloud (VPC) zu privaten IP-Adressen finden Sie unter Amazon Redshift-Daten mit VPC migrieren.

Mit BigQuery Data Transfer Service können Sie Daten aus einem Amazon Redshift-Data Warehouse nach BigQuery kopieren. Der Dienst aktiviert die Migrations-Agents in GKE und löst einen Entladevorgang von Amazon Redshift zu einem Staging-Bereich in einem Amazon S3-Bucket aus. Anschließend überträgt BigQuery Data Transfer Service Ihre Daten aus dem Amazon S3-Bucket nach BigQuery.

In diesem Diagramm wird der Datenfluss während einer Migration zwischen einem Amazon Redshift-Data Warehouse und BigQuery dargestellt.

Vorbereitung

In diesem Abschnitt wird die schrittweise Einrichtung einer Datenmigration von Amazon Redshift nach BigQuery beschrieben. Folgende Schritte sind auszuführen:

  • Google Cloud-Anforderungen: So erfüllen Sie die Voraussetzungen und legen Berechtigungen für Google Cloud fest.
  • Erlauben Sie den Zugriff auf Ihren Amazon Redshift-Cluster.
  • Erlauben Sie den Zugriff auf Ihren Amazon S3-Bucket, mit dem Sie Daten vorübergehend zwischenspeichern. Notieren Sie sich das Schlüsselpaar, da Sie es in einem späteren Schritt verwenden müssen.
  • Richten Sie die Migration mit BigQuery Data Transfer Service ein. Folgendes wird benötigt:
    • Die Amazon Redshift-JDBC-URL. Folgen Sie diesen Anweisungen zum Abrufen der JDBC-URL.
    • Der Nutzername und das Passwort Ihrer Amazon Redshift-Datenbank.
    • Das AWS-Zugriffsschlüsselpaar, das Sie durch diesen Schritt erhalten: Zugriff auf S3-Bucket erlauben.
    • Der URI des Amazon S3-Buckets Wir empfehlen, eine Lebenszyklusrichtlinie für diesen Bucket einzurichten, um unnötige Gebühren zu vermeiden. Die empfohlene Ablaufzeit beträgt 24 Stunden, damit genügend Zeit vorhanden ist, um alle Daten nach BigQuery zu übertragen.

Erforderliche Berechtigungen

Bevor Sie eine Amazon Redshift-Übertragung erstellen:

  1. Sorgen Sie dafür, dass die Person, die die Übertragung erstellt, die folgenden Berechtigungen in BigQuery hat:

    • bigquery.transfers.update-Berechtigungen zum Erstellen der Übertragung
    • bigquery.datasets.update-Berechtigungen für das Ziel-Dataset

    Die vordefinierte IAM-Rolle bigquery.admin enthält die Berechtigungen bigquery.transfers.update und bigquery.datasets.update. Weitere Informationen zu IAM-Rollen in BigQuery Data Transfer Service finden Sie unter Referenz zur Zugriffssteuerung.

  2. Prüfen Sie anhand der Dokumentation zu Amazon S3, ob Sie alle erforderlichen Berechtigungen zum Aktivieren der Übertragung konfiguriert haben. Auf die Amazon S3-Quelldaten muss mindestens die AWS-Verwaltungsrichtlinie AmazonS3ReadOnlyAccess angewendet werden.

Google Cloud-Anforderungen

Prüfen Sie, ob Sie in Google Cloud die folgenden Voraussetzungen für eine erfolgreiche Migration aus dem Amazon Redshift-Data Warehouse erfüllen.

  1. Wählen Sie ein Google Cloud-Projekt zum Speichern Ihrer Migrationsdaten aus oder erstellen Sie eins.

    • Rufen Sie in der Cloud Console die Seite für die Projektauswahl auf.

      Zur Projektauswahl

    • Wählen Sie ein Cloud-Projekt aus oder erstellen Sie eines.

  2. Aktivieren Sie die BigQuery Data Transfer Service API.

    Klicken Sie in der Google Cloud Console auf der Seite BigQuery Data Transfer Service API auf Enable (Aktivieren).

    API aktivieren

    BigQuery ist in neuen Projekten automatisch aktiviert. Für ein vorhandenes Projekt müssen Sie möglicherweise die BigQuery API aktivieren. Ein grünes Häkchen zeigt an, dass Sie die API bereits aktiviert haben.

    Aktivierte API

  3. Erstellen Sie ein BigQuery-Dataset zum Speichern Ihrer Daten. Sie müssen keine Tabellen erstellen.

  4. Lassen Sie in Ihrem Browser Pop-ups von bigquery.cloud.google.com zu, damit das Berechtigungsfenster beim Einrichten der Übertragung angezeigt werden kann. Sie müssen BigQuery Data Transfer Service die Berechtigung erteilen, Ihre Übertragung zu verwalten.

Zugriff auf Amazon Redshift-Cluster erlauben

Folgen Sie der Anleitung von Amazon, um die folgenden IP-Adressen zuzulassen. Sie können die IP-Adressen zulassen, die dem Speicherort Ihres Datasets entsprechen, oder alle IP-Adressen in der folgenden Tabelle zulassen. Diese IP-Adressen von Google sind für Amazon Redshift-Datenmigrationen reserviert.

Regionale Standorte

Beschreibung der Region Name der Region IP-Adressen
Amerika
Las Vegas us-west4 34.125.53.201
34.125.69.174
34.125.159.85
34.125.152.1
34.125.195.166
34.125.50.249
34.125.68.55
34.125.91.116
Los Angeles us-west2 35.236.59.167
34.94.132.139
34.94.207.21
34.94.81.187
34.94.88.122
35.235.101.187
34.94.238.66
34.94.195.77
Montreal northamerica-northeast1 34.95.20.253
35.203.31.219
34.95.22.233
34.95.27.99
35.203.12.23
35.203.39.46
35.203.116.49
35.203.104.223
Nord-Virginia us-east4 35.245.95.250
35.245.126.228
35.236.225.172
35.245.86.140
35.199.31.35
35.199.19.115
35.230.167.48
35.245.128.132
35.245.111.126
35.236.209.21
Oregon us-west1 35.197.117.207
35.197.117.207
35.197.86.233
34.82.155.140
35.247.28.48
35.247.31.246
35.247.106.13
34.105.85.54
Salt Lake City us-west3 34.106.37.58
34.106.85.113
34.106.28.153
34.106.64.121
34.106.246.131
34.106.56.150
34.106.41.31
34.106.182.92
São Paolo southamerica-east1 35.199.88.228
34.95.169.140
35.198.53.30
34.95.144.215
35.247.250.120
35.247.255.158
34.95.231.121
35.198.8.157
South Carolina us-east1 35.196.207.183
35.237.231.98
104.196.102.222
35.231.13.201
34.75.129.215
34.75.127.9
35.229.36.137
35.237.91.139
Europa
Belgien europe-west1 35.240.36.149
35.205.171.56
34.76.234.4
35.205.38.234
34.77.237.73
35.195.107.238
35.195.52.87
34.76.102.189
Irland europe-north1 35.228.35.94
35.228.183.156
35.228.211.18
35.228.146.84
35.228.103.114
35.228.53.184
35.228.203.85
35.228.183.138
Frankfurt europe-west3 35.246.153.144
35.198.80.78
35.246.181.106
35.246.211.135
34.89.165.108
35.198.68.187
35.242.223.6
34.89.137.180
London europe-west2 35.189.119.113
35.189.101.107
35.189.69.131
35.197.205.93
35.189.121.178
35.189.121.41
35.189.85.30
35.197.195.192
Moldau europe-west4 35.204.237.173
35.204.18.163
34.91.86.224
34.90.184.136
34.91.115.67
34.90.218.6
34.91.147.143
34.91.253.1
Zürich europe-west6 34.65.205.160
34.65.121.140
34.65.196.143
34.65.9.133
34.65.156.193
34.65.216.124
34.65.233.83
34.65.168.250
Asia Pacific
Hongkong asia-east2 34.92.245.180
35.241.116.105
35.220.240.216
35.220.188.244
34.92.196.78
34.92.165.209
35.220.193.228
34.96.153.178
Jakarta asia-southeast2 34.101.79.105
34.101.129.32
34.101.244.197
34.101.100.180
34.101.109.205
34.101.185.189
34.101.179.27
34.101.197.251
Mumbai asia-south1 34.93.67.112
35.244.0.1
35.200.245.13
35.200.203.161
34.93.209.130
34.93.120.224
35.244.10.12
35.200.186.100
Osaka asia-northeast2 34.97.94.51
34.97.118.176
34.97.63.76
34.97.159.156
34.97.113.218
34.97.4.108
34.97.119.140
34.97.30.191
Seoul asia-northeast3 34.64.152.215
34.64.140.241
34.64.133.199
34.64.174.192
34.64.145.219
34.64.136.56
34.64.247.158
34.64.135.220
Singapur asia-southeast1 34.87.12.235
34.87.63.5
34.87.91.51
35.198.197.191
35.240.253.175
35.247.165.193
35.247.181.82
35.247.189.103
Sydney australia-southeast1 35.189.33.150
35.189.38.5
35.189.29.88
35.189.22.179
35.189.20.163
35.189.29.83
35.189.31.141
35.189.14.219
Taiwan asia-east1 35.221.201.20
35.194.177.253
34.80.17.79
34.80.178.20
34.80.174.198
35.201.132.11
35.201.223.177
35.229.251.28
35.185.155.147
35.194.232.172
Tokio asia-northeast1 34.85.11.246
34.85.30.58
34.85.8.125
34.85.38.59
34.85.31.67
34.85.36.143
34.85.32.222
34.85.18.128
34.85.23.202
34.85.35.192

Multiregionale Standorte

Beschreibung des multiregionalen Standorts Name des multiregionalen Standorts IP-Adressen
Rechenzentren in Mitgliedsstaaten der Europäischen Union1 EU 34.76.156.158
34.76.156.172
34.76.136.146
34.76.1.29
34.76.156.232
34.76.156.81
34.76.156.246
34.76.102.206
34.76.129.246
34.76.121.168
Rechenzentren in den USA US 35.185.196.212
35.197.102.120
35.185.224.10
35.185.228.170
35.197.5.235
35.185.206.139
35.197.67.234
35.197.38.65
35.185.202.229
35.185.200.120

1 Daten in der Multiregion EU werden nicht in den Rechenzentren europe-west2 (London) oder europe-west6 (Zürich) gespeichert.

Zugriff auf Amazon S3-Bucket erlauben

Sie benötigen einen S3-Bucket als Staging-Bereich, um die Amazon Redshift-Daten nach BigQuery zu übertragen. Detaillierte Anleitungen von Amazon finden Sie hier.

  1. Es empfiehlt sich, einen dedizierten Amazon IAM-Nutzer zu erstellen und diesem Nutzer nur Lesezugriff auf Redshift und Lese-/Schreibzugriff auf S3 zu gewähren. Dies kann durch das Anwenden folgender vorhandener Richtlinien erreicht werden:

    Amazon-Berechtigungen für Redshift-Migration

  2. Erstellen Sie ein IAM-Nutzer-Zugriffsschlüsselpaar für Amazon.

Optional: Arbeitslaststeuerung durch separate Migrationswarteschlange

Sie können eine Amazon Redshift-Warteschlange für Migrationszwecke definieren, um die für die Migration verwendeten Ressourcen zu begrenzen und zu trennen. Diese Migrationswarteschlange kann mit einer maximalen Anzahl gleichzeitiger Abfragen konfiguriert werden. Anschließend können Sie der Warteschlange eine bestimmte Migrationsnutzergruppe zuordnen und diese Anmeldedaten verwenden, wenn Sie die Migration zur Übertragung von Daten nach BigQuery einrichten. Der Transfer Service hat so nur Zugriff auf die Migrationswarteschlange.

Amazon Redshift-Übertragung einrichten

So richten Sie eine Amazon Redshift-Übertragung ein:

Console

  1. Rufen Sie in der Cloud Console die Seite "BigQuery" auf.

    Zur Seite "BigQuery"

  2. Klicken Sie auf Übertragungen.

  3. Klicken Sie auf Übertragung hinzufügen.

  4. Gehen Sie auf der Seite New Transfer (Neue Übertragung) so vor:

    • Wählen Sie als Source (Quelle) die Option Migration: Amazon Redshift aus.
    • Geben Sie als Display name (Anzeigename) einen Namen wie My migration für die Übertragung ein. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Übertragung einfach identifizieren können, wenn Sie sie später ändern möchten.
    • Wählen Sie für Destination dataset (Ziel-Dataset) das entsprechende Dataset aus.

      Neue Amazon Redshift-Migration allgemein

  5. Fahren Sie unter Data Source Details (Details zur Datenquelle) mit spezifischen Details für Ihre Amazon Redshift-Übertragung fort.

    • Geben Sie im Feld JDBC connection url for Amazon Redshift (JDBC-Verbindungs-URL für Amazon Redshift) die JDBC-URL für den Zugriff auf Ihren Amazon Redshift-Cluster ein.
    • Geben Sie als Username of your database (Nutzername für Ihre Datenbank) den Nutzernamen für die Amazon Redshift-Datenbank ein, die Sie migrieren möchten.
    • Geben Sie im Feld Password of your database (Passwort für Ihre Datenbank) das Datenbankpasswort ein.
    • Geben Sie bei Access key ID (Zugriffsschlüssel-ID) und Secret access key (Geheimer Zugriffsschlüssel) das Zugriffsschlüsselpaar ein, das Sie im Schritt Zugriff auf S3-Bucket erlauben erhalten haben.
    • Geben Sie im Feld Amazon S3 URI (Amazon S3-URI) den URI des S3-Buckets ein, den Sie als Staging-Bereich verwenden möchten.
    • Geben Sie im Feld Redshift Schema (Redshift-Schema) das Amazon Redshift-Schema ein, das Sie migrieren.
    • Geben Sie bei Table name patterns (Tabellennamensmuster) einen Namen oder ein Muster für übereinstimmende Tabellennamen im Schema an. Sie können das Muster mit regulären Ausdrücken in folgendem Format angeben: <table1Regex>;<table2Regex>. Das Muster sollte der Java-Syntax für reguläre Ausdrücke folgen.

      Neue Details zur Amazon Redshift-Migrationsdatenquelle

    • (Optional) Im Abschnitt Notification options (Benachrichtigungsoptionen):

      • Klicken Sie auf die Umschaltfläche, um E-Mail-Benachrichtigungen zu aktivieren. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn ein Übertragungsvorgang fehlschlägt.
      • Wählen Sie unter Select a Cloud Pub/Sub topic (Cloud Pub/Sub-Thema auswählen) Ihr Thema aus oder klicken Sie auf Create a topic (Thema erstellen). Mit dieser Option werden Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfiguriert.

        Pub/Sub-Thema

  6. Klicken Sie auf Speichern.

  7. In der Cloud Console werden alle Details zur Übertragungseinrichtung angezeigt, darunter ein Resource name (Ressourcenname) für diese Übertragung.

    Übertragungsbestätigung

Klassische UI

  1. Rufen Sie die klassische BigQuery-Web-UI auf.

    Zur klassischen BigQuery-Web-UI

  2. Klicken Sie auf Transfers (Übertragungen).

  3. Klicken Sie auf Übertragung hinzufügen.

  4. Gehen Sie auf der Seite New Transfer (Neue Übertragung) so vor:

    • Wählen Sie als Source (Quelle) die Option Migration: Amazon Redshift aus.
    • Geben Sie als Display name (Anzeigename) einen Namen wie My Migration für die Übertragung ein. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Übertragung einfach identifizieren können, wenn Sie sie später ändern möchten.
    • Wählen Sie für Destination dataset (Ziel-Dataset) das entsprechende Dataset aus.
    • Geben Sie im Feld JDBC connection url for Amazon Redshift (JDBC-Verbindungs-URL für Amazon Redshift) die JDBC-URL für den Zugriff auf Ihren Amazon Redshift-Cluster ein.
    • Geben Sie als Username of your database (Nutzername für Ihre Datenbank) den Nutzernamen für die Amazon Redshift-Datenbank ein, die Sie migrieren möchten.
    • Geben Sie im Feld Password of your database (Passwort für Ihre Datenbank) das Datenbankpasswort ein.
    • Geben Sie bei Access key ID (Zugriffsschlüssel-ID) und "Secret access key" (Geheimer Zugriffsschlüssel) das Zugriffsschlüsselpaar ein, das Sie im Schritt Zugriff auf S3-Bucket erlauben erhalten haben.
    • Geben Sie im Feld Amazon S3 URI (Amazon S3-URI) den URI des S3-Buckets ein, den Sie als Staging-Bereich verwenden möchten.
    • Geben Sie im Feld Redshift Schema (Redshift-Schema) das Amazon Redshift-Schema ein, von dem Sie Tabellen migrieren möchten.
    • Geben Sie bei Table name patterns (Tabellennamensmuster) einen Namen oder ein Muster für übereinstimmende Tabellennamen im Datenbankschema an. Sie können das Muster mit regulären Ausdrücken in folgendem Format angeben: <table1Regex>;<table2Regex>. Das Muster sollte der Java-Syntax für reguläre Ausdrücke folgen.

    Neue Details zur Amazon Redshift-Migrationsdatenquelle

    • Optional: Maximieren Sie den Abschnitt Advanced (Erweitert) und konfigurieren Sie die Ausführungsbenachrichtigungen für die Übertragung.

      • Geben Sie unter Cloud Pub/Sub topic (Cloud Pub/Sub-Thema) den Namen für Ihr Thema ein, z. B. projects/myproject/topics/mytopic.
      • Aktivieren Sie Send email notifications (E-Mail-Benachrichtigungen senden), um bei Fehlern bei der Übertragungsausführung Benachrichtigungen zu senden.
      • Aktivieren Sie beim Einrichten einer Übertragung nicht Disabled (Deaktiviert). Unter Mit Übertragungen arbeiten erfahren Sie, wie Sie vorhandene Übertragungen deaktivieren.

      Pub/Sub-Thema

  5. Klicken Sie auf Hinzufügen.

  6. Klicken Sie bei der entsprechenden Aufforderung auf Allow (Zulassen), um BigQuery Data Transfer Service die Berechtigung zu erteilen, Ihre Übertragung zu verwalten. Sie müssen Pop-ups von bigquery.cloud.google.com zulassen, damit das Berechtigungsfenster angezeigt wird.

    Übertragung zulassen

  7. In der Web-UI werden alle Details zur Übertragungseinrichtung angezeigt, darunter ein Resource name (Ressourcenname) für diese Übertragung.

    Übertragungsbestätigung

bq

Geben Sie den Befehl bq mk ein und geben Sie das Flag --transfer_config für die Übertragungserstellung an. Die folgenden Flags sind ebenfalls erforderlich:

  • --project_id
  • --data_source
  • --target_dataset
  • --display_name
  • --params
bq mk \
--transfer_config \
--project_id=project_id \
--data_source=data_source \
--target_dataset=dataset \
--display_name=name \
--params='parameters'

Dabei gilt:

  • project_id ist Ihre Google Cloud-Projekt-ID. Wenn --project_id nicht angegeben ist, wird das Standardprojekt verwendet.
  • data_source ist die Datenquelle redshift.
  • dataset ist das BigQuery-Ziel-Dataset für die Übertragungskonfiguration.
  • name ist der Anzeigename für die Übertragungskonfiguration. Der Name der Übertragung kann ein beliebiger Wert sein, mit dem Sie die Übertragung einfach identifizieren können, wenn Sie sie später ändern müssen.
  • parameters enthält die Parameter für die erstellte Übertragungskonfiguration im JSON-Format. Beispiel: --params='{"param":"param_value"}'.

Folgende Parameter sind für eine Amazon Redshift-Übertragungskonfiguration erforderlich:

  • jdbc_url: Die JDBC-Verbindungs-URL wird zum Ermitteln des Redshift-Clusters verwendet.
  • database_username: Der Nutzername für den Zugriff auf Ihre Datenbank zum Entladen der angegebenen Tabellen.
  • database_password: Der Nutzername für den Zugriff auf Ihre Datenbank zum Entladen der angegebenen Tabellen.
  • access_key_id: Die Zugriffsschlüssel-ID zum Signieren von Anfragen an AWS.
  • secret_access_key: Der geheime Zugriffsschlüssel, der zusammen mit der Zugriffsschlüssel-ID zum Signieren von Anfragen an AWS verwendet wird.
  • s3_bucket: Der Amazon S3-URI, der mit "s3://" beginnt und ein Präfix für zu verwendende temporäre Dateien angibt.
  • redshift_schema: Das Redshift-Schema, das alle zu migrierenden Tabellen enthält.
  • table_name_patterns: Tabellennamensmuster, getrennt durch ein Semikolon (;). Das Tabellenmuster ist ein regulärer Ausdruck für die zu migrierenden Tabellen. Wenn nicht angegeben, werden alle Tabellen im Datenbankschema migriert.

Durch den folgenden Befehl erstellen Sie beispielsweise eine Amazon Redshift-Übertragung mit dem Namen My Transfer, einem Ziel-Dataset namens mydataset und einem Projekt mit der ID google.com:myproject.

bq mk \
--transfer_config \
--project_id=myproject \
--data_source=redshift \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"jdbc_url":"jdbc:postgresql://test-example-instance.sample.us-west-1.redshift.amazonaws.com:5439/dbname","database_username":"my_username","database_password":"1234567890","access_key_id":"A1B2C3D4E5F6G7H8I9J0","secret_access_key":"1234567890123456789012345678901234567890","s3_bucket":"s3://bucket/prefix","redshift_schema":"public","table_name_patterns":"table_name"}'

API

Verwenden Sie die Methode projects.locations.transferConfigs.create und geben Sie eine Instanz der Ressource TransferConfig an.

Kontingente und Limits

BigQuery hat ein Ladekontingent von 15 TB pro Ladejob und Tabelle. Amazon Redshift komprimiert die Tabellendaten intern. Daher ist die exportierte Tabellengröße größer als die von Amazon Redshift gemeldete Tabellengröße. Wenn Sie eine Tabelle mit mehr als 15 TB migrieren möchten, wenden Sie sich bitte zuvor an bq-dts-support@google.com.

Beachten Sie, dass durch die Nutzung dieses Dienstes Kosten außerhalb von Google anfallen können. Weitere Informationen finden Sie auf den Preisseiten von Amazon Redshift und Amazon S3.

Aufgrund des Konsistenzmodells von Amazon S3 kann es sein, dass einige Dateien nicht in die Übertragung nach BigQuery einbezogen werden.

Weitere Informationen