Source de lot Redshift

Cette page explique comment charger des données à partir d'une instance Amazon Redshift dansGoogle Cloud avec Cloud Data Fusion. Le connecteur de source Redshift vous permet de synchroniser les tables de votre ensemble de données Redshift avec votre destination, par exemple BigQuery. Le connecteur vous permet également de créer une requête SQL configurable.

Avant de commencer

  • Les versions Cloud Data Fusion 6.9.0 et ultérieures sont compatibles avec la source Redshift.
  • Lorsque vous configurez le connecteur de source Redshift, vous pouvez sélectionner une connexion existante et réutilisable ou en créer une unique. Pour en savoir plus, consultez la page Gérer les connexions. Lorsque vous réutilisez une connexion, tenez compte des points suivants:

    • Vous n'avez pas besoin de fournir d'identifiants.
    • La connexion existante fournit les informations sur le schéma et le nom de la table utilisées pour générer la requête d'importation.

Configurer le plug-in

  1. Accédez à l'interface Web de Cloud Data Fusion, puis cliquez sur Studio.

  2. Vérifiez que Pipeline de données – lot est sélectionné (et non Temps réel).

  3. Dans le menu Source, cliquez sur Redshift. Le nœud Redshift s'affiche dans votre pipeline. Si la source Redshift ne s'affiche pas sur la page Studio, déployez le connecteur de source Redshift à partir du hub Cloud Data Fusion.

  4. Pour configurer la source, accédez au nœud Redshift, puis cliquez sur Properties (Propriétés).

  5. Saisissez les propriétés suivantes. Pour obtenir la liste complète, consultez la section Propriétés.

    1. Saisissez un libellé pour le nœud Redshift (par exemple, Redshift tables).
    2. Saisissez les informations de connexion. Vous pouvez configurer une connexion ponctuelle ou une connexion existante réutilisable.

      Nouvelle connexion

      Pour ajouter une connexion ponctuelle à Redshift, procédez comme suit:

      1. Laissez l'option Utiliser la connexion désactivée.
      2. Dans le champ Nom du pilote JDBC, saisissez le nom du pilote. Redshift est compatible avec deux types de pilotes JDBC: CData et Amazon. Pour en savoir plus, consultez la section Importer un pilote JDBC.
      3. Dans le champ Host (Hôte), saisissez le point de terminaison du cluster Redshift (par exemple, cdf-redshift-new.example-endpoint.eu-west-1.redshift.amazonaws.com).
      4. Facultatif: dans le champ Port, saisissez un numéro de port de base de données (par exemple, 5439).
      5. Si votre base de données Redshift nécessite une authentification, procédez comme suit:

        1. Dans le champ Nom d'utilisateur, saisissez le nom de la base de données.
        2. Dans le champ Mot de passe, saisissez le mot de passe de la base de données.
        3. Facultatif: dans le champ Arguments, saisissez des arguments de clé-valeur. Pour utiliser le pilote CData, fournissez les arguments de connexion, tels que RTK ou OEMKey, le cas échéant.
        4. Dans le champ Nom, saisissez un nom, par exemple SN-PC-Source-01-01-2024.
        5. Saisissez le nom de la base de données cible dans le champ Database (Base de données), par exemple datafusiondb.

      Connexion réutilisable

      Pour réutiliser une connexion existante, procédez comme suit:

      1. Activez l'option Utiliser la connexion.
      2. Cliquez sur Parcourir les connexions.
      3. Cliquez sur le nom de la connexion.

      4. Facultatif: Si aucune connexion n'existe et que vous souhaitez en créer une réutilisable, cliquez sur Ajouter une connexion, puis suivez les étapes de l'onglet Nouvelle connexion de cette page.

    3. Dans le champ Requête d'importation, saisissez une requête à l'aide des noms de schéma et de table de votre source Redshift (par exemple, Select * from "public"."users").

    4. Facultatif: saisissez des propriétés avancées, telles qu'une requête de délimitation ou un nombre de fractionnements. Pour obtenir la description de toutes les propriétés, consultez la section Propriétés.

  6. (Facultatif) Cliquez sur Valider et corrigez les erreurs détectées.

  7. Cliquez sur Fermer. Les propriétés sont enregistrées et vous pouvez continuer à créer votre pipeline de données dans l'interface Web Cloud Data Fusion.

Propriétés

