Mise en place du CDC en mode Redo/Archive log (journal) d'AS/400 - 6.2

Talend Real-time Big Data Platform Studio Guide utilisateur

EnrichVersion
6.2
EnrichProdName
Talend Real-Time Big Data Platform
task
Création et développement
Qualité et préparation de données
EnrichPlatform
Studio Talend

Depuis la version 5.4.2, le Studio ne crée, ne modifie et n'efface pas automatiquement les journaux. Il ne peut exécuter des processus CDC qu'en se basant sur un journal et des récepteurs que vous, ou l'administrateur de votre système AS/400, selon la politique de votre entreprise, fournissez. C'est pourquoi vous devez vous assurer qu'un ancien récepteur a été traité par RUNCDC avant de l'effacer, afin d'éviter la perte des informations contenues dans ce récepteur.

Les deux sections suivantes vous présentent une approche de la mise en place d'un environnement CDC dans le Studio Talend. Les contenus décrits comprennent :

  • les prérequis d'AS/400 ;

  • la configuration de votre système pour l'utilisation du CDC ;

  • l'extraction des changements ;

  • les prérequis pour la réutilisation d'un environnement CDC migré depuis la version 5.4.1, ou antérieure, du Studio.

Prérequis de la base de données AS/400

Avant de configurer votre CDC en mode Redo/Archive log (journal) sur AS/400, assurez-vous que les prérequis suivants sont respectés sur votre base de données AS/400 :

  • un OS/AS/400 (système d'exploitation de l'AS/400) V5R3M0, V5R4M0 ou V6R1M0 est utilisé ;

  • le compte utilisateur AS/400 pour CDC doit avoir des privilèges *ALLOBJ (droits sur tous les objets) ou au minimum tous les privilèges suivants :

    - CRTSAVF,

    - CLRSAVF,

    - DLTF,

    - RSTLIB,

    - DLTLIB,

    - CRTLIB,

    - CHGCMD,

    - FTP (l'accès au port FTP doit être disponible),

    - READ access (accès en lecture seule) sur les récepteurs du journal,

    - READ access (accès en lecture seule) sur les fichiers AS/400 monitorés,

    - READ/WRITE access (accès en lecture/écriture) sur les bibliothèque de sortie ;

  • les noms des fichiers ne doivent pas dépasser 10 caractères ;

  • si les fichiers en question sont déjà journalisés, le journal doit être créé avec l'option IMAGES (*BOTH).

Pour plus d'informations concernant la configuration de cette liste de prérequis, consultez le manuel de votre système AS/400.

Configurer le CDC en mode journal AS/400

Les étapes de configuration suivantes ne sont à mettre en place qu'une seule fois pour un scénario éditeur/souscripteur donné.

Etape 1 : Définir l'éditeur

Pour définir l'éditeur, vous devez :

  1. Créer un nouveau Job dans le Studio Talend.

  2. Définir une connexion à la base de données dédiée au CDC en renseignant les informations de connexion à cette base de données.

  3. Définir une connexion à la base de données dans laquelle les données sont stockées en renseignant les informations de connexion à cette base de données.

Etape 2 : Identifier la table source

Pour identifier la ou les table(s) à surveiller, cliquez-droit sur la connexion de la base de données à monitorer pour récupérer le schéma de la table source et charger ce dernier dans le Repository.

Etape 3 : Créer une table souscripteur

Pour définir la connexion entre le CDC et les données :

  1. Cliquez-droit sur le dossier CDC Foundation de la connexion de la base à monitorer et sélectionnez Create CDC dans le menu contextuel pour ouvrir la boîte de dialogue [Create Change Data Capture].

  2. Dans la boîte de dialogue [Create Change Data Capture], cliquez sur le bouton [...] du champ Set link Connection pour sélectionner la connexion à la base de données dédiée au CDC.

  3. Cliquez sur Create Subscriber pour créer les souscripteurs. La commande à exécuter s'affiche. La capture d'écran suivante montre une commande d'exemple.

    En général, la commande se présente comme suit :

    open <AS400_server_host>
    user <Username> <Password>
    quote rcmd "crtsavf qgpl/instfitcdc"
    quote rcmd "clrsavf qgpl/instfitcdc"
    bin
    cd qgpl
    put "<Studio_install>\plugins\org.talend.designer.cdc_<version>\resource\fitcdc.savf" instfitcdc
    quote rcmd "rstlib savlib(fitcdc) dev(*savf) savf(qgpl/instfitcdc) RSTLIB(<CDC_library_name>)"
    quote rcmd "CHGCMD CMD(<CDC_library_name>/RUNCDC) PGM(<CDC_library_name>/F2CD00) CURLIB(<CDC_library_name>)"
    quote rcmd "dltf qgpl/instfitcdc"
    quit  

    Elle est automatiquement exécutée via FTP par le Studio afin d'installer le programme RUNCDC, de restaurer la bibliothèque CDC (la base de données CDC) et de créer la table TSUBSCRIBERS.

  4. Si vous souhaitez exécuter manuellement cette commande, copiez-la et cliquez sur Skip afin de fermer la boîte de dialogue. Ainsi, la commande n'est pas exécutée par le Studio et vous devez la coller, voire l'éditer, et l'exécuter dans votre système AS/400.

    Sinon, cliquez sur Execute afin d'exécuter directement la commande par défaut dans le Studio. Une liste d'exécution étape par étape s'affiche.

    Notez que, dans la liste, vous pouvez voir une erreur ayant pour numéro 550 et décrivant des problèmes tels que le fait que tous les objets n'ont pas été restaurés. Ceci peut-être normal si la bibliothèque qui n'a pas été restaurée l'a été dans votre système AS/400. Contactez l'administrateur de votre système AS/400 pour plus de détails.

  5. Dans la boîte de dialogue [Create Change Data Capture], cliquez sur Finish.

Dans le dossier CDC Foundation, la connexion à la base de données CDC et le schéma de la table des souscripteurs s'affichent.

Etape 4 : Souscrire à la table source et activer la souscription

Vous devez préciser à quelle table le souscripteur veut souscrire, puis activer son inscription.

  1. Cliquez-droit sur le schéma correspondant à la table source et sélectionnez Add CDC dans le menu. La boîte de dialogue [Create Subscriber and Execute SQL Script] s'ouvre. Le nom long et le nom court de la table source s'affichent tous les deux dans cette boîte de dialogue.

    Avertissement

    La table source à monitorer doit comporter une clé primaire afin que le système CDC puisse identifier sur quelle ligne les changements ont eu lieu. Vous ne pourrez pas mettre en place l'environnement CDC si le schéma de votre table source ne contient aucune clé primaire.

    Dans cet exemple, comme le nom long CUSTOMERS ne fait pas plus de 10 caractères, le nom court est identique au nom long.

    Notez que si vous utilisez une table source récupérée depuis la version 5.4.1 ou antérieure du Studio, seul son nom long est récupéré. Vous donc devez à nouveau récupérer la table depuis le Studio actuel.

  2. Dans le champ Subscriber Name, saisissez le nom que vous souhaitez donner au souscripteur. Par défaut, le souscripteur est nommé APP1.

  3. Cliquez sur Execute puis sur Close.

    Dans le dossier CDC Foundation, les schémas de la table des changements et de la vue associée s'affichent.

  4. Depuis votre système AS/400 :

    1. Créez un nouveau destinataire :

      CRTJRNRCV JRNRCV(<source_library_name>/<receiver_name>)
    2. Créez un nouveau journal et joignez le destinataire créé dans l'étape précédente :

      CRTJRN JRN(<source_library_name>/<journal_name)JRNRCV(<source_library_name>/<receiver_name>)
    3. Pour le fichier à monitorer, commencer à enregistrer les modifications dans le journal créé dans l'étape précédente :

      STRJRNPF FILE(<source_library_name>/<file_to_be_monitored)JRN(<source_library_name>/<journal_name) IMAGES(*BOTH)
  5. Pour voir les changements apportés aux données, cliquez-droit sur la table correspondante dans le dossier Table schemas et sélectionnez View All Changes pour ouvrir la boîte de dialogue correspondante.

  6. Cliquez sur Finish pour fermer la boîte de dialogue.

Extraction des données modifiées en mode journal AS/400

Après avoir défini l'environnement CDC, vous pouvez créer un Job dans le Studio Talend à l'aide du composant CDC AS/400, afin d'extraire les changements apportés aux données du système source.

Pour un exemple d'utilisation des composants CDC et pour plus d'informations concernant ses propriétés et ses paramètres, consultez le Guide de référence des Composants Talend.

Si vous souhaitez utiliser la fonction CDC avec une base de données AS/400, procédez comme suit :

  1. A partir de la Palette, glissez les composants tAS400CDC et tLogRow dans l'espace de modélisation. Connectez les deux composants à l'aide d'un lien Row Main.

  2. Double-cliquez sur le composant tAS400CDC et paramétrez ses propriétés.

  3. Sélectionnez Repository dans la liste déroulante Property type et cliquez sur le bouton [...] pour récupérer le schéma correspondant à votre connexion CDC. Les champs suivants sont automatiquement renseignés avec les informations de connexion de à la base de données CDC.

  4. Sélectionnez Repository dans la liste déroulante Schema et cliquez sur le bouton [...] pour récupérer le schéma correspondant à votre table Oracle à monitorer.

  5. Dans le champ Table Name, saisissez le nom de la table source surveillée par le CDC, CUSTOMERS dans cet exemple.

  6. Dans le champ Source Library, saisissez le nom de la bibliothèque source. Par défaut, c'est le nom de la base de données source.

  7. Dans le champ Subscriber, saisissez le nom du souscripteur qui va extraire les changements. Par défaut, le souscripteur est nommé APP1.

  8. Dans le champ Events to catch, cochez la case correspondant à l'événement ou aux événements à surveiller.

  9. Depuis votre système AS/400, exécutez la commande suivante :

      CHGJRN JRN(<Source_library_name>/<Source_table_name>) JRNRCV(*GEN)

    Sinon, vous pouvez aller dans la vue Advanced settings, cocher la case Customize FTP command et saisir :

    <CDC_library_name>/RUNCDC FILE(<Source_library_name>/<Source_table_name>) LIBOUT(<CDC_library_name>) MODE(*DETACHED) MBROPT(*ADD) DTCHJRN(*YES)

    Cette commande permet au tAS400CDC de détacher le plus ancien récepteur du journal, d'en créer un nouveau et de l'attacher au journal.

  10. Enregistrez votre Job et appuyez sur F6 pour l'exécuter.

Dans la console, vous pouvez lire les résultats en sortie qui correspondent à ce que vous pouvez voir dans la boîte de dialogue [View All Changes].

Prérequis pour réutiliser un environnement CDC migré

Comme la manière dont le Studio prend en charge le CDC a changé, si vous migrez un environnement CDC établi depuis la version 5.4.1 ou antérieure du Studio vers la version actuelle du Studio, vous devez effectuer les opérations suivantes avant de réutiliser cet environnement :

  • Le nom long et le nom court de la table AS/400 sont tous les deux récupérés avec le schéma de la table dans le Repository. Le nom de la table CDC provient automatiquement du nom court. Cela signifie que vous devez à nouveau récupérer votre table AS/400 après la migration afin que le Studio reconnaisse la table source et la table CDC.

  • La structure de la table TSUBSCRIBERS a été mise à jour afin de contenir le nom long et le nom court de la table source. Ainsi, vous devez effacer le CDC existant et ajouter un nouveau CDC afin de réinitialiser votre table TSUBSCRIBERS.

  • Le Studio ne crée, ne modifie et n'efface aucun journal. Par conséquent, il ne peut détacher automatiquement un récepteur plus ancien d'un journal et en attacher un nouveau. Comme les processus de détachement et d'attachement sont indispensables pour que le Studio prenne en compte le dernier changement, vous devez exécuter la commande suivante dans le système AS/400 :

      CHGJRN JRN(<Source_library_name>/<Source_table_name>) JRNRCV(*GEN)

    Sinon, vous pouvez également utiliser une commande FTP dans le composant tAS400CDC afin d'automatiser ce processus.

    Pour plus d'informations sur l'utilisation de la fonctionnalité Customize FTP command du composant tAS400CDC, consultez le Guide de référence des Composants Talend.