5. Le puits de données avec Elastic !
ContratsPersonnes TELLDAP
Search-based Apps
Consultation uniquement,
les systèmes d’origine
restent maîtres de la
donnée
8. Quelques questions à se poser…
• Les usages ? Partiellement connus…
• Vue 360° du sociétaire
• Recherche sur des référentiels
• Ça arrive au fur et à mesure…
• Quelles données ? Toutes (ou presque) !
• De multiple sources de données, complexes à croiser
• Des contraintes techniques ? Système des
mises à jour imposé !
• Messages générés à partir des updates issus des différents
système, sans garanti d’ordre
• Problème potentiel de mises à jour des documents dans ES
(cas nested : conteneur de la donnée pas encore présente
dans le puits)
15. « La brute » ? Un seul type de document !
Avantage(s) :
• Avec une seule requête, on récupère
l’ensemble des données d’un sociétaire
• Requêtes complexes sur les sous-documents
Désavantage(s) :
• La mise à jour !
• Temps de ré-indexation
• Complexité (quid des messages concernant un sous-
partie sans le document conteneur ?)
• Vue orientée « sociétaire » : quid des use cases
orientés « contrat » ?
16. « La brute » ? Un seul type de document !
Avantage(s) :
• Avec une seule requête, on récupère
l’ensemble des données d’un sociétaire
• Requêtes complexes sur les sous-documents
Désavantage(s) :
• La mise à jour !
• Temps de ré-indexation
• Complexité (quid des messages concernant un sous-
partie sans le document conteneur ?)
• Vue orientée « sociétaire » : quid des use cases
orientés « contrat » ?
20. « Le truand » ? Un doc par objet source
Avantage(s) :
• Facile à mettre à jour (1 type de doc
correspond à 1 type de message)
Désavantage(s) :
• Requêtage : devient vite complexe pour
avoir une information complète
• Multiplication des requêtes côté client pour
reconstituer le modèle
21. « Le truand » ? Un doc par objet source
Avantage(s) :
• Facile à mettre à jour (1 type de doc
correspond à 1 type de message)
Désavantage(s) :
• Requêtage : devient vite complexe pour
avoir une information complète
• Multiplication des requêtes côté client pour
reconstituer le modèle
26. « Le bon » ? Un mix nested et parent/child
Avantage(s) :
• Modèle permettant de répondre à la plupart des usages
(orienté sociétaire ou contrat)
• Séparation de documents ayant des cycles de vie
différents
• Avec inner_hits, capacité à retrouver des documents liés
entre eux facilement
Désavantage(s) :
• Requêtes plus lentes pour les docs liés par une lien
parent/enfant
• Elastic met en mémoire la table des liens
29. En résumé
Penser « usages » est primordial !
Utiliser les nested documents pour des données ayant
un lien fort, avec le même cycle de vie
• Ne pas hésiter à dupliquer
Utiliser les liens parents/enfants sur les documents
pouvant vivre indépendamment les uns des autres
• Requêtes avec « inner_hits »
Tenir compte des contraintes techniques de votre env