Vers l'échantillonnage d'un entrepôt de données Raphaël Féraud et Fabrice Clérot
Relever le défi de la volumétrie Une tendance lourde depuis la fin du siècle dernier est l'augmentation exponentielle des volumes de données stockés. La capacité à transformer les données en information n'évolue pas aussi vite que les volumes stockés : Le processus d'analyse des données nécessite une intervention humaine. Le traitement des données utilise souvent des algorithmes de complexité supérieur à o(n) : Pour un algorithme de complexité o(n²), le doublement de la puissance de calcul ne permet d'augmenter que de racine de 2 les capacités de traitements. EDA/2007/Raphaël Féraud
Le système d'information décisionnel Traitements d ’interface E/S Traitements d'alimentation Rapports prédéfinis – OLAP - Requêtes ad hoc – Data mining Entrepôt de données : données de détails sur tous les métiers de l'entreprise. Datamarts : données agrégées et préparées pour un métier particulier. Facturation Ventes Logs Contact Enquêtes Catalogue … EDA/2007/Raphaël Féraud
Limitations La volumétrie très importante de l'entrepôt conduit à administrer fortement les requêtes ad hoc, voire à les prohiber. L'utilisation de datamarts spécialisés permet de limiter les effets de la volumétrie au prix d'une spécification a priori de l'espace des requêtes. Dans un contexte très évolutif comme celui des nouvelles technologies, cette architecture montre ses limites : les datamarts doivent être constamment actualisés. L'information contenue dans l'entrepôt est sous exploitée. EDA/2007/Raphaël Féraud
Une autre approche est-elle envisageable ? Question : quel est le nombre moyen d'emails reçus en mars 2007 par les clients Orange ? Réponse : 18,3456 A-t-on réellement besoin d'une telle précision ? Pour les requêtes ad hoc ou pour le calcul d'indicateurs de suivi de l'activité, la réponse est clairement non. Il est possible d'échanger de la précision sur le calcul contre du coût de traitement. EDA/2007/Raphaël Féraud
L'approche synopsis L'approche synopsis permet de gérer séparément les requêtes approximées. EDA/2007/Raphaël Féraud 9
Échantillonnage d'une équijointure Soit R1 et R2, deux tables reliée par une clé n'étant pas la clé primaire d'aucune des tables, J l'équijointure de R1 et R2 et l un taux d'échantillonnage, et Sl l'opérateur d'échantillonnage. La solution triviale consiste à calculer l'équijointure, puis à échantillonner : Le résultat est optimal, mais le temps de traitements est élevé. La solution naïve consiste à échantillonner chacune des tables pour de les joindre : Le temps de calcul est minimal, mais qu'en est-t-il de la qualité de l'échantillon ? Parler du problème de permutation des opérateur JOIN et SAMPLE ? EDA/2007/Raphaël Féraud
Difficulté de l'échantillonnage d'une équijointure EDA/2007/Raphaël Féraud 22
Comment améliorer la méthode triviale ? La solution triviale est lente car elle nécessite de joindre les tables, ce qui demande un accès aléatoire dont le coût est prohibitif lorsque les tables ne tiennent plus en mémoire. Une amélioration importante de la solution triviale consiste à : indexer les n-uplets des tables à joindre suivant a, la clé de jointure, et non plus suivant la clé des tables, calculer les fréquences de la clé de jointure dans la jointure, tirer les n-uplets suivant les fréquences de la clé de jointure. On passe ainsi d'une complexité de o(n log n) à o(k log n), où n est la taille de la plus grande table à joindre et k la fréquence de la clé de jointure, avec k < n. Que faire lorsque l'index sur k ne tient plus en mémoire ? EDA/2007/Raphaël Féraud
Echantillonnage par hachage Avec une fonction de hachage bien choisie, nous pouvons borner la ressource mémoire utilisée pour indexer suivant la clé de jointure : h(x) = x mod N, avec N nombre premier. Lorsque la ressource mémoire nécessaire à l'index dépasse N, il y a des collisions : La fréquence de la clé de jointure dans la jointure est estimée, La présence de n-uplets ne faisant pas partie de la jointure diminue la taille de l'échantillon. La valeur de N permet de maîtriser le coût de traitement en jouant sur la qualité de l'échantillon. L'échantillonnage d'une équijointure par hachage comprend trois étapes : Hachage des tables sur l'identifiant de la clé de jointure. Estimation des fréquences de la clé de jointure dans la jointure. Tirage de l'échantillon. EDA/2007/Raphaël Féraud
Etape 1 : hachage R1 R1 R2 ki=aj mod N R2 A B a1 b1 a2 b2 a3 b3 b4 … EDA/2007/Raphaël Féraud
Estimation des fréquences k1 k3 k2 k4 R2 k1 k3 k2 k4 EDA/2007/Raphaël Féraud
Echantillonnage R1 k1 k3 k2 k4 R2 k1 k3 k2 k4 EDA/2007/Raphaël Féraud
La base de données La jointure de EDP x CRU sur la clé étrangère ID_Tiers génère 39 000 000 d'enregistrements : Chacun des 81500 éléments de parc produit en moyenne à 486 compte-rendu d'usages. Chacun des 6 000 000 comptes-rendus d'usages est rattaché en moyenne à 6 éléments de parc. La clé de jointure possède 15 000 valeurs différentes. EDA/2007/Raphaël Féraud
Choix de N Nous avons tracé le temps nécessaire au calcul de l'échantillon en fonction de N pour une taille d'échantillon constante. Pour la suite des expérimentations, nous avons choisi N = 6007 pour indexer les 15 000 valeurs de la clé de jointure. Nombre important de collisions Faible nombre de collisions Dépassement mémoire : index sur disque EDA/2007/Raphaël Féraud
Précision de l'estimation La précision d'un estimateur se décompose en deux grandeurs, la variance et le biais : Nous avons construit dix échantillons de 5% de la jointure pour chacune des méthodes d'échantillonnage. Nous avons calculé la valeur moyenne de la précision, du biais et la variance des estimateurs des fréquences des valeurs de la clé de jointure. Échelle : x'=log(109.x) EDA/2007/Raphaël Féraud
Conclusion Nous avons proposé une méthode d'échantillonnage d'une jointure par hachage permettant de contrôler les ressources mémoire utilisées. Les résultats obtenus sur nos expérimentations montre qu'avec trois fois moins de ressources mémoire, nous obtenons la même qualité d'estimation que la méthode triviale, qui donne le résultat optimal. EDA/2007/Raphaël Féraud
Perspectives L'échantillonnage d'une équijointure sur clé étrangère n'est qu'une étape vers l'échantillonnage d'un entrepôt de données : Il y a potentiellement 2K jointures dans une base de données contenant k tables ! L'échantillonnage d'une jointure de flux de données est une brique technologique importante pour un Data Stream Manager System : La méthode proposée nécessite une lecture complète des tables avant de tirer l'échantillon ! EDA/2007/Raphaël Féraud