24
G-Frido JUGO4715 1 Tutoriel DataStage Server (9) Lien internet : http://www.exl-infosfr.com/tutoriels/tutoriel-datastage-server/ Table des matières Introduction et histoire Architecture de DataStage Server Composants applicatifs o Présentation du Designer o Présentation du Director o Présentation de l’Administrator Mon premier job Un panel des possibilités de DataStage Server Séquencer des jobs Monitorer/programme r des jobs

Tutoriel DataStage Server (9)

  • Upload
    jugo4715

  • View
    6.623

  • Download
    42

Embed Size (px)

DESCRIPTION

Tutoriel DataStage Server (9)

Citation preview

Page 1: Tutoriel DataStage Server (9)

G-Frido JUGO4715

1

Tutoriel DataStage Server (9) Lien internet : http://www.exl-infosfr.com/tutoriels/tutoriel-datastage-server/

Table des matières

Introduction et histoire

Architecture de DataStage Server Composants applicatifs

o Présentation du Designer o Présentation du Director o Présentation de l’Administrator

Mon premier job Un panel des possibilités de DataStage Server

Séquencer des jobs Monitorer/programmer des jobs

Page 2: Tutoriel DataStage Server (9)

G-Frido JUGO4715

2

Introduction

Vous vous demandez certainement ce qu’est DataStage, ou vous en avez entendu parler sans trop savoir de quoi il s’agissait … et bien ce tutoriel est pour vous. Il a été conçu de manière

simple et triviale afin d’offrir une première approche de cet outil à destination des néophytes (Pour toute questions supplémentaires n’hésitez pas à vous rendre du le forum créé à cet

effet.)

DataStage est avant toute chose ce que l’on appelle un ETL (comme Extract Transform et Load) – à ne pas confondre avec un EAI, un EII, un ESB ou tout autre middleware d’intégration -. Ce type d’outil on été créé il y a plusieurs années maintenant afin de permettre

– comme son nom l’indique – d’extraire, traiter et charger des données en masse dans un autre système. Bien sur le décisionnel (business intelligence) fût – et est toujours – l’un des premier

utilisateur de ce type d’outil.

Un peu d’histoire avant tout

Aujourd’hui, DataStage fait partie intégrante de la suite IBM InfoSphere, et est l’un des

composant majeur d’Information Server. Mais d’où vient- il en réalité ? quel est son passé pour le moins mouvementé ?

Et bien tout commence avec la société VMark une « spin off » de la société Prime Computer

qui développa deux produits phares : la base de données UniVerse et l’ETL DataStage. Pour la petite histoire c’est Lee Scheffer (qui deviendra très vie l’architecte de la solution) qui développa le premier prototype de DataStage en 1996. Les ETL n’étaient pas encore vraiment

nés mais ce type d’outils étaient considérés comme « d’avant garde » à l’époque. En janvier 1997 une première version (Alpha) est mise à disposition pour tests : DataStage est né !

S’en suit une série de rachats, acquisitions/fusions qui vont boulverser et enrichir ce logiciel.

En Octobre 1997 VMark acquiert Unidata et le résultat de cette fusion est une nouvelle société : Ardent Sofware. En 1999 Ardent est elle même rachetée par Informix (la base de données) qui est elle même rachetée en 2001 par IBM qui ne prend que la partie base de

données laissant la partie ETL (DataStage) à une société indépendante : Ascential Software ! Cette même société va acquérir Torrent Systems (éditeur d’Orchestrate, le père de

DataStage PX/Entreprise).

En 2005 IBM rachète Ascential Sofware et inclut ses logiciels dans la suite WebSphere puis InfoSphere (en 2008).

Page 3: Tutoriel DataStage Server (9)

G-Frido JUGO4715

3

A propos de ce tutoriel

Ce tutoriel se compose en deux parties :

la première est une brève présentation du produit : l’objectif est de vous familiariser rapidement avec toutes les composantes de cet outil

la seconde est un tutoriel à proprement dit dont l’objectif est de vous guider de manière pratique sur des exemples concrets dans la réalisation de jobs avec DataStage.

Afin de faire ce tutoriel de manière efficace, vous devez Avoir:

DataStage v8.x sur Windows (idéalement)

Un accès aux fichiers du serveur Du temps … 1/2, 1 heure ?

Architecture de DataStage v7.x Server

Jusqu’à la version 8 d’information Server (et donc de DataStage), l’architecture de DataStage était définie par une architecture client-server classique :

