23
ETL Extract - Transform - Load Présentation générale de Datastage Rémy Choquet - Université Lyon 2 - Master 2 IIDEE - 2006-2007

ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Embed Size (px)

Citation preview

Page 1: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

ETLExtract - Transform - Load

Présentation générale de Datastage

Rémy Choquet - Université Lyon 2 - Master 2 IIDEE - 2006-2007

Page 2: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Plan

• Introduction• Définition de datastage• Composants DataStage• Terminologie DataStage• Architecture• Les éléments basiques• Administrator• Manager• Designer• Director

• Basic UniVerse• Les fichiers Hash

Page 3: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Introduction

DataStage est constitué de plusieurs composants Client et Serveur:• Il s'agit d'une boîte à outils pour concevoir, développer et exécuter des applications

qui remplissent une ou plusieurs tables d'un DataWarehouse ou d'un DataMart.• Utilisation d'outils de conception graphique. Grâce à des techniques simples basées

sur le "pointer-cliquer", vous pouvez dessiner un schéma qui représente les différentes phases de votre traitement.

• Extraction des données à partir d'un fichier ou d'un type quelconque de base de données.

• Gestion de toutes les définitions de méta-données nécessaires à la définition de votre DataWarehouse. Vous pouvez afficher et modifier les définitions de tables à n'importe quel moment de la conception de votre application.

• Agrégation des données. Vous pouvez modifier les instructions SQL SELECT nécessaires à l'extraction des données.

• Transformation des données. DataStage est doté d'un ensemble de composants prédéfinis de transformation et de fonctions utilisables pour convertir vos données.

• Chargement du DataWarehouse.

Page 4: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Introduction

Page 5: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Définition générale de Datastage

• Datastage est avant tout un outil opérationnel: il faut comprendre la problématique métier avant de se lancer dans l’intégration

• Datastage permet de s’affranchir des problématiques techniques de programmation fastidieuses afin de se concentrer sur la finalité métier

• C’est un outil qui s’approche des méthodologies de développement rapide d’applications grâce à une interface de gestion de flux visuels

• C’est un ETL “engine based”: les transformations sont exécutées sur un serveur ETL, disposant en général d’un référentiel

Page 6: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

DataStage est constitué de composants installés sur le poste client et sur le serveur:

• Les composants client peuvent être installés sur le même système que les composants serveur.

• Les composants client et serveur installés varient selon l’édition de DataStage que vous possédez.

• Deux versions sont disponibles :• Edition Développeur. Destinée aux

développeurs pour concevoir, développer et créer des travaux DataStage exécutables. Contient tous les composants client et serveur décrits ci-dessous.

• Edition Opérateur. Destinée aux opérateurs pour valider, planifier, exécuter, et surveiller les travaux DataStage exécutables. Contient les composants DataStage Director et Server.

Composants Datastage

Page 7: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Composants DatastageVous accédez toujours à DataStage via un projet DataStage.

• Lorsque vous lancez un client DataStage, le système vous demande de vous connecter à un projet.

• Chaque projet contient:• Des travaux DataStage (ou Jobs) ,• Des composants (ou Stages) intégrés. Il s'agit de composants prédéfinis dans DataStage

et utilisés dans un travail,• Des composants définis par l'utilisateur. Il s'agit de composants personnalisés créés

avec DataStage Manager. Chaque composant défini par l'utilisateur exécute une tâche spécifique dans un travail.

• Un projet complet peut contenir plusieurs travaux.• L’exemple suivant décrit 2 Jobs A et B composés de Stages actifs (opérant des

modifications sur les données) et passifs (stages de connexion à une source ou une cible de données).

Page 8: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Les travaux ou jobs DataStage constituent un projet:• Par exemple, un travail permet d'extraire et de valider des données

d'une source de données sur une base hebdomadaire pour mettre à jour la cible DataWarehouse. Un autre travail permet d'extraire les données d'une base de données propriétaire pour mettre à jour les critères de validation avant de lancer les autres travaux.

• Un travail est exécutable lorsqu'il est compilé.

Les composants élémentaires des travaux DataStage sont appelés Stages. Chaque stage décrit un processus particulier:

• Par exemple, un stage peut extraire les données d'une source de données, tandis qu'un autre les transforme.

• Les stages sont reliés entre eux par des liens qui représentent le flux des données.

Composants Datastage

Page 9: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Terminologie Datastage

Terme Description

Container Groupe de stages et de liens dans un travail conçu.

DataStage DesignerOutil de conception graphique utilisé par le développeur pour concevoir et développer un travail datastage.

DataStage Director Outil utilisé par l’opérateur pour exécuter et surveiller les travaux DataStage.

DataStage Manager Outil utilisé pour afficher et modifier les définitions dans le Repository

Définition de colonne Définition des colonnes contenues dans une table de données. Comprend le nom de la colonne et le type de données contenues dans la colonne.

Définition de table Définition décrivant les données de votre choix, notamment des informations sur la table de données et les colonnes associées. Egalement appelées méta-données.

Développeur Personne chargée de la conception et du développement de travaux datastage.

Element de données Spécification qui décrit le type de données d’une colonne et la façon dont les données sont converties.

Elements de données intégrées Il existe deux types d’éléments de donneés intégrées: les types de base utilisés par DataStage pendant le traitement et ceux décrivant les différents formats de temps.

Fonction de transformation fonction qui prend une valeur et en calcule une autre.

Lots de travaux Groupe de travaux (jobs) ou d’instances distincts du même travail (avec des paramètres de travail différents) dont l’exécution est programmée.

Opérateur Personne qui planifie et surveille les travaux DataStage.

Repository Zone DataStage dans laquelle sont stockés pour chaque projet, les travaux, les définitions de tous les éléments de données, les stages standards et ceux définis par l’utilisateur.

Source Dans la terminologie DataStage, base de données, fichier plat, ou fichier hash.

Page 10: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Terminologie Datastage

Terme Description

Stage de Container Type de stage intégré qui représente un groupe de stages et de liens dans un travail conçu.

Stage de fichier HashCodé Stage permettant d’indéxer des données dans un fichier plat

Stage Composant qui représente une source de données, un stage de traitement ou le DataMart dans un travail (job) datastage.

Travail (Job)Ensemble de composants DataStage définissant la méthode d’extraction, de nettoyage, de transformation, d’intégration et de chargement des données dans une base de données cible. Un travail peut être compilé pour produire un programme exécutable.

Page 11: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Architecture

• DataStage possède une architecture globale en client/serveur. Les composants clients (outils de développement, de déploiement et d’administration) fonctionnent exclusivement sous Windows. Le serveur fonctionne sous Windows ou sous UNIX

• Composants Logiciels: Il s’agit de la partie active Datastage serveur qui ouvre les projets, exécute les jobs et gère leur planification. Elle sert aussi le référentiel des projets à l’attention des outils DataStage Clients. Le serveur Datastage peut être UNIX ou Windows. Les outils clients sont Microsoft. Une demande Java a été faite mais rien n’est décidé. Le Datastage serveur est lié à un référentiel qui se présente physiquement comme une architecture de dossiers sur la machine serveur. Chaque élément du projet est dans un sous-dossier. La racine est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects.

• Composants Client: • Designer : Outil de développement de jobs de Datastage. Permet l’élaboration des tâches effectuées par le

serveur.• Administrator : Gère les droits et les projets. Les droits reposent sur la sécurité de NT.• Manager : Gestion du déploiement et de la mise en production des jobs. Gère le versionnage des jobs, leur

export sous forme de packages exécutables et le transfert d’éléments de développement entre projets et entre serveurs.

• Package Installer : Installateur de composants DataStage, Installe les packages créés par le Manager et les plugins externes de DataStage dans les projets.

• Director : Gère la planification et l’exécution des jobs. Il permet de bloquer un job tant qu’un fichier attendu n’est pas là, d’envoyer un mail (sur-journalisation) à l’administrateur pour lui dire qu’un fichier est arrivé.

• Le moteur intégré de Datastage est UniVerse, qui est une base de données relationnelle étendue optimisée pour l’embarcation sur des applications.

• Les deux langages de programmation sont Basic et SQL.

Page 12: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Les éléments basiquesProjet

• Le projet est une banque de données centrale qui receuille toutes les informations nécessaires à l’élaboration des traitements ETL.• Le projet est administré au niveau de l’interface cliente Administrator et les méta-données qui compose son référentiel sont

gérées au niveau du manager.• On accède toujours à un module client Datastage via un projet.

Jobs• Un job datastage est la modélisation du flux des données dans un traitement ETL. Il est multi source et multi cible.• Les étapes intermédiaires effectuant une opération sur le flux de données sont modélisées par des stages unis par des liens.• Un job est compilé puis exécuté.

Routines• Ce sont des programmes écrits en Basic UniVerse. Elles permettent d’effectuer des transformations, d’appliquer des règles de

contrôle et d’autres opérations sur des données passées en argument.Stages

• Le stage est le composant élémentaire du job Datastage. Chaque stage décrit un processus particulier appliqué sur le flux de données (lien entre 2 stages). On distingue 2 types de stage:

• Les stages intégrés qui sont fournis en standard avec Datastage et permettent d’extraire, d’agréger, de transformer ou d’écrire des données:

• Le Stage Transformer: permet de transformer les données du flux entrant.

• Le Stage Aggregator: permet d’effectuer des opérations d’agrégation (somme, max, min, etc.) sur les données• Le Stage Sequential file: permet de lire ou créer des fichiers textes.• Le Stage Hash file: permet de lire ou d’écrire des fichiers hash-codés (indexés).• Le Stage ODBC: permet de lire ou d’écrire dans une base de donnée supportée par ODBC.• Le Stage UV: permet de lire ou d’écrire des données depuis ou vers une base Universe.

Table Definitions• Ce sont les structures dans lesquelles les données sont lues ou chargées. Elles sont composées de colonnes ayant chacune des

propriétés (nom, type, longueur, champ clé...). Les définitions de table peuvent être créées ou importées à partir d’une structure existante.Data Elements

• Ce sont des types de données prédéfinies. Un “data element” affecté ) une colonne spécifie le type de données que cette colonne contient, ce qui permet de définir par avance les transformations opérantes pour cette colonne.

Page 13: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Administrator

• C’est une interface graphique d’administration des projets installés sur un serveur Datastage donné.

• Organisation des projets (ajout/suppression)

• Gestion de la licence

• Gestion de la sécurité (définition des rôles, catégories d’utilisateur)

• La définition des groupes et des utilisateurs du système d’exploitation sous-jacent est respectée

• Auto-purge du journal des logs des jobs du projet

• Paramétrage du Timeout de connexion des clients

• Execution de commandes UniVerse

• Paramètrage du compte à utiliser pour scheduler un job

Page 14: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Manager

• Interface graphique de création, de visualisation et de mise à jour du contenu du référentiel au travers d’une structure arborescente

• Le référentiel est unique pour un projet Datastage donné

• Toutes les méta-données sont stockées au niveau du serveur Datastage

• Un projet est multi-utilisateur

• Tous les éléments constitutifs du référentiel sont partageables par des techniques d’import/export

• L’interface Manager dispose d’un utilitaire d’Analyse d’Impact permettant de lister toutes les méta-données du référentiel utilisant une autre méta-donnée.

Page 15: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Designer

Chaque job spécifie les sources de données, les transformations éventuelles et la destination des

données

Page 16: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Designer: les “Data Element”• Il est possible d'affecter un « Data Element » à chacune des colonnes définies.• Le « Data Element » spécifie le type de données que cette colonne contient, ce qui permet de définir par

avance les transformations opérantes pour cette colonne.• Chaque « Data Element » a son spectre de Transformers qui permet de traiter et convertir ce « Data Element »

en un autre.• Une fonction de transformation possède un type «Data Element» en entrée, et un type «Data Element» en

sortie.• Les fonctions de transformation - dont les Data Elements en entrée ET en sortie correspondent aux Data

Elements en entrée ET en sortie des colonnes traitées par le Stage Transformer - se verront affichées automatiquement dans la fenêtre Dérivation du Stage Transformer.

• Un certain nombre de «Data Element» sont livrés de base avec DataStage, mais il est possible d'en définir de nouveaux. Cela permet de décrire les données avec plus de précision. Par exemple, le code produit d'une table PRODUITS peut être défini de type Number. Néanmoins, il est inconcevable de procéder à des opérations numériques sur ce code produit.

• On peut envisager de définir un nouveau « Data Element » qui pourrait s'appeler Pcode. Celui-ci conviendrait bien mieux à la nature même de l'information, et permettrait de conditionner les transformations éventuelles à procéder sur cette colonne.

• Autre exemple, lors de la construction de l'entrepôt de données, nous devons utiliser une table contenant des anciens codes produit (codés sur 3 caractères) et de nouveaux codes produit (codés sur 5 caractères).

• Nous pouvons développer une nouvelle fonction qui sera utilisable directement par les Transformers, et qui sera en charge d'adapter ces codes produits.

• Etapes à suivre :• 1- Créer un nouveau « Data Element » correspond à l'ancien code produit• 2- Créer un nouveau « Data Element » correspond au nouveau code produit• 3- Développement, intégration et utilisation de la nouvelle fonction• La liste des « Data Element » disponibles de base est visible par le Manager.

Page 17: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Designer: paramétrage des jobs• Afin de rendre bien plus souple l'utilisation des

différents Stages d'un Projet, il est possible d'en paramétrer l'exécution. Ces paramètres sont des variables inhérentes au Job. DataStage demandera à l'opérateur le contenu de ces variables à l'exécution du Job. Cela permet par exemple le lancement d'un traitement sur une année, un mois, une semaine, ou encore un jour spécifique sans que cette information temporelle soit « codée en dur » dans le Designer.

• Il existe 2 types de paramètres :• Ceux qui dépendent de l'environnement, et qui

ne sont éventuellement définis qu'une seule fois.

• Ceux qui sont à renseigner à chaque exécution Lors du déploiement d'un Job, DataStage permet à l'Administrateur de gérer très facilement ces 2 types de paramètres.

• Types de paramètre supportés par DataStage :• Chaîne• Entier• Décimal• Date• Heure• Cryptage de chaîne• Enumération de liste• Chemin d'accès (peut solliciter le browser)

• Liste des champs paramétrables :• Transformer : Key Expression de l'onglet

Référence Inputs Constraint de l'onglet• Outputs Expression de l'onglet Derivation• Sequential File : Directory de l'onglet Stage• File name de l'onglet Input ou Output• ODBC : Data source name, User name et

Password• Account name et Use directory path Table

name• WHERE clause• Derivation de l'onglet Output• Parameter de l'onglet Output si utilisation de

procédure stockée• Hashed File : Use account name, Use directory

path File name de l'onglet Input ou• Output

Page 18: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Designer: les containers

• Un Container est un groupe de stages et de liens.

• Un travail est toujours composé d'un Container (le Container supérieur), qui est affiché dans la fenêtre Diagram lorsque vous l'ouvrez.

• Si votre travail est constitué uniquement du Container supérieur, seul ce Container figure dans la fenêtre Job Details.

• Si le travail DataStage possède beaucoup de stages et de liens, il peut être plus facile de créer des Containers supplémentaires afin de décrire une séquence d'étapes spécifiques.

• Le Container est affiché dans la fenêtre Diagram comme stage de Container et il figure dans la fenêtre Job Details.

• Un travail se compose d'un nombre quelconque de Containers.

• Un Container peut contenir un nombre quelconque de stages et de liens. Au sein du projet, les Containers sont reliés à d'autres stages ou à d'autres Containers par des stages d'entrée et de sortie.

Page 19: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Designer: le debugger

• Il permet d'exécuter un Job à partir du Designer en mode Debug et de contrôler• interactivement le processus de transformation des données pendant l'exécution du Job.• Le développeur peut positionner des points d'arrêt (breakpoints) sur les liens spécifiés en cours de conception,

pour suspendre le traitement au moment où les données atteignent ces liens et ainsi visualiser les valeurs

• Mise en place des points d’arrêt: Utilisation du menu contextuel du lien, barre du Debugger• Définition des colonnes à tracer: Utilisation du bouton « Edit Breakpoints »• Exécution du job: Utilisation du bouton « Quick Watch »

Page 20: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Director

• Interface graphique d’exécution, de contrôle et de test des traitements ETL

• L’exécution peut se faire en mode immédiat, ou en différé via le scheduler

• Les limites définies pour l’exécution du job portent sur le nombre d’enregistrements lus dans la source de données et le nombre d'événements de type “warning” écrits dans le log Datastage

• Il est possible de valider un job avant de le lancer

• Il y a 3 modes de visualisation des jobs:

• Mode Log: affiche le journal détaillé d’un job donné

• Mode Schedule: Liste le détail des jobs à exécuter via le scheduler en mentionnant les options de l’exécution (date et heure, valeur des paramètres)

• Mode Status: liste les jobs en mentionnant leur statuts (compilé, non compilé, finished, aborted, etc.) les dates et heures de début d’exécution et les date et heure de dernière exécution

• Il est possible de suivre l’exécution d’un job (lien par lien) via le moniteur d’exécution.

Page 21: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Basic UniVerse

OpenSeqOuverture d’un fichier texteOpenSeq Nom_Complet_du_fichier To Nom_de_la_variable_pointeur[On Error instructions][Locked instructions][Then instructions][Else instructions]

La clause On Error permet de préciser les instructions à exécuter en cas d’erreur fatale lors de l’ouverture du fichierLa clause Locked permet de préciser les instructions à exécuter dans le cas où le fichier serait verrouillé par un autre évènement

Chaque clause If/Then/Else doit se terminer par le mot réservé End

ReadSeqInstruction de lecture d’un fichier texte ligne à ligne. L’enregistrement lu est stocké dans une variable.ReadSeq Variable_d’enregistrement_lu From Nom_de_la_variable_pointeur[On Error instructions][Then instructions][Else instructions]

La clause On Error permet de préciser les instructions à exécuter en cas d’erreur fatale lors de l’ouverture du fichier

WriteSeqInstruction d’écriture ligne à ligne dans un fichier séquentiel ouvert. ReadSeq Enregistrement_à_écrire From Nom_de_la_variable_pointeur[On Error instructions][Then instructions][Else instructions]

La clause On Error permet de préciser les instructions à exécuter en cas d’erreur fatale lors de l’ouverture du fichier

CloseSeqInstruction de fermeture et de dévérouillage d’un fichier texte ouvert. CloseSeq Nom_de_la_variable_pointeur[On Error instructions]

La clause On Error permet de préciser les instructions à exécuter en cas d’erreur fatale lors de l’ouverture du fichier

Loop...RepeatInstruction d’ouverture et de fermeture d’une boucle. Loop [Instructions] [Continue / Exit][While / Until condition Do] [instructions] [Continue / Exit]Repeat

Le bloc While condition Do instructions s’exécute tant que la condition est vraie.Le bloc Until condition Do instructions s’exécute tant que la condition est fausse.L’instruction Continue arrête l’exécution de la boucle et la réinitialise au point d’arrêt.L’instruction Exit force la sortie de la boucle.

CallInstruction d’appel d’une subroutine utilisant ou non des paramètres.

Cette instruction transfère le contrôle du traitement vers la subroutine appelée. L’instruction Return permet au programme appelant de reprendre le contrôle.

Page 22: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

Les fichiers Hash-Codés

• Les enregistrements sont stockés par groupes

• Les valeurs de clé primaire sont traitées par un algorithme de hashage

• L’algorithme indique le groupe dans lequel stocker l’enregistrement

• Le modulo (nombre de groupes) change automatiquement suivant la quantité de données à stocker dans le fichier.

• Les fichiers Hash servent à:

• Recherche de référence (lookup)

• Stockage intermédiaire

• Dédoublonnage

• Normalisation

Page 23: ETL Extract - Transform - Loadremychoquet.fr/pro/courslyon2/03-Datastage.pdf · est le projet. Par défaut, le référentiel des projets est stocké dans le dossier \Ascential\DataStage\Projects

TP 3