Index de l'article

Introduction

Quelques définitions

Quelques définitions et/ou points de vue personnels selon mes usages. Rien d'exhaustif bien sûr.

Entrepôt de données (data warehouse)

Un entrepôt de données manipule de la data en vue de la traiter en dehors des systèmes de production qu'il agrège. Il s'appuie lui-même sur une base de données, mais séparée des vraies bases.

Un entrepôt n'est pas une sauvegarde (même s'il peut être utilisé en tant que telle), ni une archive (même s'il peut être à l'œuvre dans un système d'archivage).

Le fonctionnement en entrepôt correspond davantage à une démarche plutôt qu'à un outil. L'entrepôt ne peut pas être défini par l'usage de tels ou tels SGBD ou ETL. Les process préalables apparaissant parfois progressivement et naturellement dans les systèmes (au gré des besoins récurrents). Un entrepôt de donnée est finalement une méthodesouvent mise en place pour répondre à un besoin récurrent de traitement de données sans toucher aux données originales.

Dans la pratique, un entrepôt sera une autre base de données, stockée classiquement avec votre SGBD préféré, mais rarement avec des finalités de production (du moins pas pour les utilisateurs lambdas des systèmes agrégés. Du moins... mieux vaut ne pas rentrer dans le détail pour appréhender les entrepôts de données, c'est inutile pour commencer. Mais gardez en tête que dans la pratique, les entrepôts font parfois effectivement communiquer des bases étant toutes en production. En cas de big data par exemple, ou de systèmes de stockage de données trop  différents, ou provenant d'outils trop différents, bref...).

La grande finalité de la méthode est sans doute de permettre l'amélioration de l'intégrité d'usage des données (statistiques, exports, exploitations tiers...) sans peser sur les systèmes en production (avec des requêtes trop lourdes...) ni corrompre l'intégrité système (la structure des tables...) ou l'intégrité client (les données saisies).

ETL (Extract Transform Load)

Les logiciels ETL vont extraire, transformer puis charger des données. Ils sont très bien adaptés aux sources de données diverses que peuvent produire les outils informatiques. Un ETL ne contient pas de données en soi, mais plutôt des connexions aux sources de données, et du code de traitement.

Les ETL sont capables de gérer des entrepôts, mais ne sont pas indispensables à cette fin. Ils nous facilitent toutefois grandement le travail, contribuent à standardiser et à centraliser les process.

Il existe des ETL spatiaux (FME par exemple), ou encore un composant spatial pour Talend, et dont on imagine les multiples applications : agrégation de données spatiales issues de sources diverses, comparaison d'entités spatiales à la voléee, génération de petits fichiers pour des applications en fin de chaîne... Cela avant insertion en BDD ou dépôt en FTP via les fonctionnalités classiques de l'ETL.

Métadonnée

Dans Talend, une métadonnée est un accès à une source de données (BDD Mysql, Oracle, Postgres, accès FTP, fichier local, distant...). L'équivalent des Connecteurs ou Readers sur d'autres ETL.

Cet usage du terme métadonnée dans Talend s'explique facilement : on décrit la source de données au logiciel (type, host, login, password, schémas utilisés...), ce qui permet au logiciel de l'utiliser en tant que source de données.

Job

Dans Talend, un job est typiquement un process d'extraction -> transformation -> dépôt de données (une tâche).

Vous le créez, le paramétrez puis une fois mis en place il est exécutable via un simple bouton. Un job peut exécuter de nombreuses opérations à la suite.

Schéma

Dans Talend, un schéma est la définition d'un seul objet de bases de données (une table ou une vue en général). À la création d'une métadonnée, des schémas sont pré-générés, mais doivent être contrôlés.

Quand la structure des tables impliquées dans un job est modifiée dans les bases de production, les schémas doivent souvent être re-générés/contrôlés dans Talend. Souvent le logiciel le détectera dès l'ouverture, et vous proposera de le faire en cascade (partout où les schémas impliqués sont utilisés par vos jobs).

Datamart

Un sous-ensemble d'un entrepôt de données. Personnalisé pour correspondre à un usage particulier par exemple.

Datalake

Un sur-ensemble d'entrepôts de données. Dans certains contextes collaboratifs ou partagés par exemple.

Quelques exemples d'utilisation

  • Déplacer régulièrement des données issues de sources hétérogènes. Des fichiers Excel, CSV, shapes...
  • Agréger régulièrement des sources de données hétérogènes dans un entrepôt.
  • Créer régulièrement et à la volée de petits fichiers, destinés à des applications tiers.
  • Alimenter régulièrement une grosse base, liée à une/des application(s) tiers.
  • ...

Notez la récurrence du mot régulièrement. En effet quand un tel besoin est ponctuel, un ETL n'est pas forcément le moyen le plus simple d'arriver à ses fins.

Bien souvent quand l'un de ces besoins se manifeste, il ira de pair avec de besoins de transformation des données. Exemples :

  • Dédoublonner des données issues de sources hétérogènes, à des fins statistiques ou d'exploitations tiers...
  • Concaténer des champs, segmenter des champs, agréger des tables... à des fins d'exploitations tiers.
  • ...
Liens ou pièces jointes
Télécharger ce fichier (address.sql)address.sql[Table address]3833 Ko
Télécharger ce fichier (countries.sql)Countries[Table SQL des pays du monde]21 Ko
Télécharger ce fichier (Cours-Talend-Eric-Quinton-2015-CC.pdf)Présentation de Talend Open Studio[PDF du cours d'Éric Quinton (IRSTEA), diffusé en 2015 grâce au réseau RBDD (CNRS) - Licence CC]789 Ko
Télécharger ce fichier (customer.sql)customer.sql[Fichier d'import SQL d'une base de contacts humains]75 Ko
Télécharger ce fichier (mes_adresses.txt)mes_adresses.txt[Table mes_adresses]0.2 Ko
Télécharger ce fichier (mes_clients.txt)mes_clients.txt[Table mes_clients]0.2 Ko
Télécharger ce fichier (mes_personnes.txt)mes_personnes.txt[Table mes_personnes]0.2 Ko
Télécharger ce fichier (person.sql)person.sql[Table person]3050 Ko
Télécharger ce fichier (society_coords.sql)society_coords.sql[Table society_coords]4 Ko
Télécharger ce fichier (warehouse_customer.sql)warehouse_customer.sql[Fichier d'import SQL d'une base entrepôt vide]1 Ko