25

NoSQL Typologie et Panorama

  • Upload
    talon

  • View
    91

  • Download
    1

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: NoSQL Typologie et Panorama
Page 2: NoSQL Typologie et Panorama

2

NoSQLTypologie et Panorama

08/02/2011Pierre Couzy – Microsoft

Page 3: NoSQL Typologie et Panorama

3

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?

Page 4: NoSQL Typologie et Panorama

4

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

w01

Form1

w02 w-n

...

SQLSQL

Form2

Form-n

Form1

Form2

Form-n

Form1

Form2

Form-n

Page 5: NoSQL Typologie et Panorama

5

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

Page 6: NoSQL Typologie et Panorama

6

Au final …

http://en.wikipedia.org/wiki/NoSQL

Page 7: NoSQL Typologie et Panorama

7

(et entre nous…)

Les bases de données relationnellessont-elles vraiment ACID ?

Page 8: NoSQL Typologie et Panorama

8

Un peu de code ? • Reprenons les principaux mouvements NoSQL

• Clé-Valeur• Colonne• Document• Graphe

Page 9: NoSQL Typologie et Panorama

9

Clé-Valeur

Page 10: NoSQL Typologie et Panorama

10

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

Page 11: NoSQL Typologie et Panorama

11

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 - Optimistic Concurrency

Un Index par table = Partitionkey + RawkeyLes types supportés par les propriétés des entités sont les suivants:

• String, Binary, Bool, DateTime, GUID, Int, Int64, and Double

Compte deStockage

Stockage

Session 1 Titre Time Sujet

TableEntité(ligne)

Propriété(colonne)

AnnéeSessions

Session 2… Titre Time urlAnnée

Jusque1Mo / Entité

Jusque 252 Propriétés

Partition Key

Row Key

Time Stamp…

Page 12: NoSQL Typologie et Panorama

12

L’orienté document

Page 13: NoSQL Typologie et Panorama

13

L’orienté Graphe

Page 14: NoSQL Typologie et Panorama

14

Quelques architectures

Page 15: NoSQL Typologie et Panorama

15

Quelques architectures

Page 16: NoSQL Typologie et Panorama

16

Quelques architectures

Stockage et exécution répartis sur de (nombreux) serveurs

w01

Form1

w02 w-n

...Form2

Form-n

Form1

Form2

Form-n

Form1

Form2

Form-n

Données Form1 Données Form2 Données Form-n

Page 17: NoSQL Typologie et Panorama

17

Quelques architectures

Données noSql

Données SQLDonnées SQL

Donn

ées n

oSql

Données noSql

Données noSql

Page 18: NoSQL Typologie et Panorama

18

Combiner ?• Sql Azure et auto-sharding ?

Page 19: NoSQL Typologie et Panorama

19

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

Page 20: NoSQL Typologie et Panorama

20

Auto-Complétion en Redis ?

http://antirez.com/post/autocomplete-with-redis.html

Page 21: NoSQL Typologie et Panorama

21

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

Page 22: NoSQL Typologie et Panorama

22

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs

Page 23: NoSQL Typologie et Panorama

23

Page 24: NoSQL Typologie et Panorama
Page 25: NoSQL Typologie et Panorama