Scénario: charger/retirer des données dans/de Amazon S3 - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job générant un fichier délimité, le chargeant le fichier dans S3, chargeant des données du fichier de S3 dans Redshift et les affichant dans la console. Ce Job retire ensuite les données de Redshift, les ajoute dans des fichiers S3 pour chaque slice du cluster Redshift puis liste et obtient les fichiers retirés dans S3.

Prérequis :

Les variables de contexte sont créées et sauvegardées dans la vue Repository. Pour plus d'informations concernant les variables de contexte, consultez le Guide utilisateur du Studio Talend.

  • redshift_host : URL de l'endpoint de connexion au cluster Redshift.

  • redshift_port : numéro du port d'écoute du serveur de la base de données.

  • redshift_database : nom de la base de données.

  • redshift_username : nom de l'utilisateur pour l'authentification à la base de données.

  • redshift_password : mot de passe pour l'authentification à la base de données.

  • redshift_schema : nom du schéma.

  • s3_accesskey : clé d'accès à Amazon S3.

  • s3_secretkey : clé secrète pour accéder à Amazon S3.

  • s3_bucket : nom du bucket Amazon S3.

Notez que toutes les valeurs de contexte dans la capture d'écran ci-dessus ont pour seul objectif la démonstration.

Ajouter et relier les composants

  1. Créez un nouveau Job et appliquez au Job toutes les variables de contexte listées ci-dessus.

  2. Ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette : un composant tRowGenerator, un tRedshiftOutputBulk, un tRedshiftBulkExec, un tRedshiftInput, un tLogRow, un tRedshiftUnload, un tS3List et un tS3Get.

  3. Reliez le tRowGenerator au tRedshiftOutputBulk à l'aide d'un lien Row > Main.

  4. Répétez l'opération afin de relier le tRedshiftInput au tLogRow.

  5. Reliez le tS3List au tS3Get à l'aide d'un lien Row > Iterate.

  6. Reliez le tRowGenerator au tRedshiftBulkExec à l'aide d'un lien Trigger > On Subjob Ok.

  7. Répétez l'opération pour relier le tRedshiftBulkExec au tRedshiftInput, le tRedshiftInput au tRedshiftUnload et le tRedshiftUnload au tS3List.

Configurer les composants

Préparer un fichier et le charger dans S3

  1. Double-cliquez sur le tRowGenerator afin d'ouvrir son éditeur RowGenerator Editor.

  2. Cliquez deux fois sur le bouton [+] afin d'ajouter deux colonnes : ID, de type Integer et Name, de type String.

  3. Cliquez dans la cellule de la colonne Functions et sélectionnez dans la liste une fonction pour chaque colonne. Dans cet exemple, sélectionnez Numeric.sequence pour générer des nombres en séquence pour la colonne ID et sélectionnez TalendDataGenerator.getFirstName afin de générer des prénoms aléatoires pour la colonne Name.

  4. Dans le champ Number of Rows for RowGenerator, saisissez le nombre de lignes de données à générer. Dans cet exemple, saisissez 20.

  5. Cliquez sur OK pour fermer l'éditeur de schéma et acceptez la propagation proposée par la boîte de dialogue qui s'ouvre.

  6. Double-cliquez sur le tRedshiftOutputBulk pour ouvrir sa vue Basic settings.

  7. Dans le champ Data file path at local, spécifiez le chemin local pour le fichier à générer. Dans cet exemple, le chemin est E:/Redshift/redshift_bulk.txt.

  8. Dans le champ Access Key, appuyez sur les touches Ctrl + Espace et, dans la liste, sélectionnez context.s3_accesskey afin de renseigner ce champ.

    Répétez l'opération dans le champ Secret Key avec la valeur context.s3_accesskey et dans le champ Bucket avec la valeur context.s3_bucket.

  9. Dans le champ Key, saisissez un nouveau nom pour le fichier à générer après chargement dans Amazon S3. Dans cet exemple, saisissez person_load.

Charger les données du fichier de S3 dans Redshift

  1. Double-cliquez sur le tRedshiftBulkExec pour ouvrir sa vue Basic settings.

  2. Dans le champ Host, appuyez sur les touches Ctrl + Espace et, dans la liste, sélectionnez context.redshift_host afin de renseigner ce champ.

    Répétez l'opération pour :

    • le champ Port avec la valeur context.redshift_port,

    • le champ Database avec la valeur context.redshift_database,

    • le champ Schema avec la valeur context.redshift_schema,

    • le champ Username avec la valeur context.redshift_username,

    • le champ Password avec la valeur context.redshift_password,

    • le champ Access Key avec la valeur context.s3_accesskey,

    • le champ Secret Key avec la valeur context.s3_secretkey et

    • le champ Bucket avec la valeur context.s3_bucket.

  3. Dan le champ Table Name, saisissez le nom de la table à écrire. Dans cet exemple, saisissez person.

  4. Dans la liste Action on table, sélectionnez Drop table if exists and create.

  5. Dans le champ Key, saisissez le nom du fichier de Amazon S3 à charger. Dans cet exemple, saisissez person_load.

  6. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma en ajoutant deux colonnes : ID de type Integer et Name, de type String.

Récupérer les données de la table dans Redshift

  1. Double-cliquez sur le composant tRedshiftInput pour ouvrir sa vue Basic settings.

  2. Renseignez les champs Host, Port, Database, Schema, Username et Password avec les variables de contexte correspondantes.

  3. Dans le champ Table Name, saisissez le nom de la table à lire. Dans cet exemple, saisissez person.

  4. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma en ajoutant deux colonnes : ID de type Integer et Name, de type String.

  5. Dans le champ Query, saisissez l'instruction SQL suivante permettant de récupérer les données.

    "SELECT * FROM" + context.redshift_schema + "person ORDER BY \"ID\""
  6. Double-cliquez sur le tLogRow pour ouvrir sa vue Basic settings.