Tags:
create new tag
, view all tags

VizieR 2 - ingestion des données tables

Réunion préparatoire VizieR2

Slides de la réunion CDS (20 mars 2018): vizier2.pdf

But de la nouvelle version: framework plus intégré au service du CDS et plus modulable!
On se focalise aujourd'hui sur le coeur de VizieR: l'ingestion des données.

De quoi il s'agit ?

  • Refonte de l'ingestion des données table dans VizieR
  • Il s'agit principalement d'une migration technique
Qu'est ce que VizieR2 n'est pas?
  • Il ne s'agit PAS de l'accès aux données (service, page web…)
  • Ce n'est PAS dans le but d'améliorer le travail de documentation
  • Il ne s'agit PAS de révolutionner les méthodes d'ingestion
    Commentaires: les methodes actuelles sont bien rodées et les documentalistes sont a l'aise avec les outils en cours.
    • le fichier de configuration en LaTeX est conservé: il constitue un langage permettant de manipuler les tables
    • l'utilisation de macro LaTeX en formattage des données en sorties (ex: customization des textes: couleurs, gras...) n'est pas compatible avec les technologies d'aujourd'hui (javascript, CSS..)
Buts:
  • Adopter les nouveaux standards
    • Domaine temporel : ajouter le temps comme nouvel axe de recherche et proposer des sorties VizieR avec le futur modèle VO
      Commentaires:il s'agit d'un sujet ou VizieR est attendu et deviendra prioritaire une fois un standard VO adopté.
      • forte implication du CDS (A.Neubot)
      • une sortie utilisant des metadonnees temporelles pour Gaia est en cours
    • Passer en Full TAP (VO)
      Commentaires: la fragilité de TAP en tant qu'architecture a ete mis en question -
      Sans aller juqu'a utiliser TAP en ebackground, il s'agirait de donner un acces SQL au programme VizieR pour toutes les tables.
      La derniere version VizieR est un pas dans ce sens puisqu'elle connecte la base TAPVizieR pour interroger les grands catalogues.
      L'idée est de pousser plus loin : intégration d'un index positionel pour chaque table, possibilite d'interroger les grandes tables y compris sur les mirroirs...
      Cela permettrait de rendre la base VizieR "compatible ADQL" en interne.
    • Passer en UCD1+
      Commentaires: cela ne pourra se faire que si des outils similaires a ceux existant pour les UCD1 sont développés!
    • DOI/ORCID
      Commentaires: les ORCID peuvent etre récupérés dans les formats XML des journaux de l'AAS
  • Amélioration du système d'information
    • Conservation de la précision originale en base avec formatage
      Commentaires: sujet critique et demandant encore reflexion.
      • On a bien noté la différence entre données stockées (en base de données) , données affichées (page web) et données pour le calcul (avec plus de précision)
      • Une sdistinction remarquée aussi dans les journaux ou il existe des preview de tables avec des precisions tronquées par rapport aux données telechargeable pour le meme journal
      • Quelques remarques pour les tables FITS ou l'infromation de precision n'est que rarement précisé dans les headers
      • proposition d'ajouter 3 decimales supplémentaires aux données en base pour les calculs
    • Rationalisation de la gestion des données originales
      Commentaires:
    • indexation globale positionelle avec prise en compte des époques
      Commentaires: problématique plus large que le cas VizieR - quelque pistes (recherche) dans le service de crossmatch mais rien de concret encore...
    • Statistiques sur les data
      Commentaires: projet de TAP (VO) dans le futur, il s'agirait de remonter des infos minimales : min, max, moyenne.
      Certaines de ces informations sont presentes dans le ReadMe mais non remonté en base et le programme VizieR.
      Le service grand catalogue est pris comme exemple pour ses extractions de statistiques
    • Revoir la gestion des mots clés
      Commentaires: 3 niveaux de mots clés : mots clés editeurs +ADC keywords standard + mots clés VizieR
      la gestion des mots clés n'est pas prioritaire - attente de feedback de la recherche intuitive si elle est revue!
  • Intégrer VizieR dans le framework du CDS
    Commentaires: prioritaire
    • Améliorer l'indexation spatiale
      Commentaires: le niveau QBox 8 utilisé dans VizieR est trop faible!
      • le passage à HEALPix est une evidence pour une prochaine version
      • l'indexation globale pourra etre basé sur les MOCS: service CDS MOC? transposition des tables METAcell VizieR Qbox en Healpix? utilisation de la librairie postgreSQL MOC de M.Nullmeyer?
        Quelques doutes sur la librairie postgreSQL MOC ont ete soulevées
    • Interfacage grands catalogues
      Commentaires: des librairies notamment pour l'extraction de statistiques peuvent être intéressante à généraliser
    • partage des moyens (librairies) et ouverture du code
      Commentaires: voir dans la section technique
    • Points additionnels: nécessité d'homogénéiser les différentes "sorties" des données VizieR (noms des colonnes, ordre, liste par défaut, liens associés aux colonnes,etc) (PF)
  • Evolutions technologiques
    • Migrer la “recherche intuitive” vers une nouvelle technologie : il s'agit ici des utilitaires parfile et findcat utilisé dans le "moteur de recherche" VizieR
      Commentaires: quelques recherches deja effectués avec ElasticSearch - c'est un bon candidat pour remplacer les fichier parfile
    • migration langage pour améliorer la maintenance:
      Commentaires: voir dans la section technique

