processus ETL pour charger la dimension temporelle. Exemple d'utilisation de l'ETL Talend.

Après avoir identifié l'origine des données, nous pouvons procéder à la construction des tableaux de physique de notre modèle et le développement de la farce. Commencez le processus avec la dimension temporelle. Comme indiqué, cette dimension ne dépend pas de notre ERP ou d'autres systèmes externes, mais la construire à partir du calendrier. Générer toutes les pièces nécessaires pour ce tableau pour une période de 20 ans, qui se déroule du 1 Janvier 2000 (pour les données historiques antérieures charge également dans notre DW) jusqu'au 31 Décembre 2020.

La définition physique de la table n'a pas changé après l'analyse des sources de données, et se présente comme suit:

Tableau de dimensions physiques du design dans MySql

Le processus sera mis en œuvre à l'aide de Talend suivra (comme nous l'avons vu dans un précédent billet):


Transformations de créer dimension de temps

Nous allons utiliser Talend pour option de génération en Java (on peut aussi utiliser le langage Perl.)Utilisation de Java signifie que tous les processus et les transformations qui définissent ce sera «traduire» le langage Java en interne. Bien que n'étant pas strictement nécessaire de connaître le langage Java pour travailler avec Talend, sachant leur facilitera grandement le travail avec l'outil et nous permettra de définir notre propre code de traitement ou des procédés qui ne sont pas inclus en standard.

Talend est basé sur l'environnement de développement Eclipse. Il est un environnement graphique avec des fonctionnalités riches, où la définition des transformations sont effectuées dans un menu très intuitif, cliquer et faire glisser les composants et l'établissement de relations entre eux.Comprend l'environnement de débogage pour analyser les processus et leurs erreurs ainsi que la possibilité de traces de contrôler les processus lorsque nous avons développé et validé.

L'image suivante est un exemple d'un emploi créé avec Talend:


l'environnement graphique de Talend outil

Les composantes les plus importantes dans l'environnement graphique sont:


Objets Talend Repository

Dépôt: inclut tous les objets qui peuvent être définis à l'aide de Talend, tombant d'un arbre comme suit:

  • Business Models: Talend dispose d'un outil graphique simple où nous définissons nos modèles d'affaires.Dans ce dossier de localiser les différents business models qui ont "tiré" à l'aide de Talend. L'outil contient les éléments les plus courants graphiques.
  • Job Designs, un projet de transformation ou d'intégration de données se compose de plusieurs processus ou des emplois qui peuvent être définis et classés dans une structure de dossiers pour organiser et classer eux.Dans cette section, nous examinons les différents emplois que nous avons définies et la façon dont nous les avons classées.
  • Contextes: les contextes d'exécution sont des processus. Ils peuvent définir des constantes ou des paramètres qui nous est demandé de lancer un processus et nous pouvons utiliser les divers composants d'un emploi. Contextes peuvent également être chargées à l'exécution de fichiers.
  • Routines: l'endroit où nous pouvons voir les routines développées par Talend code (qui peut ensuite être utilisé dans les transformations) et où nous pouvons ajouter nos propres routines pour effectuer des opérations ou des calculs ou des transformations dont nous n'avons pas de méthode standard.Les routines sont programmées en Java (ou Perl si vous avez choisi cette langue).
  • Modèle SQL: SQL sont des modèles prédéfinis que nous pouvons utiliser ou personnaliser.
  • Métadonnées: l'endroit où nous allons définir les métadonnées du projet. Ces définitions des composants que nous allons ensuite être réutilisés dans tous les processus de conception du changement. Par exemple, les métadonnées peuvent définir les connexions aux bases de données, de récupérer le schéma d'une base de données et les ont documenté (avec des tables, vues, etc), des instructions SQL définir, identifier des modèles de différents types de fichiers, etc Cela nous permet de les éléments définis dans un seul endroit et de les réutiliser tout au long du processus.Le référentiel de métadonnées centralise toutes les informations sur le projet et assure la cohérence dans tous les processus d'intégration. Les métadonnées associées à la source et la destination des systèmes de processus d'intégration est facilement chargé dans le référentiel de métadonnées grâce à des outils avancés d'analyse des bases de données ou fichiers fournis par différents participants. Les caractéristiques définies dans les métadonnées sont héritées par les processus qui les utilisent.
  • Documentation: nous pouvons charger les fichiers du projet de documentation de notre analyse et le développement, en les classant dans des dossiers. Lier peut être fait avec un lien ou le chargement du fichier directement dans le référentiel. Cet utilitaire permet de centraliser en un seul endroit tous les éléments d'un projet d'intégration de données.
  • Corbeille: supprimer des objets qui vont à la Corbeille et le ramener là-bas si nécessaire.

Job Designer: est un outil à partir duquel de manipuler les différents éléments qui composent un emploi, l'établissement de relations entre les différents éléments.

pg "/>

Job Designer

Lorsque vous travaillez avec un emploi, au fond d'un ensemble d'onglets à partir desquels nous pouvons effectuer diverses actions, telles que la fixation d'un cadre pour le travail, la définition des propriétés, exécuter le travail et définir le mode de performance, de modifier les propriétés composants d'emplois, la planification de tâches, établir des hiérarchies dans les emplois, etc.

Enfin, sur le côté droit de la demande, nous avons la palette de composants, qui sont différents Talend fournit des commandes pour une utilisation dans nos emplois.Elles sont classées par fonction.


Composant Palette

Certains des composants disponibles dans Talend sont les suivants:

