Un peu de culture : Bases NoSQL 1
Introduction Les bases de données NoSQL (no-sql ou Not Only SQL) sont un sujet tres à la mode en ce moment. Il y a une centaine de version de bases NOSQL But du cours : présenter les éléments communs de ces bases de données et voir les capacités et possibilités de ces bases par rapport aux bases SQL. of SQL databases. 2
Web 2.0 Architecture Attirer des consommateurs éparses - Service utile - Mobilité - Social et connection Monétiser sur l individuel - Upsell service - VIP - Rapide - Possibilités supplémentai res Online Business Application Monétiser le social: - Révéler l expérience utilisateur individuelle - Revendre de données agrégrés(e.g., publicitaires)
Social Network: Business Problem 100s de millions d utilisateurs 10s million d utilisateurs concurrents Terabytes à petabytes de données Données structurées ou pas Nécessite éventuellement de la consistance de données entre utilisateurs E.g. voir les MAJ des vos amis sur votre profil
Solution Partition des données utilisateurs sur des dizinaes d ordis Propager les MAJ d une BD sur Propager les MAJ d une BD sur d autres BD dispos utilisant des Service de Message dispo et asynchrone
Plan SQL Le standard Caratéristiques Quelquesexemples NoSQL NoSQL- Definition Caratéristiquesgénérales Types de bases NOSQL Quelquesexemples 6
Standard SQL Le standard ISO/IEC 9075 en quelques dates 1987 ISO/IEC Standard 1989 Intégrité rérérentiel 1992 SQL2 1995 SQL/CLI (ODBC) 1996 SQL/PSM Extension de langage procédural 1999 Types définis par les utilisateurs 2003 SQL/XML 2008 Extensions et corrections 2011 (or 2012) Versionnageet application des tables de time periods 7
Caracteristiques SQL Des données stockées en colonnes et en tables Des relations représentées par des données DML DDL Transactions Abstraction du niveau physique 8
Aspect physique des bases SQL Applications qui spécifique quoi mais pas comment Moteur d optimisation de requetes La couche physique peut etre modifiée Création d index pour le support des requetes Dans la mémoire de la BDD 9
Data Manipulation Language (DML) Donnéesmanipuléespar Select, Insert, Update, & Delete Select T1.Column1, T2.Column2 From Table1, Table2 Where T1.Column1 = T2.Column1 Aggregation Etats composés Fonctions et Procedures Protocole de transaction explicite 10
Data Definition Language Schéma défini dès le départ Create Table (Column1 Datatype1, Column2 Datatype2, ) Contraintesdéfiniespour renforcerles liens entre données Clé primaire Clé étrangère Etc. Triggers poour Insert, Update, & Delete Modules stockés Alter Drop Controle d accès et sécurité 11
Transactions Propriétés ACID Atomicité Toutesles tachesdansdes transactions completes (commit) ou aucune tache si pas complete Consistance Unetransaction transformeunebd d un état consistant vers un autre. La consistance estdéfinien termede contraintes. Isolatation Le résultat de changement lors d une transaction n est pas visible avant qu un commit est eu lieu. Durabilité Le résultatdes transactions commitées survit aux pannes 12
BDD SQL Quelques Exemples Commerciales IBM DB2 Oracle RDMS Microsoft SQL Server Sybase SQL Anywhere Open Source (avec des options commerciales) MySQL Ingres La majeure partie des acteurs du marché utilisent des bases SQL! 13
NoSQL -Definition From www.nosql-database.org: Next Generation Databases mostly addressing some of the points: being non-relational, distributed,open-sourceand horizontal scalable. The original intention has been modern web-scale databases. The movement began early 2009 and is growing rapidly. Often more characteristics apply as: schema-free, easy replication support, simple API, eventually consistent/ BASE(not ACID), a huge data amount, and more. 14
NoSQL -Definition From www.nosql-database.org: La nouvelle génération de BD ont pour propriétés communes la plupartdu temps : d etrenon relationnelle, distribuée, open source and scalable horizontalement. L intentionoriginaleétaitde servircommebase pour les systèmes modernes de données scalables sur le web. Le mouvement démarra au début 2009 et grandit rapidement. Le plus souventles caractéristiquessontle suivantes: pas de schéma, support facile de la réplication, API simple, éventuellementconsistent / BASE (pas ACID), beaucoup de données et bien plus 15
Projects NoSQL http://www.nosql-database.org/lists 122 NoSQL Databases Cassandra CouchDB Hadoop& Hbase MongoDB StupidDB Etc. 16
Caractéristiques NOSQL Gros volume de données Google s big data Replication scalable et distribution Des 100 ainesde machines Distribuées partout dans le monde Des requetes qui obtiennent rapidement une réponse Beaucoup de requetes, peu de MAJ Asynchronicité des insertions et Updates Pas oupeude schéma ACID non respectés la plupart du temps Theoreme CAP Open source 17
Transactions BASE Acronyme à l opposé de ACID Basically Available, Soft state, Eventually Consistent Caractéristiques Consistance pauvre OK Disponibilité en premier Meilleur effort Réponse approximative Aggressif(optimiste) Simple et rapide 18
Theoreme CAP Un systemedistribuéne peutavoirqu unede ses deux caractéristiques Consistence Disponibilité Toléranceà la partition de données 19
Consistance Tous les noeuds voient la meme donnée au meme moment Wikipedia Les clients pervoivent un ensemble d opérations comme si elles étaient faites en une seule Plus comme la propriété Atomic d ACID 20
Disponibilité Les erreurs de certains noeuds ne doivent pas empecher les autres de perdurer - Wikipédia Chaque opération doit fournir une réponse 21
Tolérance au partitionnement Le systeme continue de fonctionner meme en cas de perte de message Wikipedia Les operations seront terminées, meme si certains éléments sont incomplets Pritchett 22
Types de bases NoSQL En gros, Column Store Chaquebloc de stockage provient d une seule et meme colonne Document Store Stockedes documents consistués d éléments marqués Key-Value Store Table de hachagede clés 23
Modèle de données Data Model Exemple Simple Key-Value Pairs Memcache, Redis, Dynamo, Voldermort, LevelDB, Azure Caching Wide Sparse Column Sets HyperTable, Big Table, Cassandra, HBASE, Hyperbase, Amazon DynamoDB, Windows Azure Tables, SQL Server/Azure Sparse columns BLOBs Amazon S3, Oracle Berkeley NoSQL, Windows Azure Blob Store, SQL Server RBS/FileTable JSON Documents Graph Objects and XML Documents Extended Relational MongoDB, CouchBase, Riak, RavenDB Neo4J, GraphDB, HypergraphDB, Stig, Intellidimension Versant, OracleBerkeley NoSQL, MarkLogic, existdb, EMC HiveDB, SQL Server/Azure, Oracle, IBM DB2 Oracle, EMC SQLFire, IBM DB2, MySQL, Postgres, SQL Server/Azure
NoSQL Exemple: Stockage Column Chaque bloc de stockage contient des données d une seule et unique colonne Exemple: Hadoop/Hbase http://hadoop.apache.org/ Yahoo, Facebook Exemple: Ingres VectorWise Stockage Column Store intégré dans une BDD SQLhttp://www.ingres.com/products/vectorwise 25
Column Store Comments Plus efficace que les lignes ou les docments c est stocké si : De nombreux documents/lignes/enregistrements sont insérés au meme moment donc les mises à jour sur des blocs de colonnes peuvent etre agregees. Accès uniquement à des documents dans une ligne/un doc/un enregistrement 26
NoSQLExemple: StockageDocument Exemple: CouchDB http://couchdb.apache.org/ BBC Exemple: MongoDB http://www.mongodb.org/ Foursquare, Shutterfly JSON JavaScript Object Notation 27
CouchDB JSON Exemple { "_id": "guid goes here", "_rev": "314159", "type": "abstract", "author": "Keith W. Hare" "title": "SQL Standard and NoSQL Databases", } "body": "NoSQL databases (either no-sql or Not Only SQL) are currently a hot topic in some parts of computing.", "creation_timestamp": "2011/05/10 13:30:00 +0004" 28
CouchDB JSON Tags "_id" GUID Global Unique Identifier Passé à ougénérépar CouchDB "_rev" Revision number Mécanisme de versionning "type", "author", "title", etc. Des tags arbitraires Moinsde schémas Peuventetrevalidéesa posteriori par des routines de programmeurs 29
NoSQLExemples: StockageKey-Value Hah tables de clés Les valeurs tockées avec les clés Un accès rapide aux petites données en valeurs Exemple Project-Voldemort http://www.project-voldemort.com/ Linkedin Exemple MemCacheDB http://memcachedb.org/ Le stockagedu dessousestla base Berkeley-DB 30
Map Reduce Technique pour rechercher et interroger des gros volumes de données 2 Phases, Map & Reduce Map Extraire des ensembles de paires des données sous jacentes Travail fait potentiellement en parallele sur plusieurs machines Reduce Fusionneet trieles paires Les résultats peuvent etre utiles à d autres requetes 31
Map Reduce Les techniques Map Reduce dépendent du produit Implementée par des développeurs, pas par des logiciels au dessus 32
Stocker et modifier des données La syntaxe varie HTML Java Script Etc. Asynchrone - insertion et mise à jour n attendent pas les confirmations Versionning Concurrence optimisée 33
Récupération de données La syntaxevarie Il n ya pas de langageattitré Des langages de programmation procéduraux commejava et C L applicationspécifiedes cheminsde recherche Pas d optimisation de requetes Uneréponserapideestcequi importe Il n ya pas qu uneseuleréponsevalable 34
Open Source Un cout de prime abord moindre Un large éventail de distribution possible en fonction du hardware 35
NoSQL résumé Les bases de données NOSQL rejettent Le trop plein de transactions ACID La Complexité de SQL Le design de schématropen amont Les expression de langages déclaratives La technologie d hier Le programmeur est responsable de : Langage procédure pas a pas Chemin d accès de navigation 36
En résumé Bases de données SQL Schémas prédéfinis Définition standard et interface langagiere Consistance strict Une sémantique bien définie NoSQL Pas de schémas prédéfinis Définition au produit, un langage d interface Obtenir une réponse rapidement plutot que correcte 37
38