Migrer le schéma et les données depuis Amazon Redshift

Ce document décrit le processus de migration des données depuis Amazon Redshift vers BigQuery à l'aide d'adresses IP publiques.

Vous pouvez utiliser le service de transfert de données BigQuery pour copier vos données d'un entrepôt de données Amazon Redshift vers BigQuery. Le service engage les agents de migration dans GKE et déclenche une opération de déchargement depuis Amazon Redshift vers une zone de préproduction d'un bucket Amazon S3. Ensuite, le service de transfert de données BigQuery transférera vos données du compartiment Amazon S3 vers BigQuery.

Ce schéma montre la circulation globale des données lors de la migration entre un entrepôt de données Amazon Redshift et un entrepôt BigQuery.

Workflow de la migration d'Amazon Redshift vers BigQuery

Si vous souhaitez transférer des données de votre instance Amazon Redshift via un cloud privé virtuel (VPC) sur des adresses IP privées, consultez la page Migrer des données Amazon Redshift avec un réseau VPC.

Avant de commencer

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Trusted Cloud project.

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

    Enable the APIs

  4. Définir les autorisations requises

    Avant de créer un transfert Amazon Redshift :

    1. Assurez-vous que le compte principal qui crée le transfert dispose des autorisations suivantes dans le projet contenant la tâche de transfert :

      • Autorisations bigquery.transfers.update pour créer le transfert
      • Autorisations bigquery.datasets.get et bigquery.datasets.update sur l'ensemble de données cible

      Le rôle IAM (Identity and Access Management) prédéfini roles/bigquery.admin inclut les autorisations bigquery.transfers.update, bigquery.datasets.update et bigquery.datasets.get. Pour en savoir plus sur les rôles IAM associés au service de transfert de données BigQuery, consultez la page Contrôle des accès.

    2. Consultez la documentation d'Amazon S3 pour vous assurer que vous avez configuré toutes les autorisations nécessaires pour activer le transfert. Au minimum, la stratégie AWS gérée AmazonS3ReadOnlyAccess doit être appliquée aux données sources Amazon S3.

    Créer un ensemble de données

    Créez un ensemble de données BigQuery pour stocker vos données. Vous n'avez pas besoin de créer de tables.

    Accorder l'accès à votre cluster Amazon Redshift

    Suivez les instructions de la page Configurer les règles entrantes pour les clients SQL pour ajouter les adresses IP suivantes à la liste d'autorisation. Vous pouvez autoriser les adresses IP correspondant à l'emplacement de votre ensemble de données ou toutes les adresses IP du tableau ci-dessous. Les adresses IP suivantes, qui appartiennent à Google, sont réservées aux migrations de données Amazon Redshift.

    Zones régionales

    Description de la région Nom de la région Adresses IP
    Amériques
    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
    Mexique 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
    Montréal 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
    Virginie du Nord 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 Paulo 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
    Caroline du Sud 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
    Europe
    Belgique 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
    Finlande 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
    Francfort 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
    Londres 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
    Milan 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
    Pays-Bas 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
    Varsovie 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
    Zurich 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
    Asie-Pacifique
    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
    Hong Kong 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
    Séoul 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
    Singapour 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
    Taïwan 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
    Tokyo 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
    Moyen-Orient
    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
    Afrique
    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

    Zones multirégionales

    Description de la zone multirégionale Nom de la zone multirégionale Adresses IP
    Centres de données dans les États membres de l'Union européenne1 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
    Centres de données aux États-Unis 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 Les données situées dans la zone multirégionale EU ne sont pas stockées dans les centres de données des régions europe-west2 (Londres) ou europe-west6 (Zurich).

    Accorder l'accès à votre bucket Amazon S3

    Vous devez disposer d'un bucket Amazon S3 à utiliser comme zone intermédiaire pour transférer les données Amazon Redshift vers BigQuery. Pour obtenir des instructions détaillées, consultez la documentation Amazon.

    1. Nous vous recommandons de créer un utilisateur IAM Amazon dédié et de lui octroyer uniquement un accès en lecture à Amazon Redshift ainsi qu'un accès en lecture et en écriture à Amazon S3. Pour réaliser cette étape, vous pouvez appliquer les règles suivantes :

      Autorisations Amazon pour les migrations Amazon Redshift

    2. Créez une paire de clés d'accès utilisateur IAM Amazon.

    Configurer le contrôle de la charge de travail avec une file d'attente de migration distincte

    Vous pouvez définir une file d'attente Amazon Redshift à des fins de migration pour limiter et séparer les ressources utilisées pour la migration. Vous pouvez configurer cette file d'attente de migration avec un nombre maximal de requêtes simultanées. Vous pouvez ensuite associer un groupe d'utilisateurs de migration donné à la file d'attente, et utiliser ces identifiants lorsque vous configurez la migration pour transférer des données vers BigQuery. Le service de transfert a uniquement accès à la file d'attente de migration.

    Recueillir les informations de transfert

    Recueillez les informations dont vous avez besoin pour configurer la migration avec le service de transfert de données BigQuery :

    • Suivez ces instructions pour obtenir l'URL JDBC.
    • Obtenez le nom d'utilisateur et le mot de passe d'un utilisateur disposant des autorisations appropriées pour votre base de données Amazon Redshift.
    • Suivez les instructions de la section Accorder l'accès à votre bucket Amazon S3 pour obtenir une paire de clé d'accès AWS.
    • Obtenez l'URI du bucket Amazon S3 que vous souhaitez utiliser pour le transfert. Nous vous recommandons de définir une règle de cycle de vie pour ce bucket afin d'éviter des frais inutiles. Nous recommandons une durée d'expiration de 24 heures afin de laisser suffisamment de temps pour le transfert de toutes les données vers BigQuery.

    Évaluer les données

    Dans le cadre du transfert de données, le Service de transfert de données BigQuery écrit les données d'Amazon Redshift dans Cloud Storage sous forme de fichiers CSV. Si ces fichiers contiennent le caractère ASCII 0, ils ne peuvent pas être chargés dans BigQuery. Nous vous suggérons d'évaluer vos données pour déterminer si cela peut poser problème. Si tel est le cas, vous pouvez contourner ce problème en exportant vos données vers Amazon S3 sous forme de fichiers Parquet, puis en les important à l'aide du Service de transfert de données BigQuery. Pour en savoir plus, consultez la page Présentation des transferts Amazon S3.

    Configurer un transfert Amazon Redshift

    Sélectionnez l'une des options suivantes :

    Console

    1. Dans la console Trusted Cloud , accédez à la page BigQuery.

      Accéder à BigQuery

    2. Cliquez sur Transferts de données.

    3. Cliquez sur Créer un transfert.

    4. Dans la section Source type (Type de source), sélectionnez Migration: Amazon Redshift (Migration : Amazon Redshift) dans la liste Source.

    5. Dans la section Transfer config name (Nom de la configuration de transfert), saisissez un nom pour le transfert, tel que My migration, dans le champ Display name (Nom à afficher). Le nom à afficher peut être n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier par la suite.

    6. Dans la section Destination settings (Paramètres de destination), choisissez l'ensemble de données que vous avez créé dans la liste Dataset (Ensemble de données).

    7. Dans la section Data source details (Détails de la source de données), procédez comme suit :

      1. Pour JDBC connection url for Amazon Redshift, (URL de connexion JDBC pour Amazon Redshift), indiquez l'URL JDBC qui permet d'accéder à votre cluster Amazon Redshift.
      2. Sous Username of your database (Nom d'utilisateur de votre base de données), saisissez le nom d'utilisateur de la base de données Amazon Redshift que vous souhaitez migrer.
      3. Sous Password of your database (Mot de passe de votre base de données), entrez le mot de passe de la base de données.

      4. Dans les champs Access key ID (ID de clé d'accès) et Secret access key (Clé d'accès secrète), saisissez la paire de clés d'accès obtenue à l'étape Accorder l'accès à votre bucket S3.

      5. Pour Amazon S3 URI (URI Amazon S3), saisissez l'URI du bucket S3 que vous utiliserez comme zone intermédiaire.

      6. Sous Amazon Redshift Schema (Schéma Amazon Redshift), saisissez le schéma Amazon Redshift à partir duquel vous souhaitez migrer des tables.

      7. Sous Table name patterns (Modèles de nom de table), spécifiez un nom ou un modèle pour faire correspondre les noms de table dans le schéma. Vous pouvez utiliser des expressions régulières pour spécifier le modèle au format suivant : <table1Regex>;<table2Regex>. Le modèle doit suivre la syntaxe d'expression régulière Java. Par exemple :

        • lineitem;ordertb renvoie les tables nommées lineitem et ordertb.
        • .* renvoie toutes les tables.

        Laissez ce champ vide pour migrer toutes les tables à partir du schéma spécifié.

      8. Pour VPC et la plage d'adresses IP réservée, laissez le champ vide.

    8. Dans le menu Compte de service, sélectionnez un compte de service parmi ceux associés à votre projetTrusted Cloud . Vous pouvez associer un compte de service à votre transfert au lieu d'utiliser vos identifiants utilisateur. Pour en savoir plus sur l'utilisation des comptes de service pour les transferts de données, consultez Utiliser des comptes de service.

      • Si vous vous êtes connecté avec une identité fédérée, vous devez disposer d'un compte de service pour créer un transfert. Si vous vous êtes connecté avec un compte Google, un compte de service pour le transfert est facultatif.
      • Le compte de service doit disposer des autorisations requises.
    9. Facultatif : dans la section Options de notification, procédez comme suit :

      1. Cliquez sur le bouton pour activer les notifications par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
      2. Pour le champ Select a Pub/Sub topic (Sélectionner un sujet Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet). Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert.
    10. Cliquez sur Enregistrer.

    11. La console Trusted Cloud affiche tous les détails de configuration du transfert, y compris un nom de ressource pour ce transfert.

    bq

    Saisissez la commande bq mk, puis spécifiez l'option de création de transfert --transfer_config. Les paramètres suivants sont également requis :

    • --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'

    Où :

    • project_id est l'ID de votre Trusted Cloud by S3NS projet. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.
    • data_source correspond à la source de données : redshift.
    • dataset est l'ensemble de données cible de BigQuery pour la configuration de transfert.
    • name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
    • service_account : est le nom du compte de service utilisé pour authentifier le transfert. Le compte de service doit appartenir au même project_id que celui utilisé pour créer le transfert et doit disposer de toutes les autorisations requises.
    • parameters contient les paramètres de la configuration de transfert créée au format JSON. Exemple : --params='{"param":"param_value"}'.

    Les paramètres requis pour une configuration de transfert Amazon Redshift sont les suivants :

    • jdbc_url : l'URL de connexion JDBC permet de localiser le cluster Amazon Redshift.
    • database_username : nom d'utilisateur permettant d'accéder à votre base de données pour décharger les tables spécifiées.
    • database_password : mot de passe utilisé avec le nom d'utilisateur pour accéder à votre base de données afin de décharger les tables spécifiées.
    • access_key_id : ID de clé d'accès permettant de signer les requêtes adressées à AWS.
    • secret_access_key : clé d'accès secrète utilisée avec l'ID de clé d'accès pour signer les requêtes adressées à AWS.
    • s3_bucket : URI Amazon S3 commençant par "s3://" et spécifiant un préfixe pour les fichiers temporaires à utiliser.
    • redshift_schema : schéma Amazon Redshift contenant toutes les tables à migrer.
    • table_name_patterns : modèles de nom de table séparés par un point-virgule (;). Le format de table est une expression régulière pour la/les table(s) à migrer. Si non spécifié, toutes les tables situées sous le schéma de la base de données seront transférées.

    Par exemple, la commande suivante crée un transfert Amazon Redshift nommé My Transfer avec un ensemble de données cible nommé mydataset et un projet dont l'ID est 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

    Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

    Java

    Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

    Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

    Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.

    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());
        }
      }
    }

    Quotas et limites

    BigQuery a un quota de charge de 15 To par tâche de chargement et par table. En interne, Amazon Redshift compresse les données de la table. La taille de la table exportée sera donc supérieure à celle indiquée par Amazon Redshift. Si vous envisagez de migrer une table de plus de 15 To, contactez d'abord le Cloud Customer Care.

    L'utilisation de ce service peut engendrer des coûts hors de Google. Consultez les pages de tarification d'Amazon Redshift et d'Amazon S3 pour en savoir plus.

    En raison du modèle de cohérence d'Amazon S3, il est possible que certains fichiers ne soient pas inclus dans le transfert vers BigQuery.

    Étape suivante