Cette page explique comment charger des données depuis une instance Amazon Redshift dans Google Cloud avec Cloud Data Fusion. Le connecteur source Redshift vous permet de synchroniser les tables de votre ensemble de données Redshift avec votre destination, telle que BigQuery. Le connecteur vous permet également de créer une requête SQL configurable.
Avant de commencer
- Les versions 6.9.0 et ultérieures de Cloud Data Fusion sont compatibles avec la source Redshift.
Lorsque vous configurez le connecteur source Redshift, vous pouvez sélectionner une connexion existante réutilisable ou créer une connexion ponctuelle. Pour en savoir plus, consultez 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 nom du schéma et de la table utilisées pour générer la requête d'importation.
Configurer le plug-in
Accédez à l'interface Web de Cloud Data Fusion, puis cliquez sur Studio.
Vérifiez que l'option Pipeline de données – Lot est sélectionnée (et non Temps réel).
Dans le menu Source, cliquez sur Redshift. Le nœud Redshift apparaît dans votre pipeline. Si vous ne voyez pas la source Redshift sur la page Studio, déployez le connecteur de source Redshift à partir de Cloud Data Fusion Hub.
Pour configurer la source, accédez au nœud Redshift et cliquez sur Propriétés.
Saisissez les propriétés suivantes. Pour obtenir la liste complète, consultez la section Propriétés.
- Saisissez un libellé pour le nœud Redshift, par exemple
Redshift tables
. Saisissez les détails de la connexion. Vous pouvez configurer une nouvelle connexion ponctuelle ou une connexion existante réutilisable.
Nouvelle connexion
Pour ajouter une connexion unique à Redshift, procédez comme suit:
- Laissez l'option Utiliser une connexion désactivée.
- Dans le champ Nom du pilote JDBC, saisissez le nom du pilote. Redshift accepte deux types de pilotes JDBC: CData et Amazon. Pour en savoir plus, consultez Importer un pilote JDBC.
- 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
). - Facultatif: Dans le champ Port, saisissez un numéro de port de base de données, par exemple
5439
. Si votre base de données Redshift nécessite une authentification, procédez comme suit:
- Dans le champ Nom d'utilisateur, saisissez le nom de la base de données.
- Dans le champ Password (Mot de passe), saisissez le mot de passe de la base de données.
- Facultatif: Dans le champ Arguments, saisissez des arguments de valeur de clé. Pour utiliser le pilote CData, fournissez les arguments de connexion, tels que RTK ou OEMKey, le cas échéant.
- Dans le champ Nom, saisissez un nom, par exemple
SN-PC-Source-01-01-2024
. - 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:
- Activez l'option Utiliser une connexion.
- Cliquez sur Parcourir les connexions.
Cliquez sur le nom de la connexion.
Facultatif: Si aucune connexion n'existe et que vous souhaitez créer une connexion réutilisable, cliquez sur Ajouter une connexion et reportez-vous aux étapes de l'onglet Nouvelle connexion de cette page.
Dans le champ Import query (Importer une requête), saisissez une requête en utilisant les noms de schéma et de table de votre source Redshift (par exemple,
Select * from "public"."users"
).Facultatif: saisissez des propriétés avancées, telles qu'une requête de délimitation ou le nombre de divisions. Pour obtenir la description complète des propriétés, consultez la section Propriétés.
- Saisissez un libellé pour le nœud Redshift, par exemple
(Facultatif) Cliquez sur Valider et corrigez les erreurs détectées.
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 de Cloud Data Fusion.
Propriétés
Propriété | Compatible avec les macros pour l'automatisation | Propriété obligatoire | Description |
---|---|---|---|
Libellé | Non | Oui | Nom du nœud dans 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 apparaît. 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 apparaît. |
Organisateur | Oui | Oui | Point de terminaison du cluster Amazon Redshift. Ce champ s'affiche si l'option Utiliser la connexion n'est pas sélectionnée. |
Port | Oui | Non | Port sur lequel Redshift est exécuté. Si l'option Utiliser la connexion n'est pas sélectionnée, ce champ apparaît. |
Username (Nom d'utilisateur) | Oui | Non | Identité de l'utilisateur pour se connecter à la base de données spécifiée. Ce champ s'affiche si l'option Utiliser la connexion n'est pas sélectionnée. |
Mot de passe | Oui | Non | Mot de passe à utiliser pour se connecter à la base de données spécifiée. Ce champ s'affiche si l'option Utiliser la connexion n'est pas sélectionnée. |
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 susceptibles de nécessiter des configurations supplémentaires. Ce champ s'affiche si l'option Utiliser la connexion n'est pas sélectionnée. |
Reference name (Nom de référence) | Non | Oui | Identifie cette source de manière unique pour la traçabilité, l'annotation des 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 Browse database (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 . Non requis si numSplits est défini sur un. |
Diviser la colonne | Oui | Non | Nom du champ utilisé pour générer des fractionnements. Non requis 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 division. Une taille d'extraction supérieure peut accélérer l'importation, avec en contrepartie une utilisation de mémoire plus importante. 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 et 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 le fuseau horaire |
string |
timestamp [ (p) ] sans fuseau horaire |
timestamp |
timestamp [ (p) ] avec le fuseau horaire |
timestamp |
varbyte |
byte |
xml |
string |
Bonnes pratiques
Les bonnes pratiques suivantes s'appliquent lorsque vous vous connectez à un cluster Redshift à partir de Google Cloud.
Utiliser les listes d'autorisation d'adresses IP
Pour empêcher l'accès à partir de sources non autorisées et limiter l'accès à des adresses IP spécifiques, activez le contrôle des accès sur le cluster Redshift.
Si vous utilisez les contrôles d'accès de Redshift, procédez comme suit pour accéder au cluster dans Cloud Data Fusion:
- Obtenez les adresses IP externes des services ou des machines sur Google Cloud qui doivent se connecter au cluster Redshift, telles que l'adresse IP du serveur proxy (consultez la section Afficher les adresses IP). Pour les clusters Dataproc, obtenez les adresses IP de tous les nœuds maîtres et enfants.
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 des machines Google Cloud.
Ajoutez les propriétés de connexion dans Wrangler et testez-les:
- Ouvrez l'instance Cloud Data Fusion dans l'interface Web.
- Cliquez sur Wrangler > Add connection (Ajouter une connexion), puis créez une connexion pour Redshift.
- Saisissez toutes les propriétés de connexion.
- Cliquez sur Tester la connexion et résolvez les éventuels problèmes.
Pour créer plusieurs divisions, utilisez des requêtes de délimitation
En cas de divisions multiples, utilisez des requêtes de délimitation pour gérer le cluster multinœud. Dans les cas où vous extrayez des données de Redshift et répartissez la charge de manière uniforme sur chaque nœud, configurez une requête de délimitation dans les propriétés du connecteur source Redshift.
- Dans votre pipeline Cloud Data Fusion, sur la page Studio, accédez au nœud Redshift, puis cliquez sur Propriétés.
Dans la section Avancé, spécifiez les éléments suivants:
- Saisissez le nombre de fractionnements à créer.
- Saisissez la taille de récupération pour chaque fractionnement.
- Saisissez une requête de délimitation à appliquer au cluster Redshift multinœud.
- Saisissez le nom du champ Diviser la colonne.
Par exemple, supposons que vous ayez le cas d'utilisation suivant:
- Votre table contient 10 millions d'enregistrements.
- Il comporte une colonne d'ID 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 à laquelle les divisions sont appliquées.Dans le champ Diviser la colonne, 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 des divisions en fonction d'une taille de récupération, ou inversement. Pour cet exemple, saisissez ce qui suit.
Dans le champ Nombre de divisions, saisissez
40
. Dans cet exemple, où la table contient 10 millions d'enregistrements, la création de 40 fractionnements entraîne chaque division contenant 250 000 enregistrements.Dans le champ Taille de récupération, saisissez
250,000
.
Étapes suivantes
- Parcourez les plug-ins Cloud Data Fusion.