410 likes | 497 Views
Ngoc Hoan NGUYEN Laurent MICHEL Christian MOTCH. Saada: Un Générateur Automatique de Bases de Données Astronomiques. Observatoire Astronomique de Strasbourg. Plan de la présentation. Introduction Conception et Développement Conclusions Questions. Introduction (1). Contexte
E N D
Ngoc Hoan NGUYEN Laurent MICHEL Christian MOTCH Saada: Un Générateur Automatique de Bases de Données Astronomiques Observatoire Astronomique de Strasbourg
Plan de la présentation Introduction Conception et Développement Conclusions Questions
Introduction (1) Contexte Données personnelles Observation (espace, sol), Simulation Fichier FITS (entêtes et tableaux), non organisé, non recherchable par le contenu Données hétérogènes Formats variés Formats des fichiers (FITS, VOTable/XML) Structures des fichiers (colonnes) Catégories variées (images, spectres, tables/sources ..) Gestion et Partage des données personnelles avec la communauté Internet, réseaux locaux ou Observatoire Virtuel (OV) Edition et Traitement rapide des requêtes complexes “ Trouver des images contenant des sources soit IR soit radio et dotées d'une vitesse radiale > 100 km/sec ” Il n’existe pas d’outil générique permettant de créer facilement une base et d’extraire facilement les contenus scientifiques
Introduction (2) Notre Solution Saada • Définition d’une Saada-DB • Générée par Saada • Une base locale, opérationnelle • Un système auto-configurable • apdatation du modèle de données • description des données à archiver • archivage automatique sans codage • Un système Objet-Relationel • Java/J2ee, Tomcat • Postgresql ou Sybase Saada n’est pas une base de données. C’est un paquetage Java pour la génération des bases de données hétérogènes Saada est un outil de transformation rapide des fichiers non recherchables en données recherchables et interconnectées
Introduction (3) Applications du Saada Gestion des données personnelles Recherche d’objets rares “outliers” Création d'une base avec des données d'origines diverses concernant la région étudiée Etablissement de liens qualifiés (ex. Distance, pixel ou probabilité, ..) de corrélations entre ces données Utilisation des motifs de corrélations pour effectuer des recherches d'objets très spécifiques Intégration dans une chaîne d’archivage ou des boucles de simulation
Cycle de vie d’un produit Saada-DB Web, WS, API, OV Couche d’Objet (Modèle de données, Mapping OR, ..) Une Image FITS entrée sortie Couche commun (image) Couche produit repository Classe Java par Moteur de requêtes; et Couche d’Objet dans une collection par les règles d’ Auto-configuration SGDBR Attributs communs (ex. position) Attributs originaux (classe de produits) Le Générateur Saada est conçu par trois idées: Modèle de données flexible, Auto-Configuration, Moteur de requêtes Générique
Modèle de données (1) Organisation des données FITS Classe de produits Image Classe de produits Spectrum Collection Radio Classe de produits Table Classe de produits Entry Radio Theorie Unité principale, nommée par l’opérateur Couche des attributs de produits (classe) Requête sur les attributs originaux d'une classe Couche des attributs communs (ex. position) Requête sur toute la base Base DEMO_DB On peut ranger les produits par catégories en fonction de thèmes sémantiques (Collections)
Modèle de données (2) Relation Permanente Stockage des liens corrélés et des qualificateurs ( distance, probabilité...) Définie par l'opérateur Source Position Identification Probability Pixel values Source Les structures de collections, de classes et de relations permanentes sont générées par l'Auto-configuration
Auto-Configuration (1) • Configuration des produits • Règles d’identification des produits • Par répertoire • Par nom (expressions régulières) • Par mots clés existant dans les produits • Modes de “mapping” des classes de produits • Sélection des attributs particuliers • Mots clés recopiés dans la collection • Mots clés ignorés Archiver des données en analysant les règles de configuration et les contenus des fichiers de données
Auto-Configuration (2) Configuration des produits (image) Identification des produits Identification/Adaptation ou Création de la classe fusionnée Chargement des produits dans la classe fusionnée, Copie des attributs communs <product> <image2D name="EPIC_EXPOSURE_MAP"> <identification> <content> <attribute>TELESCOP</attribute> <value> EPIC </value> </content> </identification> <class_mapping>EXPOSURE_MAP</class_mapping> <coord_system> <system>FK5</system> <equinox>2000</equinox> </coord_system> <collection>EPIC</collection> <mapping> <instance_name>OBJECT</instance_name> <ignored_att>COMMENT,HISTORY</ignored_att> <attributs extend….> </mapping> </image2D> </product>
Auto-Configuration (3) Configuration Configuration Configuration Class_1 Classe _Fusion Classs_Fichier_1 Fichier 1 Fichier 1 Fichier 1 Fichier 2 Fichier N Class_Fichier_2 Fichier … Class_2 Fichier 2 Fichier 21 Fichier N Fichier 22 Class N Fichier N1 • Trois modes de classification • Mode “mapping” Fusion • Une seule classe pour tous les produits correspondant à une même configuration • Intérêt: Requêtes sur tous les produits en utilisant tous les mots clés • Mode Mapping-1-1 • Une classe différente pour chaque produit • Chargement d’un petit nombre de grosses tables très différentes entre elles • Mode Auto-Classification • Classification automatique des structures de produit • Les produits de mêmes structures sont automatiquement mis dans une même classe • Intérêt :On a pas besoin de connaître à priori la structure des produits
Moteur de requête (1) Objectif Requête sur des données hétérogènes retournant des résultats hétérogènes Langage de requêtes de haut niveau: SaadaQL Adaptation au modèle de données Requête par des motifs de corrélations (pré-définis) Génération automatique des requêtes SQL sur n’importe quelle Saada-DB Traitement rapide des requêtes sans connaître à priori les produits d’une Saada-DB
Moteur de requête (2) Structure de requête SaadaQL Modèle de données Requête sur toute la base par les attributs communs et par la position Select [DataType] From [Class]In [Collection] WherePosition {IsInBox(), IsInCircle(),…} WhereAttributeSaada{»expression »} WhereAttributeClass {«expression » } WhereRelation { matchPattern{“nom relation_permanente”, Cardinality(“operator”,v1,v2), Qualifier(“qualificateur”,“operator”,v1,v2) AssObjClass(“class1”,”class2”,….”classn”), AssObjAttClass(“ expression ”), AssObjAttSaada(“ expression ”), } matchPattern{…} … } IMAGE2D SPECTRUM ENTRY TABLE Motifs de corrélations: contraintes sur la correlation et sur les objets associés par la relation Le résultat d'une requête est une liste des OIDs (Object Identifier)
Example • Génération d’une base DEMODB Partage rapide des données personnelles avec la communauté
Conclusions • Système Opérationnel répondant aux besoins réels • Création rapide d’une base de données hétérogènes • Organisation libre les données • Mise en valeur du contenu scientifique • Reconnaissance des motifs de corrélation • Exploitation des données XMM-NEWTON • Evaluation par VOTech/ESO • Ouverture et Flexibilité • Version 1.3 http://amwdb.u-strasbg.fr/saada
Merci de votre attention Soutiens: Le CNES La Région Alsace Observatoire Astronomique de Strasbourg
Perspective (1) Motif de corrélation imbriqué Requête :Sélectionner les entrées d’ARCHIVE corrélées avec une source IR située à moins de 2’’ et elle-même détectée ailleurs que sur le pixel (23, 456) du CCD et associée à au moins un spectre. SaadaQL Imbriqué: Select ENTRY From * In ARCHIVE WhereRelation { matchPattern{“ABCH_IR”, Qualifier(“distance”, « < », 2, 0), CorrelationSecondary{ matchPattern{“IR_CAMERA”, Qualifier(“pixel_x”, « != », 23, 0), Qualifier(“pixel_y”, « != », 456, 0) } matchPattern{“IR_SPECTRUM”} } } }
Perspective (2) Requête par UCDs (~ Ontology) Sans connaître à priori les noms d'attributs et des classes Données hétérogènes
Moteur de requête (4) Traitement des requêtes SaadaQL SQL niveau collection - Exécution des sous requêtes - Fusion des OIDs ( résultat) Analyse et Décompose Requête SaadaQL SQL niveau classe index du motifs de corrélation+ SQL Le résultat d'une requête est une liste des OIDs (Object Identifier)
Cardinalité OID Primaire 1 OID1,OID3,OID6 2 OIDK, OIDJ,OIDL 7 OIDM,OIDN Moteur de requête (5) • Méthode d’indexation des motifs de corrélations • Objectif: Eviter les requêtes sur plusieurs tables(jointures) • Principe: Utilisation d'index pré-calculés • Ces index sont calculés automatiquement • Mis dans des fichiers, chargés en mémoire par Cache Index • Exemple de l’index de cardinalité MatchPattern{ “nom relation”, Cardinality(..), Qualifier(“qualificateur”,..), AssObjClass(“class1”,….”classn”) } Index de cardinalité Index des qualificateurs Index de classe contrepartie
Moteur de requête (6) Evaluation SaadaQL / jointures SQL Requête par cardinalité Requête par classe de contreparties SaadaQL: Select ENTRY From * In EPIC WhereRelation { matchPattern {“CORR_EPIC_ARCHIVE”, Cardinality (“=”,V1, 0) }} SQL: Select distinct OIDsaada From EPIC_EntrySaada as E Where (select count(*) from EPIC_ARCHI_15 as EA where E.oidsaada=EA.oidprimary)) =V1 SaadaQL: Select ENTRY From * In EPIC WhereRelation { matchPattern {“EPIC_ARCHIVE”, AssObjAttSaada (“pos_dec_csa>10”) }} SQL : jointure par deux tables Select distinct EA.OIDprimary From EPIC_ARCHIVE as EA, ARCHIVE_EntrySaada as A Where (EA.oidsecondary=A.oidSaada and A.pos_dec_csa>10 )
Solution Saada (9) Comment générer une Saada-DB? Création d’une Saada-DB vide par Saada Configuration des produits à charger Chargement des données selon les configurations définies à l’étape précédente. Génération et déploiement de l’interface et du serveur Web A ce niveau, on a une base de données exploitable dont on peut enrichir le contenu scientifique Définition des corrélations permanentes (opt.) Publication des données dans l’OV (opt.)
Introduction Définition d’une Saada-DB Base de donnée générée par Saada Une base locale, opérationnelle, et indépendante de l’outil Saada Un système auto-configurable apdatation du modèle de données description des données à archiver archivage automatique sans codage L'Opérateur : personne qui crée la base Saada-DB L'Utilisateur: personne qui exploite la base Saada-DB
Solution Saada (5) • Quel contenu peut être archivé? • Base relationnelle : stockage des entêtes et des tables des fichiers (FITS) • requêtes, calculs • Repository accessible : stockage des fichiers originaux • sauvegarde, téléchargement
Solution Saada (7) Application (2) Intégration d’une base de données dans une boucle de simulations ou dans un pipeline FITS Données de référence Archivage des données simulées Par l'Auto-Configuration Paramètres d’entrée Boucle boucle API Saada Recepteur des données de Saada-DB Saada-DB ou Saada-DB/GRID SaadaQL Noyau de Simulation Non Validation? OUI Résultats
Auto-Configuration (1) Objectif Paramétrage du modèle de données Configuration des produits à charger Identification automatique des produits à charger selon des règles définies Reconnaissance automatique des nouvelles structures de produits Mise à jour des données Ajout de nouveaux produits à une classe de produits existante Adaptation automatique des classes existantes aux nouveaux produits Archivage automatique de données sans codage
Moteur de requêtes SaadaQL(3) SaadaQL Facilité d’implémentation des modules Interface personnalisée
Modèle de données (1) Comment Organiser les données? FITS FITS FITS FITS Un tiroir (Une collection de données hétérogènes) Généré dynamiquement Spectre Plot Image Table/source Saada-DB est comme un meuble contenant des tiroirs séparés dans lesquels on peut ranger les produits par catégories en fonction de thèmes sémantiques
Modèle de données Objet /Relationelle SUPER CLASS SAADA Class NameColl_Table Class NameColl_Entry Class NameColl_Image2D Class NameColl_Spectra Mapping to OIDSaada int8 NameSaada Char(32) Name_product Char(32) …. OIDSaada int8 NameSaada Char(32) Pos_ra_csa (double) Pos_dec_csa (double) OID_Table int8 … OIDSaada int8 NameSaada Char(32) Name_product (char 32) Pos_ra_csa (double) Pos_dec_csa (double) Alpha … OIDSaada int8 NameSaada Char(32) Name_product Char(32) … Table NameColl_Table Table NameColl_Entry Table NameColl_Image2D Table NameColl_Spectra
Démonstration (1) Génération d’une base DEMODB Une collection (données du satellite Chandra) collection Chandra_Data DEMODB Spectra Images Sources Images: Chandra Catalogue Sources: Chandra Catalogue X
Démonstration Base DEMODB complexe Deux collections avec relations permanantes GalactPlaneSurvey Relationship ImgToSrc Relationship ImgToSpectra XMM_DATA THESE_DB2 Spectra Images Source Spectra Images Source Spectra: XMM-Newton SSC Galactic Plane Survey Courtesy of P. Guillout et Al. Images: XMM-Newton Catalogue Sources: XMM-Newton Catalogue X
Attributs communs MD5 (Message Digest version 5) est une fonction de hachage cryptographique qui permet d'obtenir pour chaque message une empreinte numérique
Intégration dans l’OV Interopérabilité avec Aladin, Specview Corrélation permanente et VOTable Focus Demos à ADASS XV
Auto-Configuration (4) Mode de Mapping des classes La collection Epic et ses catégories de produits (Image2D, Entry, Table, Spectre) Mapping Classification: Classe contenant plusieurs produits ayant la même structure Mapping 1_1 Classe contenant un seul produit
Moteur de requête SaadaQL(5) Méthode d’index des motifs de corrélations Objectif: éviter des jointures SQL lourdes Forme générale d’une requête JOINTURE SQL: Select * From A , B, A_B Where A.ID=A_B.IDa and A_B.IDb=B.IDb and (…)
Démonstration Con,figuration <product> <image2D name="EPIC_EXPOSURE_MAP"> // nom d’une configuration <identification> <content> <attribute>CONTENT</attribute> <value> EPIC EXPOSURE MAP</value> </content> </identification> <class_mapping>EXPOSURE_MAP</class_mapping> <coord_system> <system>FK5</system> <equinox>2000</equinox> </coord_system> <collection>EPIC</collection> <mapping> <instance_name>OBJECT</instance_name> <ignored_att>COMMENT,HISTORY</ignored_att> <attributs extend….> </mapping> </image2D> </product>
Approche Saada (1) Comment construire Saada? Solution SAADA, Un Générateur de bases de données, Système Générique Et Flexible Auto-Configuration Modèle Objet-Relationnel Modèle de données flexible Moteur de requête générique Interface OV
Solution Saada (3) Architecture d’une Saada-DB Système objet-relationnel Couche objet pour une présentation scientifiquement pertinente des données Couche relationnelle pour la persistance Auto Configuration Chargement Mise à Jour Web, WS/OV, Module Clients Couche d’Objet pour l’accès aux données Relationnelles Cache Objet Moteur Requête SaadaQL Service Persistence, JDBC SQL SQL Postgresql/Sysbase