Page 4: Tutoriel DataStage Server (9)

G-Frido JUGO4715

4

Pour résumer, DataStage Server était alors composé d’un serveur et les application clientes

(de développement, suivi et administration) se connectaient directement dessus pour effectuer leurs opérations. Ce qui n’apparait pas dans ce schéma c’est la base Universe qui fait partie

totalement intégrante du serveur DataStage … elle n’a d’ailleurs pas vraiment disparue de la version actuelle (même si IBM l’a comme qui dirait un peu caché).

Architecture de DataStage v8.x Server

En 2007-2008 est apparu la version 8 de DataStage (vous pouvez consulter l’article ecrit à

cet effet ici : http://www.exl-infosfr.com/2010/03/233-les-nouveautes-de-la-v8-x/). Cette version

est ce que l’on appelle une version majeure du produit, et c’est peu dire d’ailleurs vu l’ampleur de la refonte qu’il a subit. En effet afin d’intégrer au mieux les autres éléments de la

plateforme (QualityStage, Information Analyzer, etc.) la plateforme Information Server est née ! et par ce biais les outils de cette plateforme (dont DataStage) se sont vus intégré dans une architecture technique multi-tiers.

Une architecture plus complexe, certes, mais beaucoup plus flexible et surtout permettant une intégration entre les différents modules de la suite. La première partie visible de cette refonte est la création du référentiel de métadonnées (Metadata Repository). Désormais DataStage

l’utilise pleinement, mais celà à rajouté un élément dans l’architecture : une base de données (DB2, Oracle ou SQL Server). Ce n’est pas tout, afin de gérer les couches de services

(authentification, logs, etc.) IBM a décidé de rajouter une couche intermédiaire de communication : le domaine qui techniquement se traduit par un serveur d’applicat ion (devinez lequel ?).

Page 5: Tutoriel DataStage Server (9)

G-Frido JUGO4715

5

Coté clients il y a eu pas mal de modifications, je n’en citerais que deux (les deux principales) :

La disparition du Manager qui s’intègre désormais dans le designer

L’apparition d’une console Web d’administration

Composants applicatifs

Le Designer

Le Designer est sans doute le composant le plus important de DataStage puisque c’est l’outil de développement des flux, ou plutot des jobs si on reprend la terminologie DataStage.

Qu’est-ce qu’un job ?

Un Job peut permettre l’extraction et la validation de données afin de garantir la mise à jour

d’un entrepôt de données par exemple ou tout autre source de données de manière générale. Un second Job peut quant à lui mettre à jour des critères de validation initialisant ainsi

l’exécution d’un ensemble de Jobs.

Notez qu’un Job DataStage n’est exécutable qu’une fois compilé !

Pour construire un job DataStage, on élabore dans l’ordre :

Page 6: Tutoriel DataStage Server (9)

G-Frido JUGO4715

6

Son architecture générale de manière graphique dans la fenêtre « Job » à l’aide des

différents stages (modélisation des différentes étapes de traitement nécessaire) et de liens (Schématisation des flux de données entre les stages)

On renseigne ensuite les propriétés des stages, en commençant toujours par les extrémités (entrées et sorties) et en finissant par les stages intermédiaires (d’agrégation et/ou de transformation par exemple).

A quoi ressemble le Designer ?

Mais revenons à notre Designer, Pour le lancer cliquez sur l’icône Designer :

Une fenêtre de connexion est alors proposée (DataStage est en effet une application sécurisée, un utilisateur/mot de passe vous est indispensable pour vous connecter) :

Saisissez le domaine (nom du serveur de domaine – c’est à dire le serveur WebSphere – sur le

port 9080 en général), vos identifiants de connexion puis sélectionnez le projet DataStage dans lequel vous souhaitez travailler. Cliquez sur OK.

Une fenêtre est alors affichée vous proposant de créer un nouveau job, cliquez sur Annuler/Cancel et regardons ensemble comment est conçu l’écran Designer:

Page 7: Tutoriel DataStage Server (9)

G-Frido JUGO4715

7

Cet écran est divisé en 3 parties (organisation par défaut) :

en haut à gauche : le référentiel contenant tous les objets DataStage du projet

en bas à gauche : la pallette qui contient tous les stages utilisables dans le canevas (ces stages sont regroupés par type)

à droite : le canevas : dans ce canevas vous concevrez les jobs à partir des stages

disponibles dans la pallette.

Dans DataStage Server voici quelques uns des types de stages disponibles :

Général : sert à placer des annotations, des containers (composants réutilisables) construire des liens entre stages

Database : contient tous les stages d’accès aux bases de données File : Contient les stages d’accès aux fichiers

Processing : contient les stages de traitements (transformation) des données Real Time : contient les stages Java, XML et ISD

En fait, il y a assez peu de stages disponibles (surtout quand on compare au moteur PX/EE de DataStage), le principal et indispensable dans DataStage Server étant le Transformer.

Quant au référentiel (repository) notez qu’il vous permet d’organiser de manière très flexible

(surtout depuis la v8) tous vos objets DataStage.

Les objets DataStage

On peut comptabiliser beaucoup d’objets DataStage, voici ceux qui sont souvent utilisés :

Page 8: Tutoriel DataStage Server (9)

G-Frido JUGO4715

8

Les jobs Server (ou parallel pour le moteur PX)

Les répertoires (pour organiser votre repository), il ont un icône semblable à celui de Windows

Les « Table Definition » : contient les métadonnées d’une table ou d’un fichier Les « shared container » qui permettent de réutiliser des portions de jobs (approche

composants)

Les routines : qui sont en quelque sorte des macros interne DataStage réutilisables dans les jobs sequence ou dans les transformers. ils sont développés (pour DataStage

Server) en Basic DataStage. Les « Data Connection » : objet contenant les informations de connexion à une base Les « Parameter Sets »: objet contenant un ensemble de parametres réutilisables dans

plusieurs jobs

Le Director

Le Director est en quelque sorte une application cliente transverse puisqu’elle s’adresse à la

fois aux équipes de développement et à celles d’exploitation. Cette situation quelque peu batarde pose parfois d’ailleurs des soucis de périmètre entre ces deux typologies d’équipe différentes … heureusement avec la v8 il est possible de limiter les accès selon le profil.

A quoi sert le Director ?

le Director a un triple intérêt :

1. Le premier et non des moindres il permet de visualiser toutes les logs de traitements générées par le moteur DataStage. De manière plus poussée le monitoring de jobs en

cours d’exécution est une fonctionnalité très interressante. 2. Il permet en outre de lancer/arrêter/reseter des jobs 3. Enfin il permet d’ordonnancer des jobs dans le temps. Attention, ne vous y méprennez

pas … DataStage ne dispose pas d’un ordonnanceur intégré, à la place il va util isé celui de son système hôte (at, cron). néanmoins l’interface du Director permet

d’effectuer ce type de programmation plus simplement.

Cette interface permet aussi d’effectuer d’autres opérations comme le nettoyage de ressource, etc.

A quoi ressemble le Director?

Revenons Director, Pour le lancer cliquez sur l’icône Director:

Une fenêtre de connexion est alors proposée (tout comme pour l’accès au Designer) :

Page 9: Tutoriel DataStage Server (9)

G-Frido JUGO4715

9

Saisissez le domaine (nom du serveur de domaine – c’est à dire le serveur WebSphere – sur le

port 9080 en général), vos identifiants de connexion puis sélectionnez le projet DataStage dans lequel vous souhaitez travailler. Cliquez sur OK.

Les trois principales fonctions sont accessibles via les boutons :

Status et logs (pour les logs) / liste et détail Schedule (pour la programmation horaire) Run Now.., Reset, Stop

Page 10: Tutoriel DataStage Server (9)

G-Frido JUGO4715

10

Notez ici que vous retrouvez dans le volet de gauche exactement la hiérarchie du Repository

que vous aviez dans le Designer. Chaque objet DataStage qui peut être monitoré apparait alors permettant ainsi à l’utilisateur de voir le détail de son exécution (log Details).

Les logs sont principalement de 3 types :

Vert / Information : comme son nom l’indique il s’agit d’une information sur

l’exécution en cours Jaune / Warning : Attention il s’est passé quelque chose d’anormal et/ou

potentiellement gênant pour la suite … ça ne bloque pas le traitement en cours (pour l’instant du moins car au bout d’un certain nombre de warning le job s’arrête).

Rouge / Fatal : Erreur grave : le job s’arrête

Notez bien que lorsqu’un job est en erreur il faut exécuter une opération de reset (Cf. bouton

bleu avec les deux triangles tournés vers la gauche) afin de réinitialiser ce dernier.

L’Administrator

L’administrator est un outil qui est destiné principalement à l’exploitation. Néanmoins cet

interface qui comme son son l’indique permet d’administrer les projets DataStage peut être utilile à bien des égards aux équipes de développement : par exemple afin d’ajouter des parametres globaux au projet, changer des paramètres d’optimisation, de log, etc.

A quoi sert l’Administrator?

l’Administrator sert à administrer les parametres des projets gérés dans DataStage (Cette notion de projet dans DataStage permet de cloisonner les objets de manière hérmétique).

Chaque projet possède donc son propre repository, et donc ses propres objets mais aussi et surtout son paramétrage propre. Voici l’utilité de l’Administrator qui permet justement de modifier les paramètres de chaque projets de manière hermétique.

A quoi ressemble l’Administrator ?

Revenons Director, Pour le lancer cliquez sur l’icône Administrator :

Une fenêtre de connexion est alors proposée, tout comme pour l’accès au Designer et le

Director à la différence près qu’à ce niveau aucun projet n’est demandé.

Création d’une variable projet

Dans le cadre de ce tutoriel, nous allons créer une variable projet, c’est à dire une variable qui sera utilisable pour tous les objets du repository du projet. Nous verrons plus tard au cours de

ce tutoriel comment la récupérer et l’utiliser.

Page 11: Tutoriel DataStage Server (9)

G-Frido JUGO4715

11

L’administrator étant lancé, et la connexion réalisée avec succès, sélectionnez tout d’abord

l’onglet Projects, puis dans la liste présentée double cliquez sur votre projet : la fenetre de paramétrage du projet apparait alors, cliquez sur le bouton Environments Variable afin de voir

la liste de toutes les variables projet :

Sélectionnez alors « user Defined » et ajoutez à droite la variable : MA_VARIABLE de type

String et dont la valeur est TUTO DataStage.

Cliquez sur OK pour valider.

Votre variable projet est maintenant créée, nous allons pouvoir commencer à développer notre job.

Mon premier job

Nous voici au cœur de ce tutoriel, l’objectif ici est de créer son premier job. Ce job nous allons donc commencer avec un exemple très simple qui est le chargement d’un fichier texte

dans un fichier Hash … au cours de ce chargement nous effectuerons une transformation mineure qui est la concaténation du nom et du prénom.

NB: un fichier Hash est une structure interne (Universe) DataStage server. Sa structure est

indexée (avec des champs clés).

Pré-requis

Page 12: Tutoriel DataStage Server (9)

G-Frido JUGO4715

12

Pour créer ce job il vous faut tout d’abord un fichier source à lire, voici celui que l’on utilisera

dans notre tutoriel :

ID|NOM|PRENOM|SALAIRE|SERVICE 1|KALA|BENOIT|90400|MARK

2|LEBRANCHU|PAUL|75900|FIN 3|TORGIL|JEAN|45000|FIN

4|TUDOR|JEAN-PHILIPPE|67000|MARK 5|GEORGE|MIKAEL|89000|FIN …

Il s’agit d’un fichier plat avec pour séparateur de champ le pipe : |, la première ligne contient

les noms de colonne.

Import des métadonnées

Dans le repository, faites un clic droit, puis sélectionnez « Import Table Definition », puis

« Sequential File Definition ». un assistant apparait alors pour importer vos métadonnées basées sur le fichier que vous allez sélectionner :

Dans cet assistant sélectionnez tout d’abord le répertoire dans lequel se trouve votre fichier, puis le fichier lui même. Une nouvelle fenêtre apparait alors (cf. ci-dessous) détaillant la

structure du fichier telle que vu par l’assistant. Cochez la case « First line is column names » puis changer la valeur de « Other Delimiter » avec le pipe : |

Page 13: Tutoriel DataStage Server (9)

G-Frido JUGO4715

13

Cliquez sur preview pour voir la nouvelle structure et validez. Un nouvel objet apparait alors

dans le repository, gardez le précieusement il servira plus tard.

Création du job

Tout d’abord créons le job, Pour celà il y a plusieurs moyens, le plus simple étant d’effectuer

un clicl droit dans le référentiel et en sélectionnant New > Server Job comme suit :

Une nouvelle fenêtre apparait alors dans le canevas (volet de droite) avec pour entête (en haut à gauche) le mot Server en blanc. Voilà c’est prêt, vous pouvez commencer à dessiner votre flux d’intégration. Pour celà il faut utiliser les objets présents dans lapalette (en bas à gauche).

Dans le cadre de notre tutoriel et de ce premier job nous allons utiliser 3 objets :

1. Un stage de lecture de fichier séquenciel 2. Un Stage de transformation (transformer)

3. Un stage d’ecriture de fichier Hash

Page 14: Tutoriel DataStage Server (9)

G-Frido JUGO4715

14

Notez ici que contrairement à d’autres ETL, DataStage ne fait pas de différence (en matière de

design) entre les stages de lecture et ceux d’écriture !

Pour placer des stages dans le canevas sélectionnez les dans la palette (via un simple clic gauche), puis recliquez dans le canevaspour le positionner.

Pour créer des liens entre les stages il suffit de sélectionner un stage, clic droit et on tire le lien

créé vers le stage cible (vous pouvez aussi sélectionner le lien dans le palette). Construisez ainsi notre job de lecture/chargement de fichier tel que dans l’image ci dessous :

Renommez chaque lien comme dans la copie d’écran ci-dessus.

Passons maintenant au paramétrage du job …

L’ossature de notre job étant maintenant construite nous allons paramé trer chaque stage afin

qu’il effectue sa mission.

Paramétrage de la lecture du fichier séquentiel

Pour paramétrer un stage il suffit de faire un clic droit sur le stage et choisir « Properties », une boite de dialogue est alors affichée vous permettant de caractériser le comportement de

votre stage. Naturellement chaque stage a sa propre manière d’être paramétré, donc une boite de dialogue différente est présentée pour chaque type de stage. Voici celle du stage

« Sequential File » :

Dans l’onglet Output saisissez le fichier source à lire avec son chemin d’accès comme ci-dessus.

Page 15: Tutoriel DataStage Server (9)

G-Frido JUGO4715

15

Ensuite, il faut décrire comment est structuré le fichier en question. pour celà changez le

Delimiteur avec le pipe | et saisissez 000 (trois zéros) pour le « Quote character », celà signifie que chaque colonne n’est pas bornée de carractère (comme des doubles quotes ou autre chose)

:

Dans le dernier onglet (Columns), cliquez sur Load… pour importer vos métadonnées et sélectionnez ensuite la « Table definition » que vous avez créé tout au début :

Pour tester que votre stage est bien configuré, cliquez sur « View Data… », normalement vous devriez avoir affiché dans une grille le contenu du fichier.

Paramétrage de la lecture du transformer

Le transformer est réellement le « couteau Suisse » de DataStage Server, il sert à presque tout

faire en matière de transformation. C’est donc un élément incontournable que nous n’allons qu’effleurer dans le cadre de ce tutoriel. Nous allors ici effectuer ce que l’on appelle un

mapping de données. Pour celà double cliquez sur le transformer pour avoir la fenêtre ci-dessous :

Page 16: Tutoriel DataStage Server (9)

G-Frido JUGO4715

16

Cette fenêtre est divisée en 4 parties :

en haut à gauche : le(s) flux en entrée du transformer. ici nous n’en avons qu’un, celui de lecture du fichier plat.

en bas à gauche : le(s) métadonnée(s) du/des entrée(s) du transformer

en haut à droite : le(s) flux en sortie du transformer. ici nous n’en avons qu’un, celui écriture du fichier Hash

en bas à droite : le(s) métadonnée(s) de sortie du transformer

Note: Chaque boitier du haut porte le nom du lien qui le porte.

Ce qui est important c’est les liens (mapping) entre les métadonnées des blocs du haut.

Pour créer un mapping, c’est très simple il suffit de maitriser le drag & drop ; Sélectionnez donc chaque colonne en haut à gauche (sauf la colonne PRENOM) et glissez là vers le boitier

vide à droite (Ln_Ecriture_Example).

Nous allons maintenant modifier le mapping (transformation) de la colonne nom en lui concaténant le prénom. Cliquez sur la colonne NOM (en haut à droite) et cha ngez la dérivation comme dans l’écran ci-dessus. Tapez Ln_Example.NOM : » » :

Ln_Example.PRENOM

Vous utilisez ici l’opérateur de concaténation (c’est à dire les deux points « : »)

Paramétrage du fichier hash

Page 17: Tutoriel DataStage Server (9)

G-Frido JUGO4715

17

Les fichiers Hash sont en quelque sorte le format natif de stockage de DataStage Server (via

Universe). Il sont donc fréquemment utilisés comme source de données intermédiaire (comme pour stocker des données de référence, ou autre).

Pou accéder au paramétrage, double-cliquez sur le stage (ou clic droit puis Properties). La

fenêtre suivante s’affiche :

Renseignez simplement dans l’onglet Stage/General le Directory Path (comme ci-dessus) avec l’endroit où vous désirez stocker votre fichier Hash.

Pas besoin de renseigner le détail des colonnes (onglet Input), car celà a été fait

automatiquement par DataStage lors de la phase précédente (renseignement du transformer).

Voilà, votre job est prêt ! il ne reste plus qu’à le compiler :

Et le lancer pour voir le résultat :

Page 18: Tutoriel DataStage Server (9)

G-Frido JUGO4715

18

Si les liens apparaissent en vert c’est bon signe, tout c’est bien passé (à vérifier quand même) … Vous pourrez constater aussi, et c’est bien pratique les informations du flux par lien

(Nombre de lignes traitées, et vitesse de traitement moyenne). Toutes ces informations vous pouvez aussi les retrouver dans le Director.

Possibilités de DataStage Server

Nous venons de voir comment créer un job et comment le lancer via la console de développement Designer. Voyons maintenant quelle sont les possibilités et surtout quelle flexibilité possède DataStage Server au travers de plusieurs points :

Sa palette de stages de transformation Sa palette de stage de connectivité Ses possibilités en matière d’ouverture

D’autres points tels que le séquencement et l’exploitation/monitoring des jobs seront abordés

juste après (pages suivantes).

La palette de stages de transformation

Voici la palette mise à disposition après l’installation de DataStage Server :

Page 19: Tutoriel DataStage Server (9)

G-Frido JUGO4715

19

L’Aggregator : permet d’effectuer des opérations de consolidation après regroupement de données (similaire au SQ L : GROUP BY). Grâce à ce stage il est donc possible d’agréger, de sélectionner une moyenne, un décompte, un maximum,

etc. à partir d’un regroupement de données. Command Stage : Permet de considérer le résultat d’une commande système (ou

TCL) comme une source de données FTP Plugin : Permet de considérer le contenu d’un FTP comme une source de

données

InterProcess : Les étapes InterProcess fournissent un canal de communication entre les processus WebSphere DataStage qui s’exécutent simultanément dans le même

travail Link Collector : L’étape Link Partitioner permet de partitionner des lignes à partir

d’un lien d’entrée et de distribuer les liens à 64 liens de sortie (au maximum)

Link Partitionner : L’étape Link Collector permet de collecter des données se trouvant sur 64 liens d’entrée au maximum et de transmettre les données à un seul lien

de sortie Merge : Fusion de deux fichiers séquentiels (avec différents modes de gestion de la

jointure)

Pivot : permet d’effectuer un pivot QualityStage: Appel à QualityStage

Row Merger: permet de fusionner toutes les colonnes en une seule chaîne dans un format spécifié.

Row Splitter: opération inverse du Row Merger

Sort: Tri Transformer: Le transformer permet d’effectuer toutes les autres opérations, comme

les jointures, filtres, changement de colonnes (mapping) transformations plus

complexes, etc.

La palette de stages de connectivité

Tout d’abord les stages qui permettent l’accès aux fichiers (Dans la palette, l’onglet File) :

On y retrouve :

Page 20: Tutoriel DataStage Server (9)

G-Frido JUGO4715

20

Complex Flat File : Les fichiers séquentiels à formattage complexes (comme des

fichiers Cobol par exemple) Folder : l’accès à un répertoire complet

Hashed File : Fichiers Hash natif DataStage Server (UniVerse) Sequentiel File : Fichier plat

On y trouve aussi les bases de données :

L’ouverture

DataStage/QualityStage V8 proposent un certains nombres de stages supplémentaires pour l’intégration à des systèmes « externes »

Java Client : permet de considérer un programme Java comme une source de données Java Transformer : Permet de réutiliser une logique de transformation codée en Java

Web Services Client : Permet de considérer un Web Service comme une source de données

Web Services Transformer : Permet de réutiliser une logique de transformation appelée via un Web Service

WebSphere MQ : connectivité avec MQ

WISD Input/OutPut : pour ceux qui ont l’option ISD (ex. RTI) XML Input/Output: connectivité XML (allez voir l’article sur ce sujet)

Créer sa propre logique de transformation

DataStage Server offre la possibilité de développer via son langage : le DataStage Basic:

Sa propre logique d’ordonnancement/séquencement via des Job Control

Page 21: Tutoriel DataStage Server (9)

G-Frido JUGO4715

21

Ses propres routines de transformations réutilisables dans les transformer ou jobs

(control ou sequence)

Un Article sur ce sujet a été consacré ici :

http://www.exl-infosfr.com/2010/07/811-developper-en-datastage-basic/

Séquencer des jobs

Nous avons vu jusqu’à présent comment créer des jobs d’alimentation de données. Ici nous allons voir un autre type de job : les jobs Sequence qui permettent de créer une logique de

type Workflow entre différents jobs mais qui permettent aussi de s’intégrer avec l’OS.

Pour créer un job Sequence, Sélectionnez dans le menu File, New l’item « Job Sequence ». Un nouveau canevas apparait alors avec mentionné en haut à gauche « Sequence ».

Comme c’est un nouveau type de job sa palette est naturellement différente et possède de

nouveaux stages orientés eux séquencement :

StartLoop et EndLoop : permettent de créer une boucle

Execute Command : permet l’exécution d’une commande shell et de récupérer le résultat

Nested Condition : permet de créer un branchement conditionnel Job Activity : Appel d’un job Notification Activity : permet l’envoi d’un mail

Routine Activity : permet l’appel à une routine (développée en DataStage Server) Sequencer : permet de regrouper des flux

Terminator : fin de traitement User Variable : permet de changer/affecter des variable d’environnement

Pour disposer ces stages sur le canevas on procède exactement de la même manière que pour

créer un job d’alimentation :

Page 22: Tutoriel DataStage Server (9)

G-Frido JUGO4715

22

Note : De la même manière il faut compiler le job avant de pouvoir le lancer.

Un job un peu plus complexe

Avant de se quitter, je vous propose d’étoffer quelque peu le job que nous avions développé précédemment … histoire de montrer d’autres possibilités de DataStage Server de façon concrète.

Voici donc le job que nous allons développer (et à partir de la même source de données).

L’idée est simple, Nous voulons à partir du même fichier source récupérer 2 fichiers :

1. Un fichier Hash ne contenant que les personnes du service FIN (financier) 2. Un fichier plat (séquentiel) contenant la somme des montants par service

Design du job

Pour commencer « posons » les stages correspondants à la logique à implémenter dans le canevas d’un nouveau job Server. Pour cela procédez comme nous l’avons vu

précédemment et placez-les comme suit :

Page 23: Tutoriel DataStage Server (9)

G-Frido JUGO4715

23

Paramétrage du Transformer

Constatez l’emplacement central du transformer qui va servir ici de « dispatcher » de flux, c’est à dire qu’il va dédoubler le flux en entrée et faire des opérations de filtrage.

Double-cliquez sur le transformer :

Vous pouvez remarquer qu’à droite il y a deux « boitiers » ayant chacun le nom des liens de sortie. Naturellement ils représentent ces liens et vous pouvez alors glisser les colonnes de

votre choix à partir du (des) boitier(s) source(s) (à gauche). Dans notre exemple :

Page 24: Tutoriel DataStage Server (9)

G-Frido JUGO4715

24

Pour le fichier de listing du service financier (FIN), glissez toutes les colonnes source

vers le boitier Ln_Ecriture_Example Pour l’agrégat des montants par service, ne glissez que les colonnes MONTANT et

SERVICE (lien Ln_Agg_Example)

Afin de créer un filtre sur un flux (c’est notre cas pour le listing du service financier), double cliquez sur l’entête du boitier désiré et tapez : Ln_Exemple.SERVICE = « FIN »

Votre filtre est créé sur ce flux, on peut passer à la suite

Paramétrage de l’aggregator

Double-cliquez sur le stage Aggregator pour le configurer :

Le paramétrage de ce stage est très simple, allez directement dans l’onglet Outputs/Columns.

Ce qui est important à ce niveau c’est la valeur de la colonne Derivation, c’est en effet ici que

vous allez préciser :

1. Vos colonnes de regroupement : ici la colonne SERVICE seulement (double cliquez sur la colonne pour ouvrir l’assistant de sélection)

2. Vos calculs sur le regroupement effectué (somme, moyenne, max, min, count, etc). Précisez pour la colonne MONTANT : Sum()

Voilà, votre job est maintenant prêt, compilez le et lancez le (dans le Designer ou le director).