Gérer des fichiers en utilisant le GridFS de MongoDB - 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

Dans ce scénario, les composants GridFS de MongoDB sont utilisés pour créer un Job afin de gérer des fichiers vidéo dans le GridFS de MongoDB.

Pour plus d'informations sur le système GridFS de MongoDB, consultez When to use GridFS (en anglais).

Dans un but de démonstration, un seul fichier vidéo, nommé custom_hadoop.mp4, est utilisé ; vous pouvez utiliser un de vos propres fichiers vidéo pour reproduire ce scénario.

Relier les composants

  1. Dans la perspective Integration du Studio, créez un Job vide, nommé FS_video par exemple, depuis le nœud Job Designs dans la vue Repository.

    Pour plus d'informations sur la création d'un Job, consultez le Guide utilisateur du Studio Talend.

  2. Dans l'espace de modélisation graphique, saisissez le nom du composant à utiliser et sélectionnez ce composant dans la liste qui s'affiche. Dans ce scénario, les composants sont le tMongoDBConnection, le tMongoDBGridFSPut, le tMongoDBGridFSList, le tMongoDBGridFSProperties, le tFilterColumns, le tLogRow, le tMongoDBGridFSGet et le tMongoDBGridFSDelete.

  3. Reliez le tMongoDBConnection au tMongoDBGridFSPut à l'aide d'un lien Trigger > OnSubjobOk.

  4. Répétez cette opération pour relier le tMongoDBGridFSPut au tMongoDBGridFSList, le tMongoDBGridFSList au tMongoDBGridFSGet puis le tMongoDBGridFSGet au tMongoDBGridFSDelete.

  5. Reliez le tMongoDBGridFSList au tMongoDBGridFSProperties à l'aide d'un lien Row > Iterate. Ce lien permet au tMongoDBGridFSList d'envoyer des données au tMongoDBGridFSProperties de manière itérative.

  6. Reliez le tMongoDBGridFSProperties au tFilterColumns à l'aide d'un lien Row > Main.

  7. Faites de même pour relier le tFilterColumns au tLogRow.

Se connecter à MongoDB

  1. Double-cliquez sur le tMongoDBConnection pour ouvrir sa vue Component.

  2. Dans la liste DB version, sélectionnez la version de MongoDB que vous utilisez.

  3. Dans les champs Server et Port, saisissez les informations d'authentification requises pour vous connecter à MongoDB.

    Si vous utilisez le nom d'hôte du serveur MongoDB, assurez-vous d'avoir ajouté le mapping entre ce nom d'hôte et son adresse IP dans le fichier hosts du système d'exploitation dans lequel le Job actuel est exécuté.

  4. Dans le champ Database, saisissez le nom de la base de données hébergeant GridFS. Cette base de données est créée à la volée si elle n'existe pas.

Copier des données dans le GridFS de MongoDB

  1. Double-cliquez sur le tMongoDBGridFSPut pour ouvrir sa vue Component.

  2. Cochez la case Use existing connection et dans la liste Connection, sélectionnez le composant dans lequel la connexion à MongoDB à utiliser est définie.

  3. Dans le champ Bucket, saisissez le bucket à utiliser pour stocker les fichiers dans GridFS. Dans cet exemple, saisissez talend_channel/61.

  4. Dans le champ Local folder, saisissez le chemin ou parcourez votre système jusqu'au dossier dans lequel les fichiers à charger dans GridFS sont stockés. Comme expliqué précédemment, il s'agit d'un fichier vidéo nommé custom_hadoop.mp4.

  5. Dans la table Files, ajoutez une ligne en cliquant sur le bouton [+] et dans la colonne Filemask, saisissez *.mp4 entre guillemets doubles. Cela permet au tMongoDBGridFSPut de copier tous les fichiers avec l'extension .mp4 depuis le dossier local que vous avez spécifié dans le bucket à utiliser dans GridFS.

  6. Laissez la colonne New name vide, c'est-à-dire, laissez les guillemets doubles tels quels dans cette colonne, afin que cette vidéo garde le même nom après avoir été copiée dans GridFS.

Lister des fichiers stockés dans le GridFS de MongoDB

Effectuer une boucle sur les fichiers

  1. Double-cliquez sur le tMongoDBGridFSList pour ouvrir sa vue Component.

  2. Cochez la case Use existing connection et dans la liste Connection, sélectionnez le composant dans lequel la connexion à MongoDB à utiliser est définie.

  3. Dans le champ Bucket, saisissez le bucket dans lequel les fichiers à lister sont stockés. Dans cet exemple, saisissez talend_channel/61.

  4. Dans le champ Query, saisissez la requête pour sélectionner les fichiers sur lesquels vous souhaitez que le tMongoDBGridFSList effectue une boucle afin de générer différentes listes de fichiers. Dans cet exemple, laissez celle par défaut pour effectuer une boucle sur tous les fichiers stockés dans le bucket talend_channel/61.

    Comme expliqué précédemment, seul un fichier, custom_hadoop.mp4, est attendu.

Extraire des métadonnées de fichier

  1. Double-cliquez sur le tMongoDBGridFSProperties pour ouvrir sa vue Component.

  2. Cochez la case Use existing connection et dans la liste Connection, sélectionnez le composant dans lequel la connexion à MongoDB à utiliser est définie.

  3. Dans le champ Bucket, saisissez le bucket dans lequel les fichiers à utiliser sont stockés. Dans cet exemple, saisissez talend_channel/61.

  4. Dans la liste Query type, sélectionnez l'approche que vous souhaitez utiliser pour sélectionner les fichiers à partir desquels extraire les métadonnées. Dans cet exemple, sélectionnez Filename pour utiliser l'attribut filename de chaque fichier GridFS lors de chaque requête.

  5. Dans le champ Filename, appuyez sur Ctrl + Espace pour afficher la liste des variables et choisir la variable à utiliser. Dans cet exemple, sélectionnez tMongoDBGridFSList.CURRENT_FILENAME dans la liste. L'expression pour utiliser la variable CURRENT_FILENAME est ensuite automatiquement ajoutée.

    Elle permet au tMongoDBGridFSProperties de lire chaque nom de fichier retourné par le tMongoDBGridFSList.

Filtrer des attributs

  1. Double-cliquez sur le tFilterColumns pour ouvrir sa vue Component.

  2. Cliquez sur le bouton [...] à côté de Edit schema pour ouvrir l'éditeur de schéma.

  3. Du côté gauche (côté de l'entrée), sélectionnez la colonne à utiliser et cliquez sur le bouton pour déplacer cette colonne du côté droit (côté de la sortie). Dans cet exemple, déplacez chaque colonne du côté droit sauf la colonne contentType.

    Chaque colonne représente un attribut de fichier et le schéma prédéfini du tMongoDBGridFSProperties contient automatiquement ces colonnes.

  4. Cliquez sur OK pour valider ces modifications et accepter la propagation proposée par la boîte de dialogue qui s'ouvre.

Télécharger des fichiers depuis le GridFS de MongoDB

  1. Double-cliquez sur le tMongoDBGridFSGet pour ouvrir sa vue Component.

  2. Cochez la case Use existing connection et dans la liste Connection, sélectionnez le composant dans lequel la connexion à MongoDB à utiliser est définie.

  3. Dans le champ Bucket, saisissez le bucket dans lequel sont stockés les fichiers à récupérer. Dans cet exemple, saisissez talend_channel/61.

  4. Dans le champ Local folder, saisissez le chemin du dossier local dans lequel vous souhaitez stocker les fichiers téléchargés. Dans ce scénario, saisissez C:/tmp/output.

  5. Cochez la case Use Document ID as output filename pour renommer chaque fichier téléchargé en utilisant la valeur de son attribut ObjectID.

    Puisqu'un fichier dans GridFS se distingue par son ID plutôt que par son nom, il est possible que plusieurs fichiers possèdent le même nom. Pour cette raison, lorsque vous téléchargez ce type de fichiers dans le même répertoire sans les renommer différemment, une exception est retournée pour vous avertir que le fichier en cours de téléchargement existe déjà. Afin d'éviter cette erreur, vous pouvez soit cocher la case Overwrite local files pour remplacer le fichier existant par le dernier fichier téléchargé, soit renommer ces fichiers à la volée en utilisant leur ID. Dans cet exemple, c'est la stratégie de renommage des fichiers qui est adoptée.

Supprimer des fichiers du GridFS de MongoDB

  1. Double-cliquez sur le tMongoDBGridFSDelete pour ouvrir sa vue Component.