Download - Python et les bases de données non sql
![Page 1: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/3.jpg)
BASES DE DONNÉES RELATIONNELLES
![Page 4: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/4.jpg)
Faire rentrer des carrés dans des ronds
![Page 5: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/5.jpg)
Modélisation de donnéesMigration difficileProblèmes de scalabilité
![Page 6: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/6.jpg)
Ça fatigue.
![Page 7: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/7.jpg)
DES DONNÉES VARIÉES ET
TOUJOURS PLUS NOMBREUSES.
![Page 8: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/9.jpg)
CAP
• Consistency:
• Availability:
• Partition tolerance
![Page 10: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/11.jpg)
Clé/Valeur
![Page 12: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/12.jpg)
MEMCACHED
• Pas de persistence, Ram seulement
• Rapide
• Utilisé principalement pour du cache
• Tout le monde l’utilise
![Page 13: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/13.jpg)
MEMCACHED
• python-memcached: http://www.tummy.com/Community/software/python-memcached/
• ...
![Page 14: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/17.jpg)
REDIS
• Client python officiel
• http://code.google.com/p/redis/
![Page 18: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/18.jpg)
BDs orientées Document
![Page 19: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/19.jpg)
COUCHDB
• Réplication asynchrone
• Documents en JSON
• Vues automatiquement incrementées
• map/reduce
![Page 20: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/20.jpg)
• couchdb-python: http://code.google.com/p/couchdb-python/
• couchdbkit: http://bitbucket.org/benoitc/couchdbkit/
• couchapp: http://github.com/couchapp/couchapp/
COUCHDB
![Page 21: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/21.jpg)
• 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 22: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/22.jpg)
• pymongo : http://github.com/mongodb/mongo-python-driver/tree/master
• app-engine connector : http://github.com/mongodb/mongo-appengine-connector
![Page 23: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/23.jpg)
BDs orientées colonnes
![Page 24: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/25.jpg)
HBASE
• Accès en python via jython.
• Thrift
![Page 26: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/26.jpg)
CASSANDRA
• Mélange de Dynamo et BigTable
• éventuellement consistant
• facilité d’administration
![Page 27: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/27.jpg)
CASSANDRA
• Thrift
![Page 29: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/29.jpg)
BDs objets
![Page 30: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/30.jpg)
• 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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/31.jpg)
Questions
![Page 32: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/32.jpg)
@benoitc
![Page 33: Python et les bases de données non sql](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.fr/reader033/viewer/2022050613/55635d47d8b42aed538b5703/html5/thumbnails/34.jpg)
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/