- Business Intelligence: Un groupe de connecteurs qui répondent aux besoins de lecture ou d'écriture dans les bases de données multidimensionnelles OLAP ou, départs aux rapports Jasper, base de données de gestion du changement pour changer lentement dimensions, etc (tous liés à la Business Intelligence .)

- Entreprises: connecteurs pour la lecture et l'écriture de type systèmes de CRM (Centric, Microsoft CRM, Salesforce, Sugar, Vtiger) ou à lire et à écrire à partir de systèmes SAP.Ils permettent aussi de travailler avec le système Alfresco de gestion de documents.

- Custom Code: éléments pour définir notre propre code personnalisé et l'utiliser avec d'autres composants intégrés dans Talend. Nous pouvons écrire des composants en Java et Perl, ainsi que les bibliothèques de charge ou de personnaliser les commandes de Groovy.

- Qualité des données: les composants pour la qualité de la gestion des données, telles que le filtrage, calculs CRC, les recherches de la logique floue, les valeurs de remplacement, la validation du schéma de métadonnées contre, nettoyer les doublons, etc

-

- ELT: composants pour travailler avec des bases de données en mode ELT (avec les changements et les processus typiques de ces systèmes.)

- Dossier: les contrôles de gestion de fichier (existence de vérification, de copier, supprimer, répertorier, de la propriété), de lire des fichiers de différents formats (texte, excel, délimités, XML, email, etc) et d'écrire sur eux.

- Internet: composants pour l'accès contEnid stockés en ligne que les services Web, flux RSS, SCP, maman, Courrier électronique, serveurs FTP, etc.

- Logs & Errors: contrôles de gestion et enregistre les erreurs dans la définition des processus.

- Divers: divers éléments tels que des messages Windows, la vérification du fonctionnement des serveurs, les dossiers de production, gestion de la portée variable, etc

- Orchestration: éléments pour générer les chaînes et les tâches d'orchestration et de traitement des travaux et sous-jobs définis dans nos transformations (boucles de production, l'exécution de travaux ou après pré, les processus d'attente pour les fichiers ou de données, etc).

- Traitement: les composants de traitement de données courants, comme l'agrégation, la cartographie, transformations, filtres, la dénormalisation, etc

- Système: composants pour l'interaction avec le système d'exploitation (exécution des commandes, des variables d'environnement, etc).

- XML: composants pour travailler avec des structures de données XML, les opérations de l'analyse, la validation ou la création de structures.

Pour avoir une idée de comment travailler avec Talend, il est intéressant de voir une démo de 5 minutes de Talend web (accessible à partir de ce lien ).Également vous pouvez voir la vidéo de démonstration ci-après comment générer des données d'essai dans une table MySQL.

En outre, d'approfondir Vous pouvez télécharger le manuel d'utilisation de l'outil et Composants Guide de référence (en anglais) à ce lien .

Emploi Talend à remplir la dimension Time

Maintenant que nous savons que c'est un peu Talend, nous verrons plus loin un exemple concret.Nous avons besoin de générer un flux de dates à compter du 01.01.2000, 31.12.2020 vient à la journée (avec les dates qui transportent 20 ans dans la dimension).

Pour rendre le processus nous allons définir les étapes suivantes:

1) qui tourne en boucle 10.000 fois, avec un compteur va de 0 à 9999 (en utilisant le composant tLoop groupe Orchestration).

2) La boucle appelle le générateur de contrôle des dossiers, ce qui génère un journal avec la date 01/01/2000 (en utilisant le groupe tRowGenerator composante DIVERS).

3) la date RowGenerator passe un traitement (MAP), qui ajoute à la fois que le compteur de l'étape 1 (avec ce que nous sommes plus en plus la date de départ tous les jours et toutes les dates de production nécessaires.)Nous utilisons le composant TMAP Processing Group.

4) les dates, nous avons généré un autre traitement (MAP), où, pour chaque jour, nous produisons tous les attributs de la dimension du temps que la table de transformation que nous avons indiqué précédemment (mois, année, jour, jour de la semaine, trimestre, semestre, etc.) Nous utilisons le composant TMAP Processing Group.

Nous avons dû définir une routine en java pour générer bon nombre de semaines dans l'année de chaque jour et pour générer des données des trimestres, semestres, vacances et week-end.Par exemple, pour la génération des semaines, nous avons écrit le code Java suivant:

/ / Modèle de routine Java 
routines de colis; 
java.util.Calendar d'importation; 
l'importation java.util.Date; 
{Public class dates 
public String semana_del_anyo statique (Date date1) { 
Calendrier c1 = Calendar.getInstance (); 
c1.set (Calendar.DAY_OF_WEEK, Calendar.MONDAY) 
c1.setMinimalDaysInFirstWeek (1); 
c1.setTime (date1); 
semaine int = c1.get (Calendar.WEEK_OF_YEAR) 
if (semaine <10) { 
retour (0 + Integer.toString (semaine)); 
Else {} 
retour (Integer.toString (semaine)); 
}} 

5) Nous filtre pour éliminer les enregistrements qui sont âgés de plus de 31.12.2020, en tant que tels nous voulons charge sur la base de données.Nous utilisons le composant tFilterRow Processing Group.

6) Insérer les enregistrements de la base de données dans le tableau Enobia DWD_TIEMPO, en utilisant le composant tMySqlOutput, Groupe Bases de données, MySql. Si les dossiers existent déjà dans la base de données sont mises à jour.

Le plan complet de Job serait:


Job remplissage dimension de temps

Ce fut notre premier contact avec un outil ETL.Sans programmation (ou presque, parce que nous avions à préparer une routine en java pour le traitement de semaines et d'autres attributs de la date), nous avons rempli avec des donnéess réels de la première table / dimension de notre modèle.