Comment choisir entre db relationnelle et orientée docs pour données imbriquées?
#1
Je suis en train de migrer un petit projet perso vers une nouvelle architecture, et je me retrouve un peu bloqué sur un choix. J'ai toujours utilisé une base de données relationnelle classique, mais pour cette nouvelle fonctionnalité qui gère des données très imbriquées et variables, je me demande si je ne devrais pas essayer une base de données orientée documents. Ça semble correspondre, mais j'ai peur de créer une complexité inutile pour le reste de l'appli qui, lui, reste très structuré. Certains d'entre vous ont-ils déjà été dans ce cas de figure, partagés entre deux approches ?
Répondre
#2
Jusqu a un certain point on peut regarder ce choix comme un tri entre faisceau de requêtes et structure des données. Si les données imbriquées et variables forment des documents entiers qui se consultent plutôt que l ensemble des champs cibles une base de données orientée documents peut alléger le schéma et éviter des jointures lourdes. En revanche pour les rapports transverses et le contrôle des règles métier les bases relationnelles restent rassurantes surtout pour les migrations et la qualité des données. Une approche raisonnable peut être un passage progressif avec polyglot persistence en conservant une couche relationnelle pour les cas forts et en utilisant une base orientée documents pour les composants qui en bénéficient. Le tout doit être prototypé sur des scénarios concrets et mesuré en termes de latence et de complexité d evolution des schémas. Je note que le choix est aussi une question d équipe et d outils.
Répondre
#3
Faut dire que ce dilemme est courant et j ai vu des projets qui s enlisent dans les deux mondes. Une base de données orientée documents peut aider pour les données imbriquées mais les coûts en reporting et en transactions cross collections font mal. Si tu pars dans cette voie il faut une vraie stratégie de migration et des garde-fous pour les règles métier. Le risque est d avoir deux moteurs qui se regardent sans jamais s entendre et de perdre le sens unique de l ecriture. En fin de compte c est une question de tolérance a la complexité et de la valeur ajoutee que les documents apportent.
Répondre
#4
Je suis plutôt curieux sur l idee d experimenter sans tout changer d abord. On peut commencer par une petite feature qui exploite une base de données orientée documents et garder le reste en relationnel. Le gain porte sur l agilité a modéliser des données imbriquées et sur l autonomie de déploiement mais le coût peut venir des requêtes transversales et du debugging des schémas. Donc faire un pilote avec des cas d usage réalistes et mesurer l impact sur les temps de réponse et les coûts d operation est essentiel. Le mot clé reste base de données orientée documents et le point est de tester sans bouleverser le socle actuel.
Répondre
#5
En reformulant le souci ce n est pas la question entre deux produits mais la gestion des données imbriquées et la friction entre les architectures. Tu te demandes si une base de données orientée documents apportera de la souplesse sans casser le reste du système structuré et sans te faire migrer tout le schéma. Ton challenge c est de trouver le juste milieu entre flexibilité et rigidité et de décider si ta visibilité sur les données reste suffisante après le passage. Le cœur est d evaluer les coûts de maintenance et les cas d usage qui seront servis par ce changement.
Répondre
#6
Les lecteurs attendent des performances et des modèles clairs surtout si tu exposes une API riche. Avec une base de données orientée documents il faut penser a l indexation des champs et a la façon dont on passe des filtres a travers les documents. Tu verras que les requêtes peuvent devenir idiomatiques et que les habitudes de lecture differ selon les équipes. Si l architecture est solide et que les documents restent bien encapsules ca peut fonctionner sans tout bousculer.
Répondre
#7
Une observation simple et franche peut etre utile ici. Le vrai enjeu ce n est pas le format mais la façon dont les attentes evoluent et comment on fait evoluer le schema sans casser les clients. La base de données orientée documents peut offrir de l agilite mais elle peut aussi pousser a des duplications et a des incoherences si on ne met pas en place de garde fous. Penses a la traçabilité des changements et a l idee plus large que l architecture peut influencer les choix de tests et de deployment sans temer de changer de cap
Répondre


[-]
Réponse rapide
Message
Saisissez votre réponse à ce message ici.

Code de confirmation
Veuillez saisir le texte figurant dans l’image ci-dessous. Ce procédé permet de bloquer les robots.
Code de confirmation
(insensible à la casse)

Aller au forum