jeudi, octobre 10, 2013

La BI self service

A venir

lundi, janvier 07, 2013

Quel background pour un rôle ETL ?

Que vous vouliez devenir architecte, développeur, ou tout autre rôle ETL, un bon background technique est un atout très considérable. 
Lorsque vous travaillez avec un ETL , certes il vous permet de réaliser rapidement des tâches autrefois trop complexe. Il vous permet de gagner beaucoup de temps de développement et de tests. Il vous aide aussi, en utilisant ses différents assistants, de réaliser des fonctionnalités bien spécifiques au domaine de l intégration de données. Par contre il est très important de bien cerner les concepts tels de base ou encore avancés afin de pouvoir optimiser les traitements, maintenir les programmes, expliquer les réactions du système.
Il ne suffit pas de savoir comment réaliser des jobs, des traitements... cela prend plus que la connaissance d une technologie... C'est tout un métier.
Ceci dit, ce n'est pas vous décourager, au contraire c'est pour vous permettre de bien apprécier votre job, et découvrir combien c'est valorisant pour soit qu'on met en place un système ETL qui fonctionne à merveille, surtout que toute la brique de restitution en dépend totalement pour afficher des indicateurs corrects.
Ce qui est malheureux dans ce métier, c'est que la reconnaissance n'est pas toujours au rendez-vous. Les beaux tableaux de bord sont mieux appréciés que tout le travail d'ETL en amont peu importe sa robustesse et sa qualité.
La je reviens à l'analogie faite par ralph kimball en comparant l'ETL à une cuisine. En terme de tâches réalisées, l'analogie me semble correcte, par contre en terme de reconnaissance cette analogie ne tient plus. Quand on mange un bon plat, on pense automatiquement au cuisinier, par contre lorsqu'on consomme un bon rapport ( un utilisateur de rapport est souvent appelé consumer) on ne pense jamais à l'équipe ETL derrière.
Bon, revenons à notre sujet de départ, oui cela prend des compétences spécifiques pour jouer un rôle dans l'équipe ETL, j'en présente quelques unes qui ont une grande importance :
- la maîtrise de sql.
- la maîtrise des concepts ETL ( ce blog contient plusieurs de ces concepts).
- la maîtrise des concepts de la modélisation dimennsionnelle ( j'ai déjà commencé à mettre des articles concernant la mdd).

Je vais essayer de vous expliquer chacune de ces compétences dans les articles futures.

Bon courage.

samedi, janvier 05, 2013

Surrogate Key (Clé de substitution)

Le modèle dimensionnel est la cible ultime de tout système ETL. Justement il permet d'alimenter les tables de faits et de dimensions. 

Tout système ETL doit donc permettre de gérer un minimum de spécificités du modèle dimensionnel. Référez-vous au 38 sous-systèmes d'un système ETL dans l'article suivant :
Les 38 sous-systèmes d'un système ETL

Parmi les sous-systèmes d'un ETL on retrouve le sous-système 9 intitulé Système de gestion des clés de substitution (surrogate key).

Revenons maintenant aux définitions, et essayons de comprendre qu'est ce qu'une clé de substitution (Surrogate Key) :



 La Définition

Une clé de substitution (Surrogate key) est une clé non intelligente utilisée afin de substituer la clé naturelle (Business Key) qui provient des systèmes opérationnels. La clé naturelle est en général composée de plusieurs colonnes.
La clé de substitution ne doit pas être confondue avec la clé artificielle attribuée par les systèmes opérationnels. Du fait qu’il est parfois (voire même souvent) impossible de trouver une clé naturelle pour les entités telles que client, employé, alors on crée une clé artificielle dans le système opérationnel afin d’identifier d’une façon unique un élément de l’entité: client_id pour l’entité client, et emp_id pour l’entité employé. Ces clés artificielles ne doivent pas changer dans le temps pour un client par exemple !
La clé de substitution est alors utilisée dans un entrepôt de données pour remplacer et compléter la clé artificielle du système opérationnel afin de rendre un élément unique dans la dimension.

A quoi sert une clé de substitution ?

Remplacer la clé artificielle ou naturelle : Effectivement une clé de substitution remplace la clé artificielle en terme d’utilisation, ce n’est plus la clé naturelle qui sera utilisé pour faire les jointures avec les tables de faits ou les autres tables de dimension (niveaux hiérarchiques dans le cas d’une dimension en flocons de neiges);

Compléter l’information : La clé de substitution n’a aucun sens en terme d’affaire, elle est utilisée dans l’entrepôt de données seulement ! et on aura toujours besoin de la clé artificielle ou naturelle dans la dimension pour pouvoir faire la correspondance entre l’élément de dimension (un client par exemple) dans l’entrepôt de données et l’élément de la table des clients dans le système opérationnel.

Les avantages 

Performance : Accélère l’accès aux données du moment ou l’on va utiliser un index numérique vu que le type de données de la clé de substitution est numérique.
Indépendance du système source : On ne peut garantir que la clé d’affaire ne change pas dans les systèmes sources.
Historique des changements et granularité infinie : Si l’on désire garder l’historique des changements de la dimension selon certains critères (SCD) nous devons gérer la clé de substitution. Nous nous retrouverons facilement avec plusieurs enregistrements de la même clé d’affaire dans la dimension.


ETL vs ELT

Que ce soit ETL ou ELT il s’agit d’extraire, transformer et Charger les données. L’extraction consiste à extraire les données à partir de sources homogènes, la transformation s’occupe de nettoyer, conformer, standardiser, documenter, corriger, dé dupliquer… les données, et le chargement consiste en l’alimentation de l’entrepôt de données.

La différence entre les deux approches ETL et ELT est plus qu’une simple permutation de l’ordre des lettres, il s’agit plutôt d’un changement important dans les méthodes d’alimentation des entrepôts de données.

Qu'est ce que l'ETL ?

Il s’agit de l’approche dite traditionnelle pour alimenter un entrepôt de données. Les outils qui s’inscrivent dans cette logique disposent en général d’un moteur (engine) et sont installés sur des serveurs distincts. Tous les traitements de transformation se font par le biais du moteur ETL. On peut citer par exemple Informatica, IBM DataStage, SAP BODI...C’est l’approche la plus étendue actuellement.


Qu'est ce que l'ELT ?

L’approche d’ELT (Extraction, Loading, Transformation), génère du code SQL natif pour chaque moteur de base de données impliqué dans les processus - sources et cibles. Cette approche profite des fonctionnalités de chaque base de données, et les requêtes de transformation doivent respecter la syntaxe spécifique à l’SGBD. C’est l’approche de Genio (OpenText) et de sunopsis (Actuellement Oracle Data Integrator).







Et si l'on mixait les deux approches ?


Effectivement Business Object avec la suite Data integrator offre les avantages des deux approches

ETL Quadrant Magic 2012

Selon le dernier Quadrant Magic ETL, version Octobre 2012, réalisé par Gartner et améliorée par toolbox.com, en mettant en évidence la comparaison entre 2011(point orange) et 2012 (point rouge), Informatica et IBM  maintiennent une avance considérable dans le domaine. Informatica reste le leader à la fois concernant 'The Ability to execute"  et "The Completeness" . SAP, Oracle et SAS se retrouvent dans la zone peu juste à l'intérieur du quadrant des leaders. Microsoft traîne toujours sur le volet de sa vision à long terme et semble coincée dans le monde windows et SQL Server.
Comparaison faite, Informatica baisse d'un petit cran,  IBM, SAP, SAS se sont un peu améliorées, Très minime, à peine observable, amélioration pour Oracle, Talend et Microsoft.  Talend a connu probablement la pire chute de l'année.



Bonne analyse.