Evolution techniques


De manière générale:

  • il est important que VizieR ne s'isole pas: une contribution interne (participation d'autres ingenieurs du CDS) et complémentaire (contractuel?) est primordiale
    Commentaires: VizieR2 ne se fera pas avec une seule personne!
  • il a été souligné qu'il serait bien d'uniformiser les méthodes d'accés VizieR en évitant les segmentations rendant l'utilisation de VizieR "floue"
  • l'utilisation du langage est au coeur du débat!
    plusieurs langages peuvent ils etre envisagés?
    Commentaires: l'idée d'utiliser plusieurs langages pour l'ingestion n'a pas ete pour le moment envisagée; elle demande reflexion.
    L'avantage etant d'utiliser le langage le plus adapte pour chaque spécialisation. Cela permet aussi plus de souplesse pour les developpeurs souhaitant s'impliquer.
    Mais cette segmentation du travail d'ingestion est elle faisable ? - ceci n'est pas évident.
    exemple; une segmentation en 2 parties : generation des tables (jointure/concatenation/ajout de colonne calculees) et la mise en place des metadonnées?
TODO ?:

  • Base de données:
    • rationnalisation des schémas (technique) VizieR; viz1, viz2, ....en schemas fonctionnels
      Commentaires: par exemple reprendre comme schémas la hierarchie VizieR http://vizier.u-strasbg.fr/vizier/welcome/vizierbrowse.gml?designation
    • passer FULL TAP:
      Commentaires: recherche envisagée pour utiliser les Foreign Data Wrapper PostgreSQL pour interroger les données binaires grand catalogue
      l'utilisation de la librairie MOC PostgreSQL (M.Nullmeyer) est critiquée
    • UCD1+:
      Commentaires: nécessite des outils similaires à ceux utilisés pour attribuer les UCD1; qui s'en charge?
  • La principale question est le choix du/des langages
Le choix du language se porte sur Java (prépondérant au CDS) et Python (largement utilisé par la communauté astronomique)
Question: Le langage C a été écarté d'emblée. Or beaucoup de nos codes qui doivent être rapides sont en C (cgiprint, glufilter, parfile, ...). De plus, si on penche pour Python, comme dit ci-dessous, on va probablement interfacer avec des librairies natives (transition, vitesse, codes python non disponibles, ...), et logiquement du C. Donc je me demandais s'il ne fallait pas faire la part des choses, et notamment évaluer les codes que l'on peut/veut garder/maintenir en C (PF).
  • il a été souligné l'interet d'utiliser le même langage pour l'ingestion et l'exploitation des données: partage de librairie -
    en particulier les librairies d'astronomies (conversion unité, système de coordonnées..) et la couche META permettant de générer des requetes à partir des METAdonnées en base
  • python a été comparé à Perl - effet de mode etc. ( un peu d'histoire (PF): en fait, ESIS - précurseur de VizieR développé entre autres par l'ESO et le CDS (94-95) - avait été entièrement écrit en Perl car à l'époque très bien coté dans la communauté astro. La réécriture complète en C (en 96) a été décidée par le CDS lors de sa reprise sous le nom VizieR car François F. et autres dév. du CDS se perdaient dans les modules de scripts Perl, les appels aux libs natives (Fortran, C), et que c'était trop lent)
    Commentaires: Python est plus strutcuré que PERL (un vrai langage objet) et est plus ancré dans la société scientifique. Le succès des librairies astropy, numpy l'illustre.
  Java Python
