Schema und Daten von Amazon Redshift migrieren

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

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.

Workflow der Migration von Amazon Redshift zu BigQuery

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

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Enable the APIs

  8. Erforderliche Berechtigungen festlegen

    Bevor Sie eine Amazon Redshift-Übertragung erstellen:

    1. Achten Sie darauf, dass das Hauptkonto, das die Übertragung erstellt, die folgenden Berechtigungen in dem Projekt hat, das den Übertragungsjob enthält:

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

      Die vordefinierte IAM-Rolle (Identity and Access Management) roles/bigquery.admin enthält die Berechtigungen bigquery.transfers.update, bigquery.datasets.update und bigquery.datasets.get. Weitere Informationen zu IAM-Rollen in BigQuery Data Transfer Service finden Sie in der 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.

    Dataset erstellen

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

    Zugriff auf Amazon Redshift-Cluster erlauben

    Folgen Sie der Anleitung unter Eingangsregeln für SQL-Clients konfigurieren, um die folgenden IP-Adressen auf die Zulassungsliste zu setzen. Sie können die IP-Adressen zulassen, die dem Speicherort Ihres Datasets entsprechen, oder alle IP-Adressen in der folgenden Tabelle. Diese IP-Adressen von Google sind für Amazon Redshift-Datenmigrationen reserviert.

    Regionale Standorte

    Beschreibung der Region Name der Region IP-Adressen
    Amerika
    Columbus, Ohio us-east5 34.162.72.184
    34.162.173.185
    34.162.205.205
    34.162.81.45
    34.162.182.149
    34.162.59.92
    34.162.157.190
    34.162.191.145
    Dallas us-south1 34.174.172.89
    34.174.40.67
    34.174.5.11
    34.174.96.109
    34.174.148.99
    34.174.176.19
    34.174.253.135
    34.174.129.163
    Iowa us-central1 34.121.70.114
    34.71.81.17
    34.122.223.84
    34.121.145.212
    35.232.1.105
    35.202.145.227
    35.226.82.216
    35.225.241.102
    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
    Mexiko northamerica-south1 34.51.6.35
    34.51.7.113
    34.51.12.83
    34.51.10.94
    34.51.11.219
    34.51.11.52
    34.51.2.114
    34.51.15.251
    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
    Northern 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.199.178.12
    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
    Santiago southamerica-west1 34.176.188.48
    34.176.38.192
    34.176.205.134
    34.176.102.161
    34.176.197.198
    34.176.223.236
    34.176.47.188
    34.176.14.80
    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
    Toronto northamerica-northeast2 34.124.116.108
    34.124.116.107
    34.124.116.102
    34.124.116.80
    34.124.116.72
    34.124.116.85
    34.124.116.20
    34.124.116.68
    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
    Berlin europe-west10 34.32.28.80
    34.32.31.206
    34.32.19.49
    34.32.33.71
    34.32.15.174
    34.32.23.7
    34.32.1.208
    34.32.8.3
    Finnland 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
    Madrid europe-southwest1 34.175.99.115
    34.175.186.237
    34.175.39.130
    34.175.135.49
    34.175.1.49
    34.175.95.94
    34.175.102.118
    34.175.166.114
    Mailand europe-west8 34.154.183.149
    34.154.40.104
    34.154.59.51
    34.154.86.2
    34.154.182.20
    34.154.127.144
    34.154.201.251
    34.154.0.104
    Niederlande 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
    Paris europe-west9 34.163.76.229
    34.163.153.68
    34.155.181.30
    34.155.85.234
    34.155.230.192
    34.155.175.220
    34.163.68.177
    34.163.157.151
    Stockholm europe-north2 34.51.133.48
    34.51.136.177
    34.51.128.140
    34.51.141.252
    34.51.139.127
    34.51.142.55
    34.51.134.218
    34.51.138.9
    Turin europe-west12 34.17.15.186
    34.17.44.123
    34.17.41.160
    34.17.47.82
    34.17.43.109
    34.17.38.236
    34.17.34.223
    34.17.16.47
    Warschau europe-central2 34.118.72.8
    34.118.45.245
    34.118.69.169
    34.116.244.189
    34.116.170.150
    34.118.97.148
    34.116.148.164
    34.116.168.127
    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
    Asiatisch-pazifischer Raum
    Delhi asia-south2 34.126.212.96
    34.126.212.85
    34.126.208.224
    34.126.212.94
    34.126.208.226
    34.126.212.232
    34.126.212.93
    34.126.212.206
    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
    Melbourne australia-southeast2 34.126.196.95
    34.126.196.106
    34.126.196.126
    34.126.196.96
    34.126.196.112
    34.126.196.99
    34.126.196.76
    34.126.196.68
    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
    Naher Osten
    Dammam me-central2 34.166.20.177
    34.166.10.104
    34.166.21.128
    34.166.19.184
    34.166.20.83
    34.166.18.138
    34.166.18.48
    34.166.23.171
    Doha me-central1 34.18.48.121
    34.18.25.208
    34.18.38.183
    34.18.33.25
    34.18.21.203
    34.18.21.80
    34.18.36.126
    34.18.23.252
    Tel Aviv me-west1 34.165.184.115
    34.165.110.74
    34.165.174.16
    34.165.28.235
    34.165.170.172
    34.165.187.98
    34.165.85.64
    34.165.245.97
    Afrika
    Johannesburg africa-south1 34.35.11.24
    34.35.10.66
    34.35.8.32
    34.35.3.248
    34.35.2.113
    34.35.5.61
    34.35.7.53
    34.35.3.17

    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 Amazon S3-Bucket als Staging-Bereich, um die Amazon Redshift-Daten nach BigQuery zu übertragen. Eine ausführliche Anleitung finden Sie in der Amazon-Dokumentation:

    1. Es empfiehlt sich, einen dedizierten Amazon IAM-Nutzer zu erstellen und diesem Nutzer nur Lesezugriff auf Amazon Redshift und Lese-/Schreibzugriff auf Amazon S3 zu gewähren. Dazu können Sie die folgenden Richtlinien anwenden:

      Amazon Redshift-Migration-Amazon-Berechtigungen

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

    Arbeitslaststeuerung durch separate Migrationswarteschlange konfigurieren

    Optional können Sie eine Amazon Redshift-Warteschlange für Migrationszwecke definieren, um die für die Migration verwendeten Ressourcen zu begrenzen und zu trennen. Sie können diese Migrationswarteschlange mit einer maximalen Anzahl gleichzeitiger Abfragen konfigurieren. 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.

    Übertragungsinformationen erfassen

    Erfassen Sie die Informationen, die Sie zum Einrichten der Migration mit BigQuery Data Transfer Service benötigen:

    • Folgen Sie diesen Anweisungen zum Abrufen der JDBC-URL.
    • Rufen Sie den Nutzernamen und das Passwort eines Nutzers mit den entsprechenden Berechtigungen für Ihre Amazon Redshift-Datenbank ab.
    • Folgen Sie der Anleitung unter Zugriff auf Amazon S3-Bucket erlauben, um ein AWS-Zugriffsschlüsselpaar abzurufen.
    • Rufen Sie den URI des Amazon S3-Buckets ab, den Sie für die Übertragung verwenden möchten. Wir empfehlen, für diesen Bucket eine Lebenszyklusrichtlinie 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.

    Daten bewerten

    Im Rahmen der Datenübertragung schreibt BigQuery Data Transfer Service Daten als CSV-Dateien aus Amazon Redshift in Cloud Storage. Wenn diese Dateien das ASCII-0-Zeichen enthalten, können sie nicht in BigQuery geladen werden. Wir empfehlen Ihnen, Ihre Daten zu bewerten, um festzustellen, ob dies ein Problem für Sie ist. Sollte dies der Fall sein, können Sie dieses Problem umgehen. Exportieren Sie dazu Ihre Daten als Parquet-Dateien in Amazon S3 und importieren Sie diese Dateien dann mit BigQuery Data Transfer Service. Weitere Informationen finden Sie unter Übersicht über Amazon S3-Übertragungen.

    Amazon Redshift-Übertragung einrichten

    Wählen Sie eine der folgenden Optionen aus:

    Console

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

      BigQuery aufrufen

    2. Klicken Sie auf Datenübertragungen.

    3. Klicken Sie auf Übertragung erstellen.

    4. Wählen Sie im Abschnitt Quelltyp die Option Migration: Amazon Redshift aus der Liste Quelle aus.

    5. Geben Sie im Abschnitt Transfer config name (Konfigurationsname für Übertragung) im Feld Display name (Anzeigename) einen Namen für die Übertragung ein, z. B. My migration. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Übertragung einfach identifizieren können, wenn Sie sie später ändern möchten.

    6. Wählen Sie im Abschnitt Destination settings (Zieleinstellungen) das von Ihnen erstellte Dataset aus der Liste Dataset aus.

    7. Führen Sie im Abschnitt Details zur Datenquelle folgende Schritte aus:

      1. 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.
      2. 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.
      3. Geben Sie im Feld Password of your database (Passwort für Ihre Datenbank) das Datenbankpasswort ein.

      4. 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.

      5. Geben Sie im Feld Amazon S3 URI (Amazon S3-URI) den URI des S3-Buckets ein, den Sie als Staging-Bereich verwenden möchten.

      6. Geben Sie im Feld Redshift Schema (Redshift-Schema) das Amazon Redshift-Schema ein, das Sie migrieren.

      7. 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. Beispiel:

        • lineitem;ordertb führt zu Übereinstimmungen mit Tabellen, die lineitem und ordertb heißen.
        • .* führt zu Übereinstimmung mit allen Tabellen.

        Lassen Sie dieses Feld leer, um alle Tabellen aus dem angegebenen Schema zu migrieren.

      8. Lassen Sie das Feld bei VPC und dem reservierten IP-Bereich leer.

    8. Wählen Sie im Menü Dienstkonto ein Dienstkonto aus den Dienstkonten aus, die mit IhremGoogle Cloud -Projekt verknüpft sind. Sie können Ihre Übertragung mit einem Dienstkonto verknüpfen, anstatt Ihre Nutzeranmeldedaten zu verwenden. Weitere Informationen zur Verwendung von Dienstkonten mit Datenübertragungen finden Sie unter Dienstkonten verwenden.

    9. Optional: Gehen Sie im Abschnitt Benachrichtigungsoptionen so vor:

      1. Klicken Sie auf den Umschalter, um E-Mail-Benachrichtigungen zu aktivieren. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn ein Übertragungsvorgang fehlschlägt.
      2. Wählen Sie unter Pub/Sub-Thema auswählen Ihr Thema aus oder klicken Sie auf Thema erstellen. Mit dieser Option werden Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfiguriert.
    10. Klicken Sie auf Speichern.

    11. In der Google Cloud Console werden alle Details zur Übertragungseinrichtung angezeigt, darunter ein Ressourcenname für diese Übertragung.

    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 \
        --service_account_name=service_account \
        --params='parameters'

    Wobei:

    • project_id ist die Projekt-ID Ihres Google Cloud . 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 Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
    • service_account ist der Name des Dienstkontos, der zur Authentifizierung der Übertragung verwendet wird. Das Dienstkonto sollte zum selben project_id gehören, das für die Erstellung der Übertragung verwendet wurde, und sollte alle erforderlichen Berechtigungen haben.
    • 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.

    Java

    Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

    Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
    import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
    import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
    import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
    import com.google.protobuf.Struct;
    import com.google.protobuf.Value;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    // Sample to create redshift transfer config
    public class CreateRedshiftTransfer {
    
      public static void main(String[] args) throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        final String projectId = "MY_PROJECT_ID";
        String datasetId = "MY_DATASET_ID";
        String datasetRegion = "US";
        String jdbcUrl = "MY_JDBC_URL_CONNECTION_REDSHIFT";
        String dbUserName = "MY_USERNAME";
        String dbPassword = "MY_PASSWORD";
        String accessKeyId = "MY_AWS_ACCESS_KEY_ID";
        String secretAccessId = "MY_AWS_SECRET_ACCESS_ID";
        String s3Bucket = "MY_S3_BUCKET_URI";
        String redShiftSchema = "MY_REDSHIFT_SCHEMA";
        String tableNamePatterns = "*";
        String vpcAndReserveIpRange = "MY_VPC_AND_IP_RANGE";
        Map<String, Value> params = new HashMap<>();
        params.put("jdbc_url", Value.newBuilder().setStringValue(jdbcUrl).build());
        params.put("database_username", Value.newBuilder().setStringValue(dbUserName).build());
        params.put("database_password", Value.newBuilder().setStringValue(dbPassword).build());
        params.put("access_key_id", Value.newBuilder().setStringValue(accessKeyId).build());
        params.put("secret_access_key", Value.newBuilder().setStringValue(secretAccessId).build());
        params.put("s3_bucket", Value.newBuilder().setStringValue(s3Bucket).build());
        params.put("redshift_schema", Value.newBuilder().setStringValue(redShiftSchema).build());
        params.put("table_name_patterns", Value.newBuilder().setStringValue(tableNamePatterns).build());
        params.put(
            "migration_infra_cidr", Value.newBuilder().setStringValue(vpcAndReserveIpRange).build());
        TransferConfig transferConfig =
            TransferConfig.newBuilder()
                .setDestinationDatasetId(datasetId)
                .setDatasetRegion(datasetRegion)
                .setDisplayName("Your Redshift Config Name")
                .setDataSourceId("redshift")
                .setParams(Struct.newBuilder().putAllFields(params).build())
                .setSchedule("every 24 hours")
                .build();
        createRedshiftTransfer(projectId, transferConfig);
      }
    
      public static void createRedshiftTransfer(String projectId, TransferConfig transferConfig)
          throws IOException {
        try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
          ProjectName parent = ProjectName.of(projectId);
          CreateTransferConfigRequest request =
              CreateTransferConfigRequest.newBuilder()
                  .setParent(parent.toString())
                  .setTransferConfig(transferConfig)
                  .build();
          TransferConfig config = client.createTransferConfig(request);
          System.out.println("Cloud redshift transfer created successfully :" + config.getName());
        } catch (ApiException ex) {
          System.out.print("Cloud redshift transfer was not created." + ex.toString());
        }
      }
    }

    Kontingente und Limits

    BigQuery hat ein Ladekontingent von 15 TB pro Ladejob und für jede Tabelle. Amazon Redshift komprimiert die Tabellendaten intern. Daher ist das Datenvolumen der exportierten Tabelle größer als bei Amazon Redshift angezeigt wird. Wenden Sie sich bitte zuvor an Cloud Customer Care, wenn Sie eine Tabelle mit mehr als 15 TB migrieren möchten.

    Durch die Nutzung dieses Dienstes können Kosten außerhalb von Google anfallen. 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.

    Nächste Schritte