Python et les bases de données non sql

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1



    question de relations
    modlisations de donnes
    UMl, .... .

    on essaie souvent de faire rentrer ses modeles de donnes dans sql travers differents bricolages
    ex de Friendfeed
    ORM.

    apres avoir reussi faire rentrer ses donnes, vient svt l’tape de migration. sueurs froides, comment garantir l’intgrit ...
    Pb de scalabilit. Plus on a de donnes, plus les index grossissent, les joins prennent du temps ...
    Problme de sharding (au moins sur les bases de donnes opensource)

    bien sur tout cela est possible.
    mais fatiguant et ennuyeux.
    Digg fait de moins en moins appels aux bases de donnes relationnelles.


    part du principe qu’une interruption de service est inacceptable
    disponible = 2 noeuds au moins
    monter en charge est plus important que tout
    Au dtriment parfois de la rapidit la rapidit

    Tous les clients voient les mmes donnes mme lors de mise--jours concurrentes
    Tous les clients peuvent accder une version des donnes
    Les donnes peuvent tre mises sur diffrentes base de donnes

    Tous les clients voient les mmes donnes mme lors de mise--jours concurrentes
    Tous les clients peuvent accder une version des donnes
    Les donnes peuvent tre mises sur diffrentes base de donnes




    existe un systme de vue/plugin en lua.
    a t ajout un systme de table (utilis par cloudkit.) bas sur les colonnes. possibilit de schema less. (mais aussi systeme de hash, in memory ...)
    quand un cloudkit en python ?
    tokyo distopia: recherche

    tc se base sur pytc
    lightcloud offre un systeme de rplication master-master (couchdb), fail over automatique et load balancing. Se base sur pytyrant. possde un client. Manager pour prendre le controle des nodes, backups.... Client python, se base sur tyrant.
    compar aux client ruby comme rufus, clients python limits. vous de jouer.

    similaire memcached, mais les donnes sont non volatiles
    conservation en ram et cris de temps en temps sur le disque (pas de consistence)
    serveur de structure de donnes
    rplication non bloquante en arrire plan (master -> slave)
    bon serveur de cache/session ?

    le client python au contraire du client ruby ne permet pas le sharding.




    couchdb-python n’a pas encore de version stable pour couchdb 0.9 et trunk
    couchdb-python: serveur de vue, non threadsafe, bas sur httplib2 (pb py26)
    couchdbkit entierement dynamique. helper pour les vues, compatible py25/py26, fonctionne avec les dernieres versions de couchdb. compatible avec couchapp.

    parfait pour tout ce qui requiert un accs rapide au donnes (log, ...) qui ne demande pas de consistance.


    le plus connu en non opensource est bigtable (Google). Repose sur un master qui a la connaissance de tous les nodes. scalabilit horizontable. Plus rapide d’interroger sur des colonnes. Possibilit de ne prendre que certaines colonnes ....


    thrift est un framework pour gnrer des interfaces et des services dans diffrents langages

    (rien voir avec le module plone)



    diffrent des bases de donnnes orientes documents






    1 Favorite

    Python et les bases de données non sql - Presentation Transcript

    1. PYTHON ET LES BASES DE DONNÉES NON SQL Benoît Chesneau 31/05/2009 PYCON FR 2009
    2. introduction 1998, CanalFood, les menus de restaurants 2008, créé Enki Multimedia minimal web Échanger des resources
    3. BASES DE DONNÉES RELATIONNELLES
    4. Faire rentrer des carrés dans des ronds
    5. Modélisation de données Migration difficile Problèmes de scalabilité
    6. Ça fatigue.
    7. DES DONNÉES VARIÉES ET TOUJOURS PLUS NOMBREUSES.
    8. ACID • Atomicity: tout ou rien • Consistency: données toujours accessibles • Isolation : distinction écritures/lectures • Durability: pas de mensonges
    9. CAP • Consistency: • Availability: • Partition tolerance
    10. BASE • Basically Available • Soft state • Eventually consistant • Tout le monde le fait (google, amazon, facebook...)
    11. Clé/Valeur
    12. MEMCACHED • Pas de persistence, Ram seulement • Rapide • Utilisé principalement pour du cache • Tout le monde l’utilise
    13. MEMCACHED • python-memcached: http://www.tummy.com/ Community/software/python-memcached/ • ...
    14. TOKYO CABINET TYRANT • Persistent sur le disque • Performant • Activement développé • Système de réplication équivalent à MySQL. • tokyo distopia & index inversé
    15. TOKYO CABINET TYRANT • 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/
    16. 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
    17. REDIS • Client python officiel • http://code.google.com/p/redis/
    18. BDs orientées Document
    19. COUCHDB • Réplication asynchrone • Documents en JSON • Vues automatiquement incrementées • map/reduce
    20. COUCHDB • couchdb-python: http://code.google.com/ p/couchdb-python/ • couchdbkit: http://bitbucket.org/benoitc/ couchdbkit/ • couchapp: http://github.com/couchapp/ couchapp/
    21. • 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)
    22. • pymongo : http://github.com/mongodb/ mongo-python-driver/tree/master • app-engineconnector : http://github.com/ mongodb/mongo-appengine-connector
    23. BDs orientées colonnes
    24. HBASE • Sous-projet hadoop. basé sur hfs • entierement distribué • bigtable like • map/reduce et cascading
    25. HBASE • Accès en python via jython. • Thrift
    26. CASSANDRA • Facebook • Mélange de Dynamo et BigTable • éventuellement consistant • facilité d’administration
    27. CASSANDRA • Thrift
    28. HYPERTABLE • http://hypertable.org/ • Thrift
    29. BDs objets
    30. • Python object persistence • problème de la migration • Gestion des conflits en lecture (écriture?) • Atomicité • Scalabilité possible via ZEO et ZRS (payant)
    31. Questions
    32. @benoitc
    33. 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.
    34. SOURCES TOUTES LES SOURCES SONT RÉUTILISABLES (CC) 1 2 3 4 5 6 7 8 9 10 1. http://www.flickr.com/photos/protolog/359340112/ 6.http://flickr.com 2. web (unknown) 7.http://flickr.com 3.http://www.flickr.com/photos/clauer/2051770839/ 8.http://www.flickr.com/photos/-bast-/349497988/ 4.http://www.flickr.com/photos/50895074@N00/2702417725/ 9.http://www.flickr.com/photos/piaser/3020094082/ 5.http://flickr.com 10.http://www.flickr.com/photos/-bast-/349497988/

    + bchesneaubchesneau, 5 months ago

    custom

    760 views, 1 favs, 3 embeds more stats

    Presentation I give in french to Pycon FR 2009.

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 760
      • 747 on SlideShare
      • 13 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 2
    Most viewed embeds
    • 9 views on http://benoitc.org
    • 3 views on http://benoitc.im
    • 1 views on http://www.benoitc.org

    more

    All embeds
    • 9 views on http://benoitc.org
    • 3 views on http://benoitc.im
    • 1 views on http://www.benoitc.org

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories