Scénario : Récupérer des fichiers d'un conteneur Azure Storage - 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, un Job a cinq composants utilise des composants Azure Storage pour écrire des fichiers dans un système Azure Storage et récupérer les fichiers sélectionnés (des blobs, dans le vocabulaire Azure Storage) de ce système.

Avant de reproduire ce scénario, vous devez avoir les droits et permissions appropriés en lecture/écriture sur les fichiers du compte de stockage Azure à utiliser. Pour plus d'informations, consultez la documentation de Microsoft pour Azure Storage : http://azure.microsoft.com/en-us/documentation/services/storage/ (en anglais).

Le conteneur talendcontainer utilisé dans ce scénario a été créé à l'aide du composant tAzureStorageContainerCreate, dans le scénario Scénario : Créer un conteneur dans Azure Storage.

Construire le Job

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

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

  2. Déposez un tAzureStoragePut, un tAzureStorageList, un tJava et un tAzureStorageGet dans l'espace de modélisation graphique.

  3. Connectez les composants Azure Storage à l'aide de liens Trigger > OnSubjobOk. Reliez le tAzureStorageList au tJava à l'aide d'un lien Row > Iterate.

Connexion à un compte Azure Storage

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

  2. Dans le champ Account name, saisissez le nom du compte de stockage auquel se connecter. Dans cet exemple, saisissez talendstorage, un compte créé pour la démonstration.

  3. Dans le champ Account key, collez la clé primaire ou secondaire associée au compte de stockage à utiliser. Ces clés se trouvent dans le dashboard Manage Access Key du système Azure Storage auquel se connecter.

  4. Dans la liste Protocol, sélectionnez le protocole pour l'endpoint du compte de stockage à utiliser. Dans cet exemple, sélectionnez HTTPS.

Ecrire des fichiers dans Azure Storage

  1. Double-cliquez sur le tAzureStoragePut afin d'ouvrir sa vue Component.

  2. Cochez la case Use an existing connection puis sélectionnez la connexion précédemment configurée. Dans cet exemple, sélectionnez tAzureStorageConnection_1.

  3. Dans le champ Container name, saisissez le nom du conteneur dans lequel écrire les fichiers. Dans cet exemple, le conteneur est talendcontainer, un conteneur créé dans le scénario Scénario : Créer un conteneur dans Azure Storage.

  4. Dans le champ Local folder, saisissez le chemin d'accès ou parcourez votre système jusqu'au répertoire où sont stockés les fichiers à utiliser. Dans ce scénario, des images de processus techniques sont stockées localement dans E:/photos. Saisissez E:/photos ; cela permet au tAzureStoragePut de charger tous les fichiers du dossier et des sous-dossiers dans le conteneur talendcontainer.

    Dans un but de démonstration, les photos d'exemple sont organisées comme suit, dans le dossier E:/photos :

    • Directement sous le niveau E:/photos :

      components-use_case_triakinput_1.png

      components-use_case_triakinput_2.png

      components-use_case_triakinput_3.png

      components-use_case_triakinput_4.png

    • Dans le répertoire E:/photos/mongodb/step1 :

      components-use_case_tmongodbbulkload_1.png

      components-use_case_tmongodbbulkload_2.png

      components-use_case_tmongodbbulkload_3.png

      components-use_case_tmongodbbulkload_4.png

    • Dans le répertoire E:/photos/mongodb/step2 :

      components-use_case_tmongodbbulkload_5.png

      components-use_case_tmongodbbulkload_6.png

      components-use_case_tmongodbbulkload_7.png

      components-use_case_tmongodbbulkload_8.png

  5. Dans le champ Azure Storage folder, saisissez le chemin d'accès au répertoire dans lequel vous souhaitez écrire les fichiers. Ce répertoire est directement créé dans le conteneur à utiliser, s'il n'existe pas. Dans cet exemple, saisissez photos.

    Si vous ne saisissez rien et que vous laissez les guillemets par défaut, les fichiers et leur répertoire local seront écrits directement sous le niveau du conteneur.

Vérifier le transfert des fichiers

Configurer le tAzureStorageList

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

  2. Cochez la case Use an existing connection et sélectionnez la connexion précédemment configurée. Dans cet exemple, sélectionnez tAzureStorageConnection_1.

  3. Dans le champ Container name, saisissez le nom du conteneur dans lequel vous devez vérifier que les fichiers existent. Dans ce scénario, saisissez talendcontainer.

  4. Sous la table Blob filter, cliquez sur le bouton [+] pour ajouter une ligne à la table.

  5. Dans la colonne Prefix, saisissez le préfixe commun au nom des fichiers (blobs) à vérifier. Ce préfixe représente un répertoire virtuel que vous désignez comme point de départ de vérification des fichiers (blobs) . Dans cet exemple, saisissez photos/.

    Pour plus d'informations concernant le nom des blobs, consultez http://msdn.microsoft.com/en-us/library/dd135715.aspx (en anglais).

  6. Dans la colonne Include sub-directories, cochez la case dans la ligne ajoutée. Cela permet au tAzureStorageList de vérifier tous les fichiers quel que soit leur niveau hiérarchique sous le point de départ désigné.

Configurer le tJava

  1. Double-cliquez sur le tJava afin d'ouvrir sa vue Component.

  2. Dans le champ Code, saisissez :

    System.out.println();
  3. Dans le panneau Outline, par défaut à gauche de la vue Component, développez le nœud tAzureStorageList.

  4. Dans le panneau Outline, déposez la variable globale CONTAINER_BLOB entre les parenthèses du code dans la vue Component afin que le code soit le suivant :

    System.out.println(((Boolean)globalMap.get("tAzureStorageList_1_CURRENT_BLOB")));

Récupérer les fichiers sélectionnés

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

  2. Cochez la case Use an existing connection et sélectionnez la connexion précédemment configurée. Dans cet exemple, sélectionnez tAzureStorageConnection_1.

  3. Dans le champ Container name, saisissez le nom du conteneur duquel récupérer les fichiers. Dans ce scénario, saisissez talendcontainer.

  4. Dans le champ Local folder, saisissez le chemin d'accès ou parcourez votre système jusqu'au répertoire où stocker les fichiers récupérés. Dans cet exemple, saisissez E:/screenshots.

  5. Sous la table Blob, cliquez le bouton [+] pour ajouter une ligne à la table.

  6. Dans la colonne Prefix, saisissez le préfixe du nom commun aux fichiers (blobs) à récupérer. Dans cet exemple, saisissez photos/mongodb/.

  7. Dans la colonne Include sub-directories, cochez la case dans la nouvelle ligne. Cela permet au tAzureStorageGet de récupérer tous les fichiers (blobs) sous le niveau photos/mongodb/.

  8. Dans la colonne Create parent directories, cochez la case dans la ligne ajoutée afin de créer le même répertoire dans le dossier local spécifié que pour les blobs récupérés dans le conteneur.

    Notez que le fait d'avoir le même répertoire est nécessaire pour récupérer les blobs. Si vous laissez cette case décochée, vous devez créer le même répertoire vous-même dans le dossier local cible.

Exécuter le Job

  • Appuyez sur F6 pour exécuter ce Job.

Cela fait, la vue Run s'ouvre automatiquement. Vous pouvez examiner les résultats d'exécution.

Vous pouvez constater que le Job retourne la liste des blobs, ainsi que le préfixe photos dans le conteneur.

Vous pouvez également le constater dans la console Web du compte de stockage Azure :

Dans le dossier local spécifié, les blobs ayant le préfixe photos/mongodb/ ont été récupérés. Leur préfixe a été transformé en répertoire.