un générateur de bases de données astronomiques

publicité
Saada: Un Générateur
Automatique de Bases de
Données Astronomiques
Ngoc Hoan NGUYEN
Laurent MICHEL
Christian MOTCH
Observatoire Astronomique de Strasbourg
1
Plan de la présentation

Introduction

Conception et Développement

Conclusions

Questions
2
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 3une
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
4
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
5
Conception et
Développement de Saada
6
Cycle de vie d’un produit
dans une collection
Une Image
FITS
Saada-DB
Couche d’Objet
entrée
par les règles d’
Auto-configuration
(Modèle de données,
Mapping OR, ..)
par Moteur de
requêtes; et
Couche d’Objet
sortie
Web,
WS,
API, OV
SGDBR
Couche commun
(image)
Couche produit
repository
Attributs communs
(ex. position)
Attributs originaux
(classe de produits)
Classe Java
Le Générateur Saada est conçu par trois idées:
7
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
Unité principale,
nommée par
l’opérateur
Image
FITS
Classe de produits
Classe de produits
Collection
Radio
Spectrum
Classe de produits
Table
Classe de produits
Entry
Radio
Theorie
Base DEMO_DB
Couche des
attributs communs
(ex. position)
Requête sur toute
la base
Couche des attributs
de produits (classe)
Requête sur les attributs
originaux d'une classe
On peut ranger les produits par catégories
en fonction de thèmes sémantiques (Collections)
8
Modèle de données (2)

Relation Permanente
Position
Pixel values
Source
Identification
Probability
Source
• Stockage des liens corrélés et des qualificateurs ( distance,
probabilité...)
• Définie par l'opérateur
Les structures de collections, de classes et de relations
permanentes sont générées par l'Auto-configuration
9
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ées10
Auto-Configuration (2)

Configuration des produits (image)
<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>
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
11
Auto-Configuration (3)

Trois modes de classification
•
Mode “mapping” Fusion


•

Une classe différente pour chaque
produit
Chargement d’un petit nombre de
grosses tables très différentes entre elles
Mode Auto-Classification



Classe _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

•
Configuration
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
Fichier 1
Fichier …
Fichier N
Configuration
Classs_Fichier_1
Fichier 1
Class_Fichier_2
Fichier 2
Configuration
Class_1
Fichier 1
Fichier 2
Fichier N
Class_2
Fichier 21
Fichier 22
12
Class N
Fichier N1
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
13
Moteur de requête (2)

Structure de requête SaadaQL
Modèle de
données
Select [DataType] From [Class]In [Collection]
IMAGE2D
SPECTRUM
ENTRY
WherePosition {IsInBox(), IsInCircle(),…}
WhereAttributeSaada{»expression »}
WhereAttributeClass {«expression » }
TABLE
Requête sur toute la
base par les attributs
communs et par la
position
WhereRelation {
matchPattern{“nom relation_permanente”,
Cardinality(“operator”,v1,v2),
Qualifier(“qualificateur”,“operator”,v1,v2)
AssObjClass(“class1”,”class2”,….”classn”),
AssObjAttClass(“ expression ”),
AssObjAttSaada(“ expression ”),
}
matchPattern{…}
…
}
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)
14
Example

Génération d’une base DEMODB
15
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
16
Merci de votre attention
Soutiens:
Le CNES
La Région Alsace
Observatoire Astronomique de Strasbourg
17
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”}
}
}
}
18
Perspective (2)

Requête par UCDs (~ Ontology)
• Sans connaître à priori les noms d'attributs et
des classes
• Données hétérogènes
19
Classe Fusionnée
Long
Int
Float
Double
String
Char
Boolean
Long
Long
Long
Float
Double
String
Non
Long
Int
Long
Int
Float
Double
String
Non
Int
Float
Float
Float
Float
Double
String
Non
Non
Double
Double
Double
Double
Double
String
Non
Non
String
String
String
String
String
String
Non
String
Char
Non
Non
Non
Non
String
Char
Char
Boolean
Long
Int
Non
Non
String
Char
Boolean
20
Moteur de requête (4)

Traitement des requêtes SaadaQL
SQL niveau
collection
Requête
SaadaQL
Analyse et
Décompose
SQL niveau
classe
- Exécution des sous requêtes
- Fusion des OIDs ( résultat)
index du motifs
de corrélation+
SQL
Le résultat d'une requête est une liste des OIDs (Object Identifier)
21
Moteur de requête (5)

Méthode d’indexation des motifs de corrélation
• Objectif: Eviter les requêtes sur plusieurs
tables(jointures)
• Principe: Utilisation d'index pré-calculés
MatchPattern{ “nom relation”,
Cardinality(..),
Qualifier(“qualificateur”,..),
AssObjClass(“class1”,….”classn”)
}