positif
  • robuste
  • correspond bien au But de VizieR2 pour intégrer VizieR au framework CDS
  • prépondérant au CDS
  • librairies en interne
  • partage de librairies au sein du CDS
  • La lourdeur peut aussi êe vue comme un garde-fou contre la tentation de bricoler des trucs vite fait (LM)
  • Rapide à l'exécution (langage typé + JIT) (PF)
  • interfaçage C possible (mais pas indispensable puisque généralement assez rapide) (PF)
  • Pérénnité/portabilité des codes très solide (PF)

  • de plus en plus utilise en astronomie
  • librairie standard: astropy/numpy avec une communauté TRES dynamique et réactive
  • interfacage C
  • passage en douceur (car réutilisation possible de librairies C)
  • Facilité à générer des plots (LM)
  • Développement rapide, facilement modifiable "à la script" (PF)
  • Engouement actuelle (PF)
négatif
  • lourd
  • lent a développer
  • si Java est aussi utilise pour l'extraction des données cela impliquerait des Servlet qui peuvent etre vu comme une fragilité.
  • En effet, avec les servets, toutes les fonctions sont sous le contrôle d'un processus unique (Tomcat) qui devient très critique. Il faudrait peut être voir à utiliser un truc plus costaud que Tomcat et des schémas JEE plus avancés que de simples Servlets. Anais doit avoir un bon retour d'expérience (LM) - Ce sont surtout les fuites de mémoires qui posent soucis, tomcat est en revanche plutôt robuste (PF)
  • rupture brutale avec l'existant (pas compris -> PF)
  • Pérénnité du langage difficile à cerner (Oracle vs Google, ...-> cf.Tiobe) (PF)
  • peu utilisé au CDS (1 dév expert)
  • lent à l'exécution (pure python) (PF)
  • La souplesse du langage peut pousser les développeurs à ne pas se conformer l'architecture initialement définie. Cela peut poser des probèmes de maintenance à long terme (LM)
  • Compatibilité python 2.x => 3.x à gérer (PF)

Utilisation au CDS

Java Python

Simbad

Aladin

MocServer

Hipsgen/Hipsgen-cat

crossmatch

biblio

Génération MOCs et density maps des tables vizier

Interrogation RegTAP pour peuplement MocServer (petit script)

Disponibilité des librairies

  Java Python
conversion de système de coordonnées cds.astro (CDS) astropy.coordinates
conversion temporelle cds.astro.astrotime (CDS), cds.tools.Astrodate (CDS-aladin) astropy.time
conversion d'unité cds.astro.unit (CDS) astropy.units
operation sur les tables Savot (CDS/IVOA), TOPcat/STiLTS (Starlink/IVOA) astropy.table
parser (pour LaTeX) javaCC ..(?).. pyparsing
HEALPix Healpix essentials, cds.fx (CDS en cours) healpy astropy-healpix
MOC cds.moc (CDS/IVOA), Healpix essentials MOCPy (CDS), pyMoc
ADQL ADQLLIB/TAPLIB (CDS/IVOA) Dachs?? pyvo (client)
FITS cds.fits (CDS-aladin), nom-tam.fits pyFITS (remplacé par astropy.io.fits à moyen terme)
extraction ascii/byte-by-byte cds.catana pyreadme
...... ... ...

Demande aussi de reflexions commune pour proposer une architecture de développement VizieR et prévoir un "debut" UML de l'application. Qui est interessé?

Topic attachments
I Attachment Action Size Date Who Comment
PDFpdf vizier2.pdf manage 2225.4 K 2018-03-21 - 07:45 GillesLandais VizieR2 - reunion CDS
Topic revision: r9 - 2018-03-22 - ThomasBoch
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback