SlideShare une entreprise Scribd logo
PYTHON ET
LES BASES DE DONNÉES
       NON SQL
          Benoît Chesneau
    31/05/2009 PYCON FR 2009
introduction




1998, CanalFood, les menus
de restaurants
2008, créé Enki Multimedia
minimal web
Échanger des resources
BASES DE DONNÉES
 RELATIONNELLES
Faire rentrer des carrés
    dans des ronds
Modélisation de données
Migration difficile
Problèmes de scalabilité
Ça fatigue.
DES DONNÉES
  VARIÉES ET
TOUJOURS PLUS
 NOMBREUSES.
ACID

• Atomicity: tout    ou rien

• Consistency:     données toujours accessibles

• Isolation   : distinction écritures/lectures

• Durability: pas   de mensonges
CAP

• Consistency:

• Availability:

• Partition   tolerance
BASE
• Basically   Available

• Soft   state

• Eventually     consistant

• Tout
     le monde le fait (google,
 amazon, facebook...)
Clé/Valeur
MEMCACHED

• Pas   de persistence, Ram seulement

• Rapide

• Utilisé   principalement pour du cache

• Tout   le monde l’utilise
MEMCACHED


• python-memcached: http://www.tummy.com/
  Community/software/python-memcached/

• ...
TOKYO CABINET
        TYRANT
• Persistent   sur le disque

• Performant

• Activement    développé

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

• tokyo   distopia & index inversé
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/
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
REDIS

• Client   python officiel

• http://code.google.com/p/redis/
BDs orientées
 Document
COUCHDB

• Réplication   asynchrone

• Documents     en JSON

• Vues   automatiquement incrementées

• map/reduce
COUCHDB

• couchdb-python:     http://code.google.com/
 p/couchdb-python/

• couchdbkit:   http://bitbucket.org/benoitc/
 couchdbkit/

• couchapp: http://github.com/couchapp/
 couchapp/
•   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)
• pymongo  : http://github.com/mongodb/
 mongo-python-driver/tree/master

• app-engineconnector : http://github.com/
 mongodb/mongo-appengine-connector
BDs orientées
  colonnes
HBASE

• Sous-projet       hadoop. basé sur hfs

• entierement       distribué

• bigtable   like

• map/reduce        et cascading
HBASE


•   Accès en python via jython.

•   Thrift
CASSANDRA

• Facebook

• Mélange      de Dynamo et BigTable

• éventuellement      consistant

• facilité   d’administration
CASSANDRA


  • Thrift
HYPERTABLE

• http://hypertable.org/

• Thrift
BDs objets
• Python   object persistence

• problème      de la migration

• Gestion   des conflits en lecture (écriture?)

• Atomicité

• Scalabilité   possible via ZEO et ZRS (payant)
Questions
@benoitc
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.
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/

Contenu connexe

En vedette

Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
yboussard
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Cours python
Cours pythonCours python
Cours pythonsalmazen
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
Mohammed TAMALI
 
Formation python
Formation pythonFormation python
Formation python
j_lipaz
 
Python packaging
Python packagingPython packaging
Python packaging
Axel Haustant
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
Ronan Amicel
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
Hassan WAHSISS
 
Créer une api publique avec Django REST framework
Créer une api publique avec Django REST frameworkCréer une api publique avec Django REST framework
Créer une api publique avec Django REST framework
Bleemeo
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
Pierre-Alban DEWITTE
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
Jean-Michel ARMAND
 
Aiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblibAiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblib
Gael Varoquaux
 
Sondage aléatoire simple ou a probabilité égal
Sondage aléatoire simple ou a probabilité égal Sondage aléatoire simple ou a probabilité égal
Sondage aléatoire simple ou a probabilité égal
hammamiahlem1
 
A python web service
A python web serviceA python web service
A python web service
Temian Vlad
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
Building an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkBuilding an API with Django and Django REST Framework
Building an API with Django and Django REST Framework
Christopher Foresman
 

En vedette (20)

Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Cours python
Cours pythonCours python
Cours python
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Formation python
Formation pythonFormation python
Formation python
 
Python packaging
Python packagingPython packaging
Python packaging
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
 
R versur Python
R versur PythonR versur Python
R versur Python
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Créer une api publique avec Django REST framework
Créer une api publique avec Django REST frameworkCréer une api publique avec Django REST framework
Créer une api publique avec Django REST framework
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
 
Aiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblibAiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblib
 
Sondage aléatoire simple ou a probabilité égal
Sondage aléatoire simple ou a probabilité égal Sondage aléatoire simple ou a probabilité égal
Sondage aléatoire simple ou a probabilité égal
 
A python web service
A python web serviceA python web service
A python web service
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
Building an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkBuilding an API with Django and Django REST Framework
Building an API with Django and Django REST Framework
 
Python et NoSQL
Python et NoSQLPython et NoSQL
Python et NoSQL
 

Similaire à Python et les bases de données non sql

OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
Paris Container Day
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
haricot
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
Rachid Zarouali
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Benoît de CHATEAUVIEUX
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
Codizy
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
jwajsberg
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
Julien Wittouck
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
Olivier Grisel
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Ludovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Modern Data Stack France
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
Christophe Furmaniak
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
adri1s
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Publicis Sapient Engineering
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
AFUP_Limoges
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
O10ée
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
Guillaume MOCQUET
 
Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016
Antoine Guy
 

Similaire à Python et les bases de données non sql (20)

OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
 
Responsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tousResponsible Design ou Le web moderne à destination de tous
Responsible Design ou Le web moderne à destination de tous
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
Hug france - Administration Hadoop et retour d’expérience BI avec Impala, lim...
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
 
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
Présentation Système d’exploitation Open Source Lepton - MEITO Mai 2014
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016
 
my_resume(fre)
my_resume(fre)my_resume(fre)
my_resume(fre)
 

Dernier

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 

Dernier (9)

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 

Python et les bases de données non sql

  • 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é
  • 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
  • 10. BASE • Basically Available • Soft state • Eventually consistant • Tout le monde le fait (google, amazon, facebook...)
  • 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/
  • 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
  • 30. • Python object persistence • problème de la migration • Gestion des conflits en lecture (écriture?) • Atomicité • Scalabilité possible via ZEO et ZRS (payant)
  • 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/

Notes de l'éditeur

  1. question de relations modélisations de données UMl, .... .
  2. on essaie souvent de faire rentrer ses modeles de données dans sql à travers differents bricolages ex de Friendfeed ORM.
  3. apres avoir reussi à faire rentrer ses données, vient svt l’étape de migration. sueurs froides, comment garantir l’intégrité ... Pb de scalabilité. Plus on a de données, plus les index grossissent, les joins prennent du temps ... Problème de sharding (au moins sur les bases de données opensource)
  4. bien sur tout cela est possible. mais fatiguant et ennuyeux. Digg fait de moins en moins appels aux bases de données relationnelles.
  5. part du principe qu’une interruption de service est inacceptable disponible = 2 noeuds au moins monter en charge est plus important que tout Au détriment parfois de la rapidité la rapidité
  6. Tous les clients voient les mêmes données même lors de mise-à-jours concurrentes Tous les clients peuvent accéder à une version des données Les données peuvent être mises sur différentes base de données
  7. Tous les clients voient les mêmes données même lors de mise-à-jours concurrentes Tous les clients peuvent accéder à une version des données Les données peuvent être mises sur différentes base de données
  8. existe un système de vue/plugin en lua. a été ajouté un système 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
  9. tc se base sur pytc lightcloud offre un systeme de réplication master-master (couchdb), fail over automatique et load balancing. Se base sur pytyrant. possède un client. Manager pour prendre le controle des nodes, backups.... Client python, se base sur tyrant. comparé aux client ruby comme rufus, clients python limités. à vous de jouer.
  10. similaire à memcached, mais les données sont non volatiles conservation en ram et écris de temps en temps sur le disque (pas de consistence) serveur de structure de données réplication non bloquante en arrière plan (master -> slave) bon serveur de cache/session ?
  11. le client python au contraire du client ruby ne permet pas le sharding.
  12. 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.
  13. parfait pour tout ce qui requiert un accès rapide au données (log, ...) qui ne demande pas de consistance.
  14. 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 ....
  15. thrift est un framework pour générer des interfaces et des services dans différents langages
  16. (rien à voir avec le module plone)
  17. différent des bases de donnnées orientées documents