Migrer des données depuis Amazon Redshift

Présentation

Ce document décrit le processus de migration des données d'Amazon Redshift vers BigQuery.

Le service de transfert de données BigQuery vous permet de copier vos données d'un entrepôt de données Amazon Redshift vers BigQuery. Le service engagera les agents de migration dans GKE et déclenchera une opération de déchargement depuis Amazon Redshift vers une zone intermédiaire de bucket Amazon S3. Ensuite, le service de transfert de données BigQuery transférera vos données du bucket 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.

Avant de commencer

Cette section décrit le processus détaillé de configuration d'une migration de données depuis Amazon Redshift vers BigQuery. Voici la procédure à suivre :

  • Remplissez les conditions préalables et définissez les autorisations sur Google Cloud Platform.
  • Accordez l'accès à votre cluster Amazon Redshift.
  • Accordez l'accès à votre bucket intermédiaire Amazon S3.
  • Configurez la migration avec le service de transfert de données BigQuery. Vous avez alors besoin de :
    • L'URL JDBC Amazon Redshift. Suivez ces instructions pour obtenir l'URL JDBC.
    • Le nom d'utilisateur et le mot de passe de votre base de données Amazon Redshift.
    • La paire de clés d'accès AWS obtenue à l'étape Accorder l'accès à votre bucket S3.
    • L'URI du bucket Amazon S3 que vous utilisez pour créer temporairement des données. Il est recommandé de configurer une stratégie de cycle de vie pour ce bucket afin d'éviter tous frais inutiles. La durée d'expiration recommandée est 24 heures pour laisser suffisamment de temps à toutes les données pour être transférées vers BigQuery.

Exigences relatives à Google Cloud Platform

Pour assurer la réussite de la migration de l'entrepôt de données Amazon Redshift, assurez-vous de respecter les conditions préalables suivantes sur Google Cloud Platform.

  1. Sélectionnez ou créez un projet Google Cloud Platform pour stocker vos données de migration.

  2. Activez l'API du service de transfert de données BigQuery.

    Dans la console Google Cloud Platform, cliquez sur le bouton Activer de la page API de service de transfert de données BigQuery.

    Activer une API

    BigQuery est automatiquement activé dans les nouveaux projets. Pour un projet existant, vous devrez peut-être activer l'API BigQuery. Une coche verte indique que vous avez déjà activé l'API.

    API activée

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

  4. Autorisez les fenêtres pop-up dans votre navigateur à l'adresse bigquery.cloud.google.com pour afficher la fenêtre des autorisations lorsque vous configurez le transfert. Vous devez autoriser le service de transfert de données BigQuery à gérer le transfert.

Accorder l'accès à votre cluster Amazon Redshift

Suivez les instructions d'Amazon pour ajouter les adresses IP suivantes à la liste blanche. Vous pouvez y ajouter les adresses IP qui correspondent à l'emplacement de votre ensemble de données ou y ajouter les adresses IP de la table suivante. Les adresses IP suivantes qui appartiennent à Google sont réservées aux migrations de données Amazon Redshift.

US
(multirégionale US)
Tokyo
(asia-northeast1)
UE
(multirégionale UE)
Londres
(europe-west2)
Australie
(australia-southeast1)
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
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
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
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
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

Accorder l'accès à votre bucket Amazon S3

Vous aurez besoin d'un bucket S3 à utiliser comme zone intermédiaire pour le transfert des données Amazon Redshift vers BigQuery. Vous pouvez trouver les instructions détaillées d'Amazon ici.

  1. Nous vous recommandons de créer un utilisateur IAM Amazon dédié et de lui octroyer uniquement un accès en lecture à Redshift et un accès en lecture et en écriture à S3. Cette opération peut être effectuée en appliquant les stratégies existantes suivantes :

    Autorisations Amazon de migration Redshift

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

Facultatif : contrôler 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. Cette file d'attente de migration peut être configurée avec un nombre maximum 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 aura uniquement accès à la file d'attente de migration.

Configurer une migration Amazon Redshift

Pour configurer un transfert Amazon Redshift :

Console

  1. Accédez à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transferts.

  3. Cliquez sur Ajouter un transfert.

  4. Sur la page Nouveau transfert :

    • Dans le champ Source, sélectionnez Migration: Amazon Redshift (Migration : Amazon Redshift).
    • Dans le champ Display name (Nom à afficher), saisissez le nom du transfert, par exemple My migration. Le nom à afficher peut être n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier par la suite.
    • Pour Destination dataset (Ensemble de données de destination), sélectionnez l'ensemble de données approprié.

      Nouvelle migration Amazon Redshift - Général

  5. Sous Data Source Details (Détails de la source de données), poursuivez avec les détails spécifiques de votre transfert Amazon Redshift.

    • 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.
    • 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.
    • 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.
    • 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.
    • Pour Amazon S3 URI (URI Amazon S3), saisissez l'URI du bucket S3 que vous utiliserez comme zone intermédiaire.
    • Sous Amazon Redshift Schema (Schéma Amazon Redshift), saisissez le schéma Amazon Redshift à partir duquel vous souhaitez migrer des tables.
    • 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.

      Nouveaux détails de la source de données de migration Amazon Redshift

    • (Facultatif) Dans la section Notification options (Options de notification) :

      • 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.
      • Pour le champ Select a Cloud Pub/Sub topic (Sélectionner un sujet Cloud Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Créer un sujet. Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert. Les notifications d'exécution de transfert sont actuellement en version alpha.

        Sujet Cloud Pub/Sub

  6. Cliquez sur Save (Enregistrer).

  7. L'UI Web affichera tous les détails de configuration du transfert, y compris un Resource name (Nom de ressource) pour ce transfert.

    Confirmation du transfert

UI classique

  1. Accédez à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transferts.

  3. Cliquez sur Ajouter un transfert.

  4. Sur la page Nouveau transfert :

    • Dans le champ Source, sélectionnez Migration: Amazon Redshift (Migration : Amazon Redshift).
    • Dans le champ Display name (Nom à afficher), saisissez le nom du transfert, par exemple My Migration. Le nom à afficher peut être n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier par la suite.
    • Pour Destination dataset (Ensemble de données de destination), sélectionnez l'ensemble de données approprié.
    • 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.
    • 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.
    • 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.
    • Dans les champs Access key ID et Secret access key (ID de clé d'accès et 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.
    • Pour Amazon S3 URI (URI Amazon S3), saisissez l'URI du bucket S3 que vous utiliserez comme zone intermédiaire.
    • Sous Amazon Redshift Schema (Schéma Amazon Redshift), saisissez le schéma Amazon Redshift à partir duquel vous souhaitez migrer des tables.
    • 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.

    Nouveaux détails de la source de données de migration Amazon Redshift

    • (Facultatif) Développez la section Advanced (Avancé), puis configurez les notifications d'exécution pour votre transfert. Les notifications d'exécution de transfert sont actuellement en version alpha.

      • Pour le paramètre Cloud Pub/Sub topic (Sujet Cloud Pub/Sub), saisissez le nom de votre sujet (par exemple, projects/myproject/topics/mytopic).
      • Cochez la case Send email notifications (Envoyer des notifications par e-mail) pour autoriser les notifications par e-mail en cas d'échec de l'exécution des transferts.
      • Ne cochez pas la case Disabled (Désactivé) lorsque vous configurez un transfert. Pour désactiver les transferts existants, consultez la page Utiliser les transferts.

      Sujet Cloud Pub/Sub

  5. Cliquez sur Ajouter.

  6. Lorsque vous y êtes invité, cliquez sur Allow (Autoriser) pour autoriser le service de transfert de données BigQuery à gérer votre transfert. Vous devez autoriser les fenêtres pop-up de bigquery.cloud.google.com pour afficher la fenêtre des autorisations.

    Autoriser le transfert

  7. L'UI Web affichera tous les détails de configuration du transfert, y compris un Resource name (Nom de ressource) pour ce transfert.

    Confirmation du transfert

CLI

Saisissez la commande bq mk, puis spécifiez l'indicateur 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] --params='[PARAMETERS]'
    

Où :

  • --project_id est votre ID de projet Google Cloud Platform. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.
  • --data_source est la source de données : redshift.
  • --target_dataset est l'ensemble de données cible BigQuery de la configuration de transfert.
  • --display_name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.
  • --params contient les paramètres de la configuration de transfert créée au format JSON. Par exemple : --params='{"param":"param_value"}'. Pour les migrations Amazon Redshift, vous devez fournir les paramètres content_owner_id et table_suffix.

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

  • jdbc_url : l'URL de connexion JDBC est utilisée pour localiser le cluster Redshift.
  • database_username : le nom d'utilisateur permettant d'accéder à votre base de données pour décharger les tables spécifiées.
  • database_password : le 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 : l'ID de clé d'accès pour signer les requêtes adressées à AWS.
  • secret_access_key : la 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 : l'URI Amazon S3 commençant par "s3://" et spécifiant un préfixe pour les fichiers temporaires à utiliser.
  • redshift_schema : le schéma Redshift qui contient toutes les tables à migrer.
  • table_name_patterns : les 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=google.com: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

Exécutez la méthode projects.locations.transferConfigs.create et indiquez une instance de la ressource TransferConfig.

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-nous d'abord à l'adresse bq-dts-support@google.com.

Notez qu'en utilisant ce service, des coûts peuvent être engagés en dehors de Google. Veuillez consulter les pages de tarification Amazon Redshift et Amazon S3 pour plus d'informations.

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

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.