250 likes | 445 Views
NoSQL Typologie et Panorama. 08/02/2011 Pierre Couzy – Microsoft . Une heure pour couvrir 40 ans…. Qui peut le plus peut le moins ? Dire ce qu’on n’est pas, c’est ne pas être ce qu’on dit ? Typologie, code et aphorismes La minute de l’auvergnat Questions-réponses.
E N D
NoSQLTypologie et Panorama 08/02/2011Pierre Couzy – Microsoft
Une heure pour couvrir 40 ans… • Qui peut le plus peut le moins ? • Dire ce qu’on n’est pas, c’est ne pas être ce qu’on dit ? • Typologie, code et aphorismes • La minute de l’auvergnat • Questions-réponses http://geekandpoke.typepad.com/geekandpoke/2011/01/nosql.html?
Pourquoi NoSQL ? “This growth has forced us into horizontal and vertical partitioning strategies that have eliminated most of the value of a relational database, while still incurring all the overhead.” • Digg, Mars 2010
Le théorême de CAP ? http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf Mais je vous recommande également ceci http://dbmsmusings.blogspot.com/2010/04/problems-with-cap-and-yahoos-little.html
Au final … http://en.wikipedia.org/wiki/NoSQL
(et entre nous…) Les bases de données relationnellessont-elles vraiment ACID?
Un peu de code ? • Reprenons les principaux mouvements NoSQL • Clé-Valeur • Colonne • Document • Graphe
Orienté colonne var results = from c in context.InventoryTable where c.PartitionKey == productLine && c.LastUpdateDate >= updatedSince select c; GET http://<compte>.table.core.windows.net/InventoryTable()?$filter=(PartitionKey%20eq%20'Aliment')%20and%20(LastUpdateDate%20ge%20datetime'2011-01-06T16%3A33%3A31.2217664Z') HTTP/1.1
Table • Entité • (ligne) • Propriété • (colonne) • Compte de • Stockage • Pas de schéma fixe mais un schéma “flexible” : • Chaque ligne ou entité peut voir sa structure (ses propriétés) varier au sein d’une même table. • Les trois propriétés obligatoires pour chaque entité • PartitionKey – Première Colonne (Performance des requêtes & Montée en charge) • RowKey – Identifie de manière unique l’entité dans la partition • Timestamp - Read Only - OptimisticConcurrency • Un Index par table = Partitionkey + Rawkey • Les types supportés par les propriétés des entités sont les suivants: • String, Binary, Bool, DateTime, GUID, Int, Int64, and Double • Stockage • Sessions • Titre • Année • Année • Titre • … Session 1 • Session 2 • Time • Time Partition Key Row Key Time Stamp Jusque 252 Propriétés Jusque 1Mo / Entité • … • url • Sujet
Combiner ? • Sql Azure et auto-sharding ?
Comment choisir ? • Faire une typologie de la donnée • référence • d’activité • Ressource • .. Et une typologie de requêtage • Clé de hachage • Index • Map-Reduce • Ad hoc
Auto-Complétion en Redis ? http://antirez.com/post/autocomplete-with-redis.html
Pour finir… • The Friends table contains many million rows, while Diggs holds hundreds of millions. Computing the intersection with a JOIN is much too slow in MySQL, so we have to do it in PHP. • […] the fully denormalized Cassandra dataset weighs in at 3 terabytes and 76 billion columns
MSDN et TechNet: l’essentiel des ressources techniques à portée de clic • Portail administration et infrastructure pour informaticiens • Portail de ressources technique pour développeurs http://technet.com http://msdn.com