Cette page explique comment charger des données d'une instance Amazon Redshift dans Google Cloud avec Cloud Data Fusion. Le connecteur de source Redshift vous permet de synchroniser des tables de votre ensemble de données Redshift avec votre destination, comme 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 de source Redshift, vous pouvez sélectionner une connexion existante et réutilisable, ou créer une connexion unique. Pour en savoir plus, consultez la page Gérer les connexions. Lorsque vous réutilisez une connexion, notez les 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 qui sont 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 Data Pipeline - Batch (Pipeline de données - Traitement par lot) est sélectionné (et non Realtime (Temps réel)).
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 Cloud Data Fusion Hub.
Pour configurer la source, accédez au nœud Redshift, puis cliquez sur Properties (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 informations de connexion. Vous pouvez configurer une connexion unique ou une connexion existante et réutilisable.
Nouvelle connexion
Pour ajouter une connexion unique à Redshift, procédez comme suit :
- Laissez l'option Use connection (Utiliser la connexion) désactivée.
- Dans le champ JDBC driver name (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.
- 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 Username (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 paire clé/valeur. Pour utiliser le pilote CData, fournissez les arguments de connexion, tels que RTK ou OEMKey, le cas échéant.
- Dans le champ Name (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 Use connection (Utiliser la connexion).
- Cliquez sur Browse connections (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 Add connection (Ajouter une connexion), puis suivez les étapes décrites dans l'onglet New connection (Nouvelle connexion) de cette page.
Dans le champ Import query (Requête d'importation), saisissez une requête à l'aide du schéma et des noms de tables de votre source Redshift, par exemple
Select * from "public"."users".(Facultatif) Saisissez des propriétés Advanced (Avancées), telles qu'une requête de délimitation ou un nombre de divisions. Pour obtenir la description de toutes les 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 Close (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 |
|---|---|---|---|
| Label (Libellé) | Non | Oui | Nom du nœud dans votre pipeline de données. |
| Use connection (Utiliser la connexion) | Non | Non | Recherchez une connexion à la source. Si l'optionUse connection (Utiliser la connexion) est activée, vous n'avez pas besoin de fournir d'identifiants. |
| Connection (Connexion) | Oui | Oui | Nom de la connexion à utiliser. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) est sélectionnée. Les informations sur la base de données et la table sont fournies par la connexion. |
| JDBC driver name (Nom du pilote JDBC) | Oui | Oui | Nom du pilote JDBC à utiliser. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Host (Hôte) | Oui | Oui | Point de terminaison du cluster Amazon Redshift. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Port | Oui | Non | Port sur lequel Redshift est exécuté. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Username (Nom d'utilisateur) | Oui | Non | Identité de l'utilisateur pour la connexion à la base de données spécifiée. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Password (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 Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Connection arguments (Arguments de connexion) | Oui | Non | Liste de paires clé/valeur de chaînes arbitraires en tant qu'arguments de connexion. Ces arguments sont transmis au pilote JDBC en tant qu'arguments de connexion arguments pour les pilotes JDBC qui peuvent nécessiter des configurations supplémentaires. Ce champ s'affiche si l'option Use connection (Utiliser la connexion) n'est pas sélectionnée. |
| Reference name (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 Browse database (Parcourir la base de données). |
| Import query (Requête d'importation) | Oui | Oui | Requête SELECT à utiliser pour importer des données à partir de la
table spécifiée. |
| Bounding query (Requête de délimitation) | Oui | Non | Requête SQL qui renvoie les valeurs minimales et maximales du
splitBy champ. Exemple :
SELECT MIN(id),MAX(id) FROM table. Non obligatoire si
numSplits est défini sur un. |
| Split column (Fractionner la colonne) | Oui | Non | Nom du champ utilisé pour générer des divisions. Non obligatoire si
numSplits est défini sur un. |
| Number of splits (Nombre de divisions) | Oui | Non | Nombre de divisions à générer. |
| Size (Taille) | Oui | Non | Nombre de lignes à extraire à la fois par division. Une taille d'extraction plus importante
peut accélérer l'importation, mais au détriment d'une utilisation plus élevée de la mémoire
usage. Si cet élément n'est pas 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 de 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(precision,
scale)/decimal(precision, scale) |
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 de Google Cloud.
Utiliser des 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 les contrôles d'accès sur le cluster Redshift.
Si vous utilisez les contrôles d'accès Redshift, procédez comme suit pour accéder au cluster dans Cloud Data Fusion :
- Obtenez les adresses IP externes des services ou des machines qui doivent se connecter au cluster Redshift, telles que l'adresse IP du serveur proxy (consultez Afficher les adresses IP).Google Cloud Pour les clusters Managed Service pour Apache Spark, 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 Google Cloud adresses IP de la machine.
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 (Wrangler > Ajouter une connexion), puis créez la nouvelle connexion pour Redshift.
- Saisissez toutes les propriétés de connexion.
- Cliquez sur Test connection (Tester la connexion) et résolvez les problèmes.
Pour créer plusieurs divisions, utilisez des requêtes de délimitation
Pour plusieurs divisions, utilisez des requêtes de délimitation afin de gérer le cluster multinœud. Dans les scénarios où vous extrayez des données de Redshift et distribuez la charge de manière uniforme sur chaque nœud, configurez une requête de délimitation dans les propriétés du connecteur de source Redshift.
- Dans votre pipeline Cloud Data Fusion sur la page Studio , accédez au nœud Redshift, puis cliquez sur Properties (Propriétés).
Dans les propriétés Advanced (Avancées), spécifiez les éléments suivants :
- Saisissez le nombre de divisions à créer.
- Saisissez la taille d'extraction pour chaque division.
- Saisissez une requête de délimitation à appliquer au cluster Redshift multinœud.
- Saisissez le nom du champ Split column (Fractionner la colonne).
Prenons l'exemple d'un cas d'utilisation :
- Vous disposez d'une table contenant 10 millions d'enregistrements.
- Elle comporte une colonne d'ID unique appelée
id. - Le cluster Redshift comporte quatre nœuds.
Objectif : Pour tirer parti du 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 Bounding query (Requête de délimitation), saisissez la requête suivante :
SELECT MIN(id), MAX(id) FROM tableNameDans cette requête,
idcorrespond au nom de la colonne dans laquelle les divisions sont appliquées.Dans le champ Split column (Fractionner la colonne), saisissez le nom de la colonne,
id.Saisissez le nombre de divisions et la taille d'extraction. Ces propriétés sont interconnectées, ce qui vous permet de calculer les divisions en fonction d'une taille d'extraction, ou inversement. Pour cet exemple, saisissez les valeurs suivantes.
Dans le champ Number of splits (Nombre de divisions), saisissez
40. Dans cet exemple, où la table comporte 10 millions d'enregistrements, la création de 40 divisions permet à chaque division de contenir 250 000 enregistrements.Dans le champ Fetch size (Taille d'extraction), saisissez
250,000.
Étape suivante
- Parcourez les plug-ins Cloud Data Fusion.