Sinon, je viens de lire l'article Wikipedia sur NoSQL (histoire d'être un peu moins ignare).
https://fr.wikipedia.org/wiki/NoSQL
NoSQL orienté-agrégats
=> C'est typiquement un cas de dé-normalisation qu'on pourra mettre en place dans un datawarehouse : plutôt que d'avoir une base avec tout dedans, on va éclater la base avec des sous-ensembles répondants à un besoin précis
NoSQL orienté-graphes
=> Bon, ben là, je suis pas bien avancé, et j'ai pas le courage de lire l'article en anglais qui est certainement plus complet
NoSQL sans-schéma
=> On est dans la base poubelle, et je ne m'étalerai pas forcément sur ce que j'en pense
C'est certes, succin, mais y'a quand même un truc qui me met le doute...
Quand je lis le laïus à propos de l'abandon d'ACID, je suis en effet pris d'un doute affreux.
Ne serait-on pas face à des développeur qui ne sont pas développeur (stagiaire éboueurs à la limite) qui tente de modifier des données directement depuis un outil de BI, dans un datawarehouse ?
J'ai en effet l'impression qu'on prend le problème à l'envers.
Pour reprendre l'exemple du site e-commerce donné par l'article, afin de répondre plus rapidement à un besoin ponctuel (à savoir, en fonction de ce que j'ai commandé à quelles réductions j'ai droit), je fais chambouler complètement l'organisation de ma base, permettre la perte de données (je comprends mieux pourquoi quand je passe des commandes chez Amazon j'ai que la moitié des colis qui arrivent du premier coup), mais aussi toute la partie comptabilité, gestion des stocks, etc.
Personnellement, quand j'ai une base de données relationnelle d'un ERP (ou d'un site e-commerce, y'a pas de différence notable entre les deux), 99% du boulot de la base c'est quand même :
- de gérer correctement les stocks
- de gérer correctement les factures
- de gérer correctement les commandes (en tenant compte des deux premiers)
Et éventuellement, j'ai un petit "-20%" qui va apparaître à côté des chaussettes parce que le mois dernier j'ai acheté des chaussures...
=> Sauf que ce besoin, pas forcément vital, et qui va certainement évoluer énormément d'un mois à l'autre, si je dois mettre en place un DWH ou autre source de données (en lecture seule) pour le calculer, je ne vais certainement pas remettre en question toute la conception du bignou...
Quand je vois que "google, amazon, ebay, et autres cadors" sont les papas et mamans du NoSQL, vu ce que c'est, j'ai plus l'impression que c'est pour s'en servir de source de données "prémâchées" sur des frontaux fortement sollicités, que pour stocker et gérer à proprement parler la donnée vivante... Si ?
La gestion des stocks d'Amazon sont gérés dans une poubelle avec "p'têt bin que oui p'têt bin qu'non on verra bien si le magasinier trouve ton colis ou pas" ?
Que le truc qui me dit "il n'en reste plus en stock mais celui-là y'en a encore 2 et vu que je t'aime bien tu l'auras à moitié prix" soit géré en NoSQL, je veux bien le croire, mais au moment où je clique sur le bouton "commander", et qu'Amazon se connecte à ma banque pour me débiter, j'ai quelques doutes que ce soit confié à un système qui ne gère pas les règles ACID...
Partager