Propriété Compatible avec les macros pour l'automatisation Propriété obligatoire Description
Label Non Oui Nom du nœud de votre pipeline de données.
Utiliser la connexion Non Non Recherchez une connexion à la source. Si l'option Utiliser la connexion est activée, vous n'avez pas besoin de fournir d'identifiants.
Connexion Oui Oui Nom de la connexion à utiliser. Si l'option Utiliser la connexion est sélectionnée, ce champ s'affiche. Les informations sur la base de données et la table sont fournies par la connexion.
Nom du pilote JDBC Oui Oui Nom du pilote JDBC à utiliser. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Organisateur Oui Oui Point de terminaison du cluster Amazon Redshift. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Port Oui Non Port sur lequel Redshift est exécuté. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Username (Nom d'utilisateur) Oui Non Identité de l'utilisateur pour la connexion à la base de données spécifiée. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Mot de passe Oui Non Mot de passe à utiliser pour se connecter à la base de données spécifiée. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Arguments de connexion Oui Non Liste de paires clé-valeur de chaîne arbitraires en tant qu'arguments de connexion. Ces arguments sont transmis au pilote JDBC en tant qu'arguments de connexion pour les pilotes JDBC qui peuvent nécessiter des configurations supplémentaires. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ s'affiche.
Nom de référence Non Oui Identifie de manière unique cette source pour la traçabilité, l'annotation de métadonnées et d'autres services.
Database (Base de données) Oui Oui Nom de la base de données Redshift. Pour sélectionner des données, cliquez sur Parcourir la base de données.
Requête d'importation Oui Oui Requête SELECT à utiliser pour importer des données à partir de la table spécifiée.
Requête de délimitation Oui Non Requête SQL qui renvoie les valeurs minimale et maximale du champ splitBy. Exemple : SELECT MIN(id),MAX(id) FROM table. Facultatif si numSplits est défini sur un.
Diviser la colonne Oui Non Nom du champ utilisé pour générer des divisions. Facultatif si numSplits est défini sur un.
Nombre de fractionnements Oui Non Nombre de divisions à générer.
Size (Taille) Oui Non Nombre de lignes à extraire à la fois par fractionnement. Une taille de récupération plus importante peut entraîner une importation plus rapide, mais à un coût plus élevé en termes d'utilisation de la mémoire. Si non spécifié, la valeur par défaut est 1000.

Mappages des types de données

Le tableau suivant répertorie les types de données Redshift avec les types CDAP correspondants:

Type de données Redshift Type de données du schéma CDAP
bigint long
boolean boolean
character string
character varying string
date date
double precision double
geometry bytes
hllsketch string
integer int
json string
numeric(précision, échelle)/decimal(précision, échelle) decimal
numeric avec une précision de 0 string
real float
smallint int
super string
text string
time [ (p) ] sans fuseau horaire time
time [ (p) ] avec fuseau horaire string
timestamp [ (p) ] sans fuseau horaire timestamp
timestamp [ (p) ] avec fuseau horaire timestamp
varbyte byte
xml string

Bonnes pratiques

Les bonnes pratiques suivantes s'appliquent lorsque vous vous connectez à un cluster Redshift à partir deGoogle Cloud.

Utiliser des listes d'autorisation d'adresses IP

Pour empêcher l'accès de sources non autorisées et limiter l'accès à des adresses IP spécifiques, activez les contrôles des accès sur le cluster Redshift.

Si vous utilisez des contrôles d'accès Redshift, procédez comme suit pour accéder au cluster dans Cloud Data Fusion:

  1. Obtenez les adresses IP externes des services ou des machines surGoogle Cloud qui doivent se connecter au cluster Redshift, comme l'adresse IP du serveur proxy (voir Afficher les adresses IP). Pour les clusters Dataproc, obtenez les adresses IP de tous les nœuds maîtres et enfants.
  2. Ajoutez les adresses IP à une liste d'autorisation dans les groupes de sécurité en créant les règles entrantes pour les adresses IP de la machine Google Cloud .

  3. Ajoutez les propriétés de connexion dans Wrangler et testez-les:

    1. Ouvrez l'instance Cloud Data Fusion dans l'interface Web.
    2. Cliquez sur Wrangler > Add connection (Wrangler > Ajouter une connexion) et créez la connexion pour Redshift.
    3. Saisissez toutes les propriétés de connexion.
    4. Cliquez sur Tester la connexion et corrigez les problèmes détectés.

Pour créer plusieurs divisions, utilisez des requêtes de délimitation.

Pour plusieurs divisions, utilisez des requêtes de délimitation pour gérer le cluster multi-nœud. Dans les scénarios où vous extrayez des données de Redshift et distribuez la charge uniformément sur chaque nœud, configurez une requête de délimitation dans les propriétés du connecteur de source Redshift.

  1. Dans votre pipeline Cloud Data Fusion sur la page Studio, accédez au nœud Redshift, puis cliquez sur Propriétés.
  2. Dans les propriétés Avancé, spécifiez les éléments suivants:

    1. Saisissez le nombre de fractionnements à créer.
    2. Saisissez la taille de récupération pour chaque fractionnement.
    3. Saisissez une requête de délimitation à appliquer au cluster Redshift multinœud.
    4. Saisissez le nom du champ Colonne de fractionnement.

Par exemple, imaginons le cas d'utilisation suivant:

  • Vous disposez d'une table contenant 10 millions d'enregistrements.
  • Elle comporte une colonne d'identifiant unique appelée id.
  • Le cluster Redshift comporte quatre nœuds.
  • Objectif: Pour exploiter le potentiel du cluster, vous prévoyez de générer plusieurs divisions. Pour ce faire, utilisez les configurations de propriétés suivantes:

    • Dans le champ Requête de délimitation, saisissez la requête suivante:

      SELECT MIN(id), MAX(id) FROM tableName
      

      Dans cette requête, id est le nom de la colonne où les fractionnements sont appliqués.

    • Dans le champ Colonne à diviser, saisissez le nom de la colonne, id.

    • Saisissez le nombre de divisions et la taille de récupération. Ces propriétés sont interconnectées, ce qui vous permet de calculer les fractionnements en fonction d'une taille de récupération ou inversement. Pour cet exemple, saisissez les éléments suivants.

    • Dans le champ Nombre de fractionnements, saisissez 40. Dans cet exemple, où la table contient dix millions d'enregistrements, la création de 40 fractionnements entraîne chaque fractionnement contenant 250 000 enregistrements.

    • Dans le champ Taille de récupération, saisissez 250,000.

Étape suivante