Migrer des données Amazon Redshift avec un réseau VPC

Ce document explique comment migrer des données d'Amazon Redshift vers BigQuery à l'aide d'un VPC.

Si vous disposez d'une instance Amazon Redshift privée dans AWS, vous pouvez migrer ces données vers BigQuery en créant un réseau cloud privé virtuel (VPC) et en le connectant au réseau VPC Amazon Redshift. Le processus de migration des données fonctionne comme suit :

  1. Vous créez un réseau VPC dans le projet que vous souhaitez utiliser pour le transfert. Le réseau VPC ne peut pas être un réseau VPC partagé.
  2. Vous configurez un réseau privé virtuel (VPN) et connectez le réseau VPC de votre projet et le réseau VPC Amazon Redshift.
  3. Vous spécifiez le réseau VPC de votre projet et une plage d'adresses IP réservée lors de la configuration du transfert.
  4. Le service de transfert de données BigQuery crée un projet locataire et l'associe au projet que vous utilisez pour le transfert.
  5. Le service de transfert de données BigQuery crée un réseau VPC avec un sous-réseau dans le projet locataire, en utilisant la plage d'adresses IP réservée que vous avez spécifiée.
  6. Le service de transfert de données BigQuery crée un appairage de VPC entre le réseau VPC de votre projet et le réseau VPC du projet locataire.
  7. La migration du service de transfert de données BigQuery s'exécute dans le projet locataire. Elle déclenche une opération de déchargement depuis Amazon Redshift vers une zone de préproduction d'un bucket Amazon S3. La vitesse de déchargement est déterminée par la configuration de votre cluster.
  8. La migration du service de transfert de données BigQuery transfère vos données du bucket Amazon S3 vers BigQuery.

Si vous souhaitez transférer des données de votre instance Amazon Redshift via des adresses IP publiques, vous pouvez migrer vos données Amazon Redshift vers BigQuery en suivant ces instructions.

Avant de commencer

  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

Définir les autorisations requises

Avant de créer un transfert Amazon Redshift, procédez comme suit :

  1. Assurez-vous que la personne qui crée le transfert dispose des autorisations IAM (Identity and Access Management) requises suivantes dans BigQuery :

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

    Le rôle IAM prédéfini role/bigquery.admin inclut les autorisations bigquery.transfers.update et bigquery.datasets.update. Pour en savoir plus sur les rôles IAM pour le service de transfert de données BigQuery, consultez la section sur le 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.

  3. Accordez les autorisations IAM appropriées pour créer et supprimer l'appairage de réseaux VPC à la personne qui configure le transfert. Le service utilise les identifiants utilisateur Google Cloud de la personne pour créer la connexion d'appairage VPC.

    • Autorisations permettant de créer un appairage de VPC : compute.networks.addPeering
    • Autorisations permettant de supprimer un appairage de VPC : compute.networks.removePeering

    Les rôles IAM prédéfinis roles/project.owner, roles/project.editor et roles/compute.networkAdmin incluent les autorisations compute.networks.addPeering et compute.networks.removePeering par défaut.

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 plages d'adresses IP de votre cluster Amazon Redshift privé à la liste d'autorisation. Vous définirez la plage d'adresses IP privées de ce réseau VPC à une étape ultérieure, lors de la configuration du transfert.

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 :

  • Le réseau VPC et la plage d'adresses IP réservée dans Amazon Redshift.
  • 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 Lifecycle 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 le réseau VPC et le VPN

  1. Assurez-vous de disposer des autorisations nécessaires pour activer l'appairage de VPC. Pour en savoir plus, consultez la section Définir les autorisations requises.

  2. Suivez les instructions de ce guide pour configurer un réseau VPC Google Cloud, configurer un VPN entre le réseau VPC de votre projet Cloud et le réseau VPC Amazon Redshift, puis activer l'appairage de VPC.

  3. Configurez Amazon Redshift pour autoriser la connexion à votre VPN. Pour en savoir plus, consultez la page Groupes de sécurité des clusters Amazon Redshift.

  4. Dans la console Google Cloud, accédez à la page Réseaux VPC pour vérifier que votre réseau VPC Google Cloud existe dans votre projet Google Cloud et qu'il est connecté à Amazon Redshift via le VPN.

    Accéder aux réseaux VPC

    La page de la console répertorie tous vos réseaux VPC.

Configurer un transfert Amazon Redshift

Utilisez les instructions suivantes pour configurer un transfert Amazon Redshift :

  1. Dans la console Google 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 le VPC et la plage d'adresses IP réservée, spécifiez le nom du réseau VPC et la plage d'adresses IP privée à utiliser dans le réseau VPC du projet locataire. Spécifiez la plage d'adresses IP en tant que bloc CIDR.

      Champ CIDR de migration Amazon Redshift

      • Le format est VPC_network_name:CIDR, par exemple : my_vpc:10.251.1.0/24.
      • Utilisez des plages d'adresses réseau VPC privées standards au format CIDR, en commençant par 10.x.x.x.
      • La plage d'adresses IP doit comporter plus de 10 adresses IP.
      • La plage d'adresses IP ne doit chevaucher aucun sous-réseau du réseau VPC de votre projet ou du réseau VPC Amazon Redshift.
      • Si plusieurs transferts sont configurés pour la même instance Amazon Redshift, veillez à utiliser la même valeur VPC_network_name:CIDR dans chaque instance, de sorte que plusieurs transferts puissent réutiliser la même infrastructure de migration.
  8. 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.
  9. Cliquez sur Enregistrer.

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

Quotas et limites

La migration d'une instance privée Amazon Redshift avec un réseau VPC exécute l'agent de migration sur une infrastructure à locataire unique. En raison de limites de ressources de calcul, cinq exécutions de transfert simultanées sont autorisées au maximum.

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.

Étapes suivantes