Académique Documents
Professionnel Documents
Culture Documents
Warehousing
par Jennifer WIDOM
Cet article a été écrit en Novembre 1995 par Jennifer Widom du département
informatique de l'université de Stanford. L'auteur développe les aspects de
migration de données des sources disponibles et d'intégration de ces
données au sein du datawarehouse. Tout d'abord, elle présente les
fondements de l'architecture d'un système fournissant ces fonctionnalités.
Puis, elle présente les possibilités de recherche pour résoudre les problèmes
d'architecture permettant plus de souplesse, plus de puissance et plus
d'efficacité.
• A partir des requêtes, identifier les sources fournissant les informations demandées et les
interroger.
• Obtenir le résultat, effectuer les traductions, les filtrages et les assemblages des données
pour les fournir aux demandeurs.
• Toutes les informations désirées sont extraites des sources à l'avance, traduites, filtrées de
manière appropriée, agrégées et stockées dans un dépôt centrale.
• La requête soumise est estimée par le dépôt sans accès aux sources originales. Dans cette
approche, les informations sont immédiatement accessibles, avec des performances
intéressantes, pour des requêtes et des analyses spécifiques à certains utilisateurs ou
applications, sur des données historiques par exemple.
Des hypothèses sont émises en général pour les systèmes actuels. On suppose que
l'entrepôt et les sources sont implémentés suivant un modèle unique (relationnel en
général), que les procédures de mise à jour du datawarehouse sont faites en différés et que
les requêtes de l'intégrateur vers les sources ne sont pas nécessaires.
Sujets de recherche
En se basant sur l'architecture définie précédemment, l'auteur expose 5 thèmes de
recherches pour améliorer les résultats de cette architecture. Notons, dès maintenant, une
notion permettant de mieux comprendre les développements suivants. Au niveau abstrait,
le datawarehouse peut être considéré comme un entrepôt de collections de vues
matérialisées.
Le module préparateur/contrôleur
Afin de bien comprendre l'importance d'un tel module, il faut s'intéresser aux sources de
données.
L'auteur les caractérise en 4 catégories :
o les sources coopératives qui possèdent toutes les fonctionnalités des bases de
données actives (triggers) et permettent d'obtenir les changements pertinents
automatiquement.
o les sources traçables qui créent des enregistrements pouvant être consultés afin de
repérer les changements
o les sources interrogeables qui permettent au préparateur/contrôleur, par sondages
périodiques, d'interroger leurs informations afin de repérer les changements. Les
performances sont fonction de la pertinence désirée des données et de la fréquence
des sondages. Si la fréquence est trop élevée, les performances en pâtissent. Si elle
trop faible, certains changements ne seront pas pris en compte.
o les sources statiques qui n'ont aucunes des fonctionnalités précédentes et dont les
informations sont fournies "statiquement". Cela implique que les changements sont
repérés par comparaisons de versions. On peut donc se douter de la difficulté d'une
telle opération pour des masses importantes de données et surtout sur le fait qu'il
faut repérer les changements pertinents à répercuter.
Quel que soit le type de source de données, l'aspect de traduction du préparateur reste
indispensable. Il faut donc développer des représentations appropriées des changements
de données surtout si le modèle n'est pas relationnel.
Une autre solution pourrait être d'ignorer les changements et d'envoyer toutes les données
périodiquement. Dans ce cas, l'intégrateur doit combiner ces données avec les données du
datawarehouse ou réintégrer dans le datawarehouse toutes les données de la source. Cette
approche est envisageable lorsqu'il est possible de mettre hors service le datawarehouse.
Cependant, le but visé étant l'efficacité, un accès continu aux données, il est préférable de
repérer, d'envoyer de conserver les changements.
Donc, le préparateur/contrôleur dépend de la source à traiter. Il est préférable ne pas le
rendre statique. Une des attentes des concepteurs est de pouvoir développer des
techniques et des outils qui automatisent la création de tels composants.
l'intégrateur
o Les vues du datawarehouse sont plus complexes que dans un système classique et
notamment, il pose les problèmes des données historiques. On peut donc
s'intéresser à l'inclusion de bases de données temporelles et sur les moyens de
contrôler les informations historiques.
o Les datawarehouse contiennent des données très agrégées et synthétisées qui
peuvent être décrite par un langage de vue classique bien que cela soit souvent
difficile. La maintenance efficace de ces informations pose donc un problème
ouvert. Une alternative pourrait être d'utiliser un langage de description adapté.
o La mise à jour des données dans les sources se font indépendamment du système où
les vues sont stockées. Généralement, ces sources ne sont pas adaptées pour
résoudre ce problème, la maintenance des vues étant souvent liée intimement au
système sur lequel repose ces sources. Les types de sources vus précédemment
nous démontrent la réalité du problème. Les sources ne participe pas à la
maintenance des vues mais ne font qu'en rapporter les changements ou encore
certaines sources ne fournissent pas de verrous et pas de transactions globales pour
faciliter la tâche de l'intégrateur. Cela implique que des anomalies surviennent lors
de la maintenance des vues et posent des problèmes de consistance. Il faudrait donc
déterminer des algorithmes de mise à jour plus complexes que ceux disponibles à
ce jour.
o La modification des vues à chaque mise à jour d'une information n'est pas
nécessaire donc les grandes mises à jour classiques en différé ne sont pas la
solution. Il faut proposer quelque chose de plus efficace.
o Il peut être nécessaire de modifier les sources de données avant leur intégration.
Ces transformations peuvent comprendre l'agrégation ou la synthèse des données
afin de réduire la taille du datawarehouse. Il peut être aussi souhaitable de corriger
ou de supprimer des données, de créer des valeurs par défaut ou d'éliminer les
doublons et les inconsistances.
Donc, au lieu de baser les intégrateurs sur le modèle de données du datawarehouse, il faut
envisager un intégrateur particulier à chaque datawarehouse tant qu'il faudra considérer
des vues différentes sur des sources différentes. Comme pour le préparateur/contrôleur, il
ne faut pas que l'intégrateur soit statique mais il faudrait plutôt fournir des outils et
technique pour les générer automatiquement.
Spécification du datawarehouse
En partant de l'analogie faite au début du chapitre, dans un contexte idéal, on peut
considérer la maintenance du datawarehouse comme la maintenance de vues
matérialisées. Les tâches de mise à jour sont faites par l'intégrateur et les changements
sont repérés automatiquement par le préparateur. Classiquement, la maintenance des vues
est effectuée par des algorithmes automatiques ou semi-automatique générés par des
règles comme pour les bases de données actives. Chaque vue est associée à un trigger qui
se déclenche lors des mises à jour. Une approche similaire peut être envisagée pour les
datawarehouse lorsque l'intégrateur possède de telles fonctions. Cependant, les règles
appropriées doivent être attachée à des fonctions bien plus complexes comme la
récupération et le nettoyage d'informations complémentaires souvent sur des systèmes
distants. De telles fonctions peuvent être automatiquement. Il faudrait, pour simplifier
cette tâche, déterminer un langage de spécification, possédant des règles, des interfaces de
préparateur/contrôle, des algorithmes appropriés permettant de générer l'intégrateur et un
mécanisme automatique de détection de changement.
Optimisations
Les optimisations peuvent être considérée sur 3 thèmes différents.
Par analogie avec la maintenance de vue et en considérant le cas relationnel, toutes les
modifications participant aux vues du datawarehouse devraient se propager. Il serait donc
appréciable de pouvoir déterminer les modifications laissant les vues inchangées, mais
aussi d'établir des techniques permettant de vérifier les contraintes d'intégrité sur une
source distante lors des modifications. Tout ceci afin de choisir le filtrage des sources à la
propagation totale vers l'intégrateur.
L'intégrateur peut avoir besoin de récupérer des données supplémentaires auprès d'une
source lorsqu'il reçoit une notification de changement. Soumettre les requêtes lourdes
directement aux sources peut occasionner des délais de traitement long. Cela peut aussi
générer des anomalies d'intégration ou des problèmes de sécurité pour les sources. Afin de
garder la consistance, il faut éviter d'interroger directement les sources de données. D'où
l'idée d'une vue "automaintenable" n'ayant pas besoin de requêtes supplémentaires pour
gérer la maintenance. Pour cela, il faut stocker les données supplémentaires dans le
datawarehouse. Pour que cela soit acceptable, il faut le nombre minimum d'informations
supplémentaires afin d'assurer l'automaintenabilité d'une vue. Avec cela, il faut déterminer
le moyen de mesurer le coût de maintenance de données supplémentaire par rapport au
coût des requêtes directes aux sources.
Si l'on peut générer des "sous vues" partagées permettant d'obtenir toutes les vues du
datawarehouse, on peut réduire les coûts de stockage et réduire l'effort fourni pour les
modifications. Cependant, il faut opposer à cela la lenteur de la réponse des requêtes du
fait d'une génération dynamique de vues. Il faut donc trouver le moyen de déterminer la
solution idéale en fonction du contexte.
Conclusion
Dans cet article, l'auteur réalise un exposé clair et complet sur la problématique posée par
la migration et l'intégration des données. Cependant, elle n'évoque pas des problèmes
caractéristiques aux gestionnaires de bases de données comme les problèmes de reprise
sur panne :
Qui doit effectuer les reprises nécessaires lorsque la migration des données est
interrompue ?
L'intégrateur ou le préparateur/contrôleur directement en prise avec l'information ?
Un autre type de problème en marge de ceux évoqués dans l'article est l'aspect hardware
sur lequel réside tout le système datawarehouse et notamment la communication des
systèmes d'exploitation pour la conception du préparateur/contrôleur.
Comment intégrer des données provenant de système Macintosh ou windows pour un
datawarehouse sur UNIX par exemple ?
Bien sur, il existe des passerelles logiques pour palier à ces problèmes.
Dans ce cas, où doit résider le préparateur/contrôleur ?
Plus généralement, est ce que l'environnement du système du datawarehouse n'influence
pas les décisions quant aux choix des outils de migrations ?
Depuis la parution de cet article, l'évolution de cette discipline montre que dans le but
d'intégrer des sources multiples, hétérogènes, distribuées, le datawarehouse est une
approche viable et souvent supérieure aux solutions classiques. Pour finir quelques
chiffres. Les effets de l'acquisition d'un tel système dans une entreprise sont en général
très sensible. En moyenne, on peut estimer un retour sur investissement médian de 167%
sur une période de 1,67 ans (étude IDC96). Les problèmes évoqués par l'auteur restent
toujours d'actualité et intéresserons, je pense, aussi bien les sociétés spécialisées que le
monde de la recherche.