Index de cardinalité
Index des qualificateurs
Index de classe contrepartie
Ces index sont calculés automatiquement
Mis dans des fichiers, chargés en mémoire par Cache In
Exemple de l’index de cardinalité
Cardinalité
OID Primaire
1
OID1,OID3,OID6
2
OIDK, OIDJ,OIDL
7
OIDM,OIDN
22
Moteur de requête (6)
Evaluation SaadaQL / jointures SQL
• Requête par cardinalité
La comparaison entre Jointure SQL et Index de
cardinalité
SaadaQL:
3000
ms
Select ENTRY From * In EPIC
WhereRelation {
matchPattern {“CORR_EPIC_ARCHIVE”,
Cardinality (“=”,V1, 0) }}
SQL Jointure
2000
Index memoire
1000
SQL:
0
Select distinct OIDsaada From EPIC_EntrySaada as E
Where (select count(*) from EPIC_ARCHI_15 as EA
where E.oidsaada=EA.oidprimary)) =V1
0
500000
1000000
1500000
nom bre de corrélation
• Requête par classe de contreparties
La comparaison entre SQL et Index de classe associé
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 )
40000
SQL
30000
ms

Index en mémoire sans
caché
20000
10000
Index en mémoire avec
caché
0
0
500000
1000000
1500000
nombre de corrélation
23
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.)
24
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
25
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
26
Solution Saada (7)

Application (2)
• Intégration d’une base de données dans
une boucle de simulations ou dans un
pipeline
FITS
Paramètres d’entrée
boucle
Recepteur des
données de Saada-DB
API
Saada
Données de référence
Boucle
Saada-DB ou
Saada-DB/GRID
SaadaQL
Noyau de Simulation
Non
Archivage des
données simulées
Par l'Auto-Configuration
Validation?
OUI
Résultats
27
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
28
Moteur de requêtes SaadaQL(3)

SaadaQL
• Facilité d’implémentation des modules

Interface personnalisée
29
Modèle de données (1)

Comment Organiser les données?
FITS
Généré
dynamiquement
FITS
FITS
FITS
Spectre
Plot
Image
Table/source
Un tiroir (Une collection
de données hétérogènes)
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
30
Modèle de données
Objet /Relationelle
SUPER CLASS SAADA
Class NameColl_Table
Class NameColl_Entry
Class NameColl_Image2D
Class NameColl_Spectra
Mappin
g to
OIDSaada int8
NameSaada Char(32)
Name_product Char(32)
….
Table NameColl_Table
OIDSaada int8
NameSaada Char(32)
Pos_ra_csa (double)
Pos_dec_csa (double)
OID_Table int8
…
Table NameColl_Entry
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_Image2D
Table NameColl_Spectra
31
Démonstration (1)
Génération d’une base DEMODB
• Une collection (données du satellite
Chandra)
Xcollection Chandra_Data
DEMODB

Spectra Images
Sources
Images: Chandra Catalogue
Sources: Chandra Catalogue
32
Démonstration
Base DEMODB complexe
• Deux collections avec relations
permanantes
X
Relationship ImgToSpectra
XMM_DATA
GalactPlaneSurvey
Relationship ImgToSrc
THESE_DB2

Spectra Images Source
Spectra: XMM-Newton SSC
Galactic Plane Survey
Courtesy of P. Guillout et Al.
Spectra Images Source
Images: XMM-Newton Catalogue
Sources: XMM-Newton Catalogue
33
Modèle de données Objets
(UML)
34
Attributs communs
Attributs
communs
oidsaada
namesaada
date_load
pos_ra_csa
pos_dec_csa
error_ra_csa
error_dec_csa
oid_table
Nb_rows_csa
name_class_entry_cs
a
Sky_pixel_csa
Pos_x/y/z_csa
product_url_csa
Rôle
Identificateur unique
de l’objet
Nom d’instance
Date de chargement
en seconds
Ascension droite en
degré (coordonnées
système définies à la
création de la SaadaDB)
Déclinaison en
degrés
Erreur sur
l’ascension (en
degrés)
Erreur de déclinaison
(en degré)
Identificateur unique
de la table possédant
l’objet
Nombre de lignes
Nom de la classe
Saada des entrées
Index HTM
Coordonnées
cartésiennes
Nom du fichier
initial
IMAGE2D
SPECTRUM
TABLE
ENTRY
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
MD5 (Message Digest version 5) est une fonction de
hachage cryptographique qui permet d'obtenir pour chaque
message une empreinte numérique
35
Intégration dans l’OV

Interopérabilité avec Aladin, Specview
• Corrélation permanente et VOTable
(1) Link to the selected image
(1) Link to the selected image
(3) Link to a Saada view of the correlated spectra
(3) Link to a Saada view of the correlated spectra
(2) Link to the correlated sources
(2) Link to the correlated sources
with an anchor on Saada
with an anchor on Saada
for each of them
for each of them
(4) Link to a Specview view of the correlated spectra
(4) Link to a Specview view of the correlated spectra
Focus Demos à ADASS XV
36
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
37
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 (…)
38
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>
39
Approche Saada (1)

Comment construire Saada?
AutoConfigurati
on
Modèle
de
données
flexible
Interfac
e OV
Modèle
ObjetRelationnel
Moteur de
requête
générique
Solutio
n
SAADA
,
Un
Génér
ateur
de
bases
de
donné
es,
Systè
me
Généri
40
que
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
Web, WS/OV, Module Clients
Couche
d’Objet pour
l’accès aux
données
Relationnelles
Moteur Requête SaadaQL
Cache Objet
Auto
Configuration
Chargement
Mise à Jour
Service Persistence, JDBC
SQL
Postgresql/Sysbase
SQL
41
Téléchargement