Python et les bases de données non sql

34
PYTHON ET LES BASES DE DONNÉES NON SQL Benoît Chesneau 31/05/2009 PYCON FR 2009

Transcript of Python et les bases de données non sql

Page 1: Python et les bases de données non sql

PYTHON ETLES BASES DE DONNÉES

NON SQLBenoît Chesneau

31/05/2009 PYCON FR 2009

Page 2: Python et les bases de données non sql

1998, CanalFood, les menus de restaurants2008, créé Enki Multimediaminimal webÉchanger des resources

introduction

Page 3: Python et les bases de données non sql

BASES DE DONNÉES RELATIONNELLES

Page 4: Python et les bases de données non sql

Faire rentrer des carrés dans des ronds

Page 5: Python et les bases de données non sql

Modélisation de donnéesMigration difficileProblèmes de scalabilité

Page 6: Python et les bases de données non sql

Ça fatigue.

Page 7: Python et les bases de données non sql

DES DONNÉES VARIÉES ET

TOUJOURS PLUS NOMBREUSES.

Page 8: Python et les bases de données non sql

ACID

• Atomicity: tout ou rien

• Consistency: données toujours accessibles

• Isolation : distinction écritures/lectures

• Durability: pas de mensonges

Page 9: Python et les bases de données non sql

CAP

• Consistency:

• Availability:

• Partition tolerance

Page 10: Python et les bases de données non sql

BASE

• Basically Available

• Soft state

• Eventually consistant

• Tout le monde le fait (google, amazon, facebook...)

Page 11: Python et les bases de données non sql

Clé/Valeur

Page 12: Python et les bases de données non sql

MEMCACHED

• Pas de persistence, Ram seulement

• Rapide

• Utilisé principalement pour du cache

• Tout le monde l’utilise

Page 14: Python et les bases de données non sql

TOKYO CABINETTYRANT

• Persistent sur le disque

• Performant

• Activement développé

• Système de réplication équivalent à MySQL.

• tokyo distopia & index inversé

Page 15: Python et les bases de données non sql

TOKYO CABINETTYRANT

• pytc: http://pypi.python.org/pypi/pytc

• tc : http://github.com/rsms/tc/tree/master

• pytyrant: http://code.google.com/p/pytyrant/

• Lightcloud: http://opensource.plurk.com/LightCloud/

Page 16: Python et les bases de données non sql

REDIS

• Pas seulement un dépôt clé/value

• Valeurs peuvent être des listes, sets, strings, entiers...

• Possibilité de prendre des ensemble de valeurs

• réplication

Page 17: Python et les bases de données non sql

REDIS

• Client python officiel

• http://code.google.com/p/redis/

Page 18: Python et les bases de données non sql

BDs orientées Document

Page 19: Python et les bases de données non sql

COUCHDB

• Réplication asynchrone

• Documents en JSON

• Vues automatiquement incrementées

• map/reduce

Page 21: Python et les bases de données non sql

• Rapide

• JSON ou BSON (json binaire avce des extensions)

• Réplication asynchrone

• Système d’index

• Système de requête avancé (adhoc)

• Gestion de références entre documents (nested documents)

Page 23: Python et les bases de données non sql

BDs orientées colonnes

Page 24: Python et les bases de données non sql

HBASE

• Sous-projet hadoop. basé sur hfs

• entierement distribué

• bigtable like

• map/reduce et cascading

Page 25: Python et les bases de données non sql

HBASE

• Accès en python via jython.

• Thrift

Page 26: Python et les bases de données non sql

CASSANDRA

• Facebook

• Mélange de Dynamo et BigTable

• éventuellement consistant

• facilité d’administration

Page 27: Python et les bases de données non sql

CASSANDRA

• Thrift

Page 28: Python et les bases de données non sql

HYPERTABLE

• http://hypertable.org/

• Thrift

Page 29: Python et les bases de données non sql

BDs objets

Page 30: Python et les bases de données non sql

• Python object persistence

• problème de la migration

• Gestion des conflits en lecture (écriture?)

• Atomicité

• Scalabilité possible via ZEO et ZRS (payant)

Page 31: Python et les bases de données non sql

Questions

Page 32: Python et les bases de données non sql

@benoitc

Page 33: Python et les bases de données non sql

Cette création est mise à disposition selon le Contrat Paternité 2.0 France disponible en ligne http://

creativecommons.org/licenses/by/2.0/fr/ ou par courrier postal à Creative Commons, 171 Second Street, Suite

300, San Francisco, California 94105, USA.

Page 34: Python et les bases de données non sql

SOURCESTOUTES LES SOURCES SONT RÉUTILISABLES (CC)

1 2 3 4 5

6 7 8 9 10

1. http://www.flickr.com/photos/protolog/359340112/2. web (unknown)3.http://www.flickr.com/photos/clauer/2051770839/4.http://www.flickr.com/photos/50895074@N00/2702417725/5.http://flickr.com

6.http://flickr.com7.http://flickr.com8.http://www.flickr.com/photos/-bast-/349497988/9.http://www.flickr.com/photos/piaser/3020094082/10.http://www.flickr.com/photos/-bast-/349497988/