NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011



Documents pareils
Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d événements par an

Un peu de culture : Bases N osql L 1

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

Le NoSQL - Cassandra

Hibernate vs. le Cloud Computing

Les bases de données relationnelles

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Bases de données documentaires et distribuées Cours NFE04

NoSQL. Etat de l art et benchmark

Cartographie des solutions BigData

Quels choix de base de données pour vos projets Big Data?

L élasticité des bases de données sur le cloud computing

11/01/2014. Le Big Data Mining enjeux et approches techniques. Plan. Introduction. Introduction. Quelques exemples d applications

Le BigData, aussi par et pour les PMEs

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Bases de Données NoSQL

NoSQL - Systèmes de gestion de données distribués

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

NoSQL : les meilleures

L AVENIR DU NoSQL. Quel avenir pour le NoSQL?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Information utiles. webpage : Google+ : digiusto/

Introduction à MapReduce/Hadoop et Spark

Architecture NoSQL et réponse au Théorème CAP

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le langage SQL (première partie) c Olivier Caron

Présentation du module Base de données spatio-temporelles

Bases de données documentaires et distribuées Cours NFE04

Bases de données relationnelles

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Introduction aux systèmes NoSQL (Not Only SQL)

Document réalisé par Khadidjatou BAMBA

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Les technologies du Big Data

Mémoire présenté en vue de l obtention du diplôme de MASTER II RECHERCHE Option : S.I & G.L

OpenPaaS Le réseau social d'entreprise

Les bases de données

Cours 8 Not Only SQL

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

NoSQL. Stephane VAROQUI Field Services - Senior Consultant

Programmation parallèle et distribuée

Introduction aux Bases de Données

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Optimisations des SGBDR. Étude de cas : MySQL

Cours Bases de données

PostgreSQL. Formations. Calendrier... 14

Introduction à JDBC. Accès aux bases de données en Java

Master I Génie Logiciel

Encryptions, compression et partitionnement des données

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Les journées SQL Server 2013

PostgreSQL. Formations. SQL avancé Calendrier... 18

Programmation parallèle et distribuée

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Bases de données documentaires et distribuées Cours NFE04

Big Graph Data Forum Teratec 2013

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Bases de Données relationnelles et leurs systèmes de Gestion

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Big data et données géospatiales : Enjeux et défis pour la géomatique. Thierry Badard, PhD, ing. jr Centre de Recherche en Géomatique

SQL Historique

2 e édition. et le Big Data. Comprendre et mettre en oeuvre. NoSQL. Rudi Bruchez. Les bases de données

IFT3030 Base de données. Chapitre 1 Introduction

Introduction aux SGBDR

Session S12 Les bases de l optimisation SQL avec DB2 for i

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Installation d'un serveur FTP géré par une base de données MySQL

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Bases de données relationnelles : Introduction

I4 : Bases de Données

CESI Bases de données

Cassandra et Spark pour gérer la musique On-line

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

INTRODUCTION AUX BASES de DONNEES

TP Contraintes - Triggers

Les quatre piliers d une solution de gestion des Big Data

Business Intelligence, Etat de l art et perspectives. ICAM JP Gouigoux 10/2012

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Le langage SQL Rappels

Rappel sur les bases de données

1 Introduction et installation

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Mysql. Les requêtes préparées Prepared statements

Transcription:

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011

Sommaire Introduction Théorème CAP NoSQL (principes, mécanismes, démos,...) Ce que nous avons constaté Recommandations Conclusion 2

Introduction Bases de données relationnelles : Solutions mûres et maîtrisées Robustes Ont fait leurs preuves Pourquoi s'embêter avec autre chose??? UID NOM Prénom UID GID GID Groupe 1 Jagger Mick 2 Harrison George 3 Starr Ringo 1 2 2 1 3 1 1 Beatles 2 Rolling Stones 3

Introduction : impact du Web 2.0 1970 1990 2000 2010 Primum Adabasolite Relationalus databasauris IBM LOTUS Dominosaurus!!! N'ont pas disparu et ne disparaîtront pas!!! Armageddon 2.0 Columnus NoSQLausis KeyValueraptor NoSQLausis Graphosis NoSQLausis Documentaris NoSQLausis Smalsopithecus 4

Introduction : impact du Web 2.0 Énorme masse d'utilisateurs Gros volumes de données à gérer (hype Big Data) Contraintes différentes : Scalabilité > Consistance Disponibilité > Consistance 5

Introduction : impact du Web 2.0 Facebook: Pic de 13 000 000 req db/sec 690 milliards de pages vues/mois 300 To de données en cache mémoire 25 To de logs par jour 1 ingénieur/1,1 millions d utilisateurs 6

Théorème CAP Consistency, Availability, Partition tolerant Conjecture, démontrée en 1992 pour les systèmes distribués asynchrones CA A AP Choisissez-en deux C CP P 7

Théorème CAP : Consistency Tous les utilisateurs ont toujours la même vue sur toutes les données 8

Théorème CAP : Availability Est-il toujours possible de lire des données et d'en écrire? 9

Théorème CAP : Partition tolerant L'application peutelle survivre à un partitionnement du réseau?? 10

Théorème CAP C : OK A P : Redondants? CAP theorem =?= CRAP theorem 11

Théorème CAP Autre approche : PACELC "if there is a partition (P) how does the system tradeoff between availability and consistency (A and C); else (E) when the system is running as normal in the absence of partitions, how does the system tradeoff between latency (L) and consistency (C)? " Ex : PA/EL 12

Théorème CAP VS PACELC CAP Simple Flou VS PACELC Complexe Clair http://buzzworld.fr/ Deux manières différentes pour exprimer la même chose. 13

NoSQL : C est quoi? Catégorie de Bases de Données NoSQL = No SQL Not only SQL (Structured Query Language) Ex : SELECT champ1, champ2 FROM table; 14

NoSQL : C est quoi? Souvent très scalables non-relationnelles très spécifiques sans schéma 15

NoSQL : ACID VS BASE CAP = On ne peut pas tout avoir ACID BASE Atomicity Consistency Isolation Durability Basically Available Soft state Eventual consistency Souvent choisi pour NoSQL 16

NoSQL : Qui utilise ça??? Facebook, Twitter, Google, bit.ly, Springer, Amazon, digg, IBM, LinkedIn, Rackspace, sourceforge, Globalement : des sites à très forte consultation Mais aussi de nombreux sites Web en tant que cache! 17

NoSQL : Et ça marche? Oui mais 18

NoSQL : Et ça marche? Oui mais pas une solution miracle Plusieurs mécanismes (souvent simples) pour améliorer la scalabilité et/ou la haute disponibilité 19

NoSQL : Quelques mécanismes Partitionnement Réplication (+ Quorum) 20

NoSQL : Quelques mécanismes Partitionnement Découpage des données en vue de les distribuer Pas nouveau Mais différentes manières de procéder 21

NoSQL : Quelques mécanismes Réplication Au moins deux instances de chaque donnée Pas nouveau Mais différentes manières de procéder 22

NoSQL : Quelques mécanismes Partitionnement Traditionnellement : un "simple" modulo sur la clé pour déterminer l'emplacement d'une donnée Chaque nœud sait où se trouve chaque donnée 127 127 % 4 = 3 Serveur 0 Serveur 1 Serveur 2 Serveur 3 23

NoSQL : Quelques mécanismes Partitionnement En cas d'ajout ou de retrait d'un serveur, besoin de tout recalculer pas évident à rendre scalable Modulo 4 Modulo 3 Modulo 5 Serveur 0 Serveur 1 Serveur 2 Serveur 3 352 - - 934-327, 395, 471 Serveur 0 Serveur 1 Serveur 2 327, 471-352, 934-395 Serveur 0 Serveur 1 Serveur 2 Serveur 3 Serveur 4 395-471 - 327, 352 - - 934 24

NoSQL : Quelques mécanismes Partitionnement Consistent hashing C N1-1 A N2-1 B 25

NoSQL : Quelques mécanismes Partitionnement Ajout d un noeud : ajustements minimes N8-1 N1-1 N2-1 N9-1 N1-1 N2-1 N7-1 N3-1 N8-1 N3-1 N6-1 N5-1 N4-1 N7-1 N6-1 N5-1 N4-1 26

NoSQL : Quelques mécanismes Partitionnement Pondération des noeuds C N1-1 A C N1-1 A N3-2 N2-1 N2-1 B B 27

NoSQL : Quelques mécanismes Partitionnement Consistent hashing + réplication N1-1 Relativement simple A Chaque nœud sait où se trouve chaque donnée N4-1 F G A B C D E B C N2-1 G F E D N3-1 28

NoSQL : Quelques mécanismes Quorum (finalement consistant) Seuils de lecture (SL) et d écriture (SE) Un petit exemple? Hypothèse : 6 copies de chaque donnée (#C = 6) Let s go Inst 1 Inst 2 Inst 4 Inst 5 Inst 3 Inst 6 29

NoSQL : Quelques mécanismes Quorum (éventuellement consistant) SE = 3 SL = 2 Inst 1 Inst 2 Inst 3 Inst 4 Inst 5 Inst 6 Inst 1 Inst 2 Inst 3 Inst 4 Inst 5 Inst 6 30

NoSQL : Quelques mécanismes Quorum (finalement consistant) Données finalement consistantes Paramétrisation possible Si (SL + SE > #C) alors données consistantes Sinon données finalement consistantes Si (SL < SE) alors lectures rapides Sinon si (SL > SE) alors écritures rapides Sinon même vitesse pour écriture et lecture 31

NoSQL : Quelques mécanismes Quorum (finalement consistant) X SL + SE Performances Consistance X SE SL Ecritures rapides Lectures rapides 32

NoSQL : Quelques mécanismes Quorum (finalement consistant) Plus complexe en pratique Inst 1 Inst 2 Inst 3 Inst 4 Inst 5 Inst 6 Inst 1 Inst 2 Inst 3 Inst 4 Inst 5 Inst 6 Inst 1 Inst 2 Inst 3 Inst 4 Inst 5 Inst 6 33

NoSQL : Quelques mécanismes Quorum (finalement consistant) Vector clocks Laissons cela en annexe 34

NoSQL : Bases de données traditionnelles Grands tableaux avec relations FF 11 GG 44 HH 55 II 77 11 0A 55 7B 66 4C 99 5M GG FF TT NN 0A 8Z 4P 5M 35

NoSQL : une grande famille Clé / Valeur (K/V) Orientées colonnes (COL) Orientées documents (DOC) Orientées graphes (GR) K/V COL DOC GR http://www.paramount.com/ 36

NoSQL : caractérisation REL = RDBMS 37

NoSQL : caractérisation http://blog.nahurst.com/visual-guide-to-nosql-systems Tokyo Cabinet NEO4J KAI Voldemort MySQL Vertica Dynamo Cassandra Oracle Postgres HypergraphDB CouchDB K/V COL FlockDB Riak REL SimpleDB DOC GR Hbase Hypertable BigTable Berkeley DB Redis Terrastore MongoDB Scalaris MemcacheDB 38

NoSQL : caractérisation CA AP CP K/V COL DOC GR 12 types de DB diverses architectures et modes de fonctionnement par type http://www.paramount.com/ 39

NoSQL : caractérisation Tokyo Cabinet NEO4J KAI Voldemort MySQL Vertica Dynamo Cassandra Oracle Postgres HypergraphDB CouchDB K/V COL FlockDB Riak REL SimpleDB DOC GR Hbase Hypertable BigTable Berkeley DB Redis Terrastore MongoDB Scalaris MemcacheDB 40

NoSQL : caractérisation Tokyo Cabinet Cassandra NEO4J CouchDB K/V COL FlockDB DOC GR MemcacheDB Hypertable MongoDB Redis 41

NoSQL : Clé-Valeur Grandes tables de hachages Key Value 42

NoSQL : Clé-Valeur Caractéristiques : Simples Interface pauvre (peu de commandes) Très performantes Remarques : Partitionnement des données pas toujours pris en charge par la DB 43

NoSQL : Clé-Valeur Pour que faire : Cache d un site web Stockage de données élémentaires NoSQL K/V RDBMS Clé A C Valeur B D Clé A C Valeur B D 44

NoSQL : Clé-Valeur DEMOS Tokyo Cabinet K/V COL DOC GR MemcacheDB Redis 45

NoSQL : Solutions orientées colonnes Longues listes variées K = Key C = Column V = Value K1 C1 : V C2 : V C3 : V K2 C1 : V C3 : V C6 : V C8 : V 46

NoSQL : Solutions orientées colonnes Parfois possible d'avoir un niveau de hiérarchie supplémentaire (super colonnes) K C V = = = Key Column Value K C1 : V C2 : V C3 : V C4 : V C5 : V 47

NoSQL : Solutions orientées colonnes Caractéristiques : Gestion d'un très grand nombre de colonnes (plusieurs millions) Requêtes minimalistes Remarques : Absolument pas prévu pour le relationnel difficile à exploiter pour les gens habitués aux RDBMS 48

NoSQL : Solutions orientées colonnes Pour que faire : Stockage de données chronologiques (ex : log système, evolution d un dossier médical) Relations one-to-many (ex : gérer des droits d accès) NoSQL Col A B=1 C=2 D=3 E F=4 G=5 RDBMS Node Father Value A NULL NULL E NULL NULL B A 1 C A 2 D A 3 F E 4 G E 5 49

NoSQL : Solutions orientées colonnes DEMOS Cassandra K/V COL DOC GR Hypertable 50

Pause A := #persons_before_pause B := #persons_after_pause IF A > B THEN presentation_quality := bad ELSE presentation_quality := normal IF B > A THEN attenders_punctuality := bad INSERT "Coffee" INTO "Hall"; 51

NoSQL : Solutions orientées documents Documents structurés sans schémas prédéfinis F V K = = = Field Value Key K F1 : V F2 : V, V, V F3 : V F4 : V, V F5 : V F6 : V K F1 : V F2 : V F3 : V, V F4 : V F5 : V 52

NoSQL : Solutions orientées documents Caractéristiques : Très flexibles Syntaxe parfois très riche Bien adapté au monde du Web 53

NoSQL : Solutions orientées documents Pour que faire : Gérer des données avec des structures complexes et variables (DMFA, profils utilisateurs complexes) Cache de données structurées (manipulation de formulaires) NoSQL doc A B=1 C=2,D=3 F=4,G=5 H=6 I=7,J=8,K=9 L=10,M=11 Node Father Value A NULL NULL B A 1 CD A NULL C NULL 2 D NULL 3 FG CD NULL F NULL 4 G NULL 5 H A NULL IJK H NULL I NULL 7 J NULL 8 K NULL 9 LM IJK NULL L NULL 10 M NULL 11 RDBMS Node MemberOf C CD D CD F FG G FG I IJK J IJK K IJK L LM M LM 54

NoSQL : Solutions orientées documents DEMOS CouchDB K/V COL DOC GR MongoDB 55

NoSQL : Solutions orientées graphes Graphes orientés N = Noeud N2 N1 N3 N5 N4 56

NoSQL : Solutions orientées graphes Caractéristiques Parfois optimisées pour la résolution de problèmes complexes et non pour les performances Remarque Peu de solutions intéressantes à ce jour 57

NoSQL : Solutions orientées graphes Pour que faire : Gérer des relations complexes et dynamiques (ontologies, relations entre personnes, administrations, ) NoSQL graph RDBMS H D J A C E I B F Src Dst Rel A B E B D G C B I C D J D A H G 58

NoSQL : Orientées graphes http://www.foxmovies.com/ DEMOS NEO4J K/V COL FlockDB DOC GR 59

NoSQL : Récapitulatif K/V COL Key Value K1 C1 : V C2 : V C3 : V K F1 : V F2 : V, V, V F3 : V F4 : V, V DOC F5 : V F6 : V N2 N1 N3 N5 N4 GR 60

NoSQL : Récapitulatif K/V Cache site Web Stockage données élémentaires Documents complexes (DMFA, profils utilisateurs, cache de données structurées ) DOC COL Données chronologiques (log système, dossier médical) Relations One-to-Many Gérer des relations complexes et dynamiques (ontologies, relations personnes/administrations) GR 61

NoSQL : Récapitulatif Tokyo Cabinet NEO4J KAI Voldemort MySQL Vertica Dynamo Cassandra Oracle Postgres HypergraphDB CouchDB K/V COL FlockDB Riak REL SimpleDB DOC GR Hbase Hypertable BigTable Berkeley DB Redis Terrastore MongoDB Scalaris MemcacheDB 62

Ce que nous avons constaté Outils très spécifiques et efficaces dans leur domaine Maturité très variable d une solution à l autre Installation et prise en main aisées Peu ou pas d outils tiers (incompatible avec l existant?) 63

Ce que nous avons constaté Se méfier des benchmarks : Solutions très spécifiques Nécessité de réaliser des benchmarks exploitant les spécificités des bases de données testées Topologie réseau propre à chaque DB 64

Ce que nous avons constaté Ne pas négliger la documentation Limitations parfois inattendues : 4Mo pour un objet MongoDB, 1Mo pour un object Memcached Pas de redéfinition de colonnes dans Cassandra 65

Ce que nous avons constaté Réception auprès des utilisateurs Incompréhension Réticence 66

Recommandations NoSQL n est pas un objectif en soi Ne répond pas à tous les problèmes A utiliser uniquement si les SGBDR ne conviennent pas : Trop lents Données difficiles à modéliser Données difficiles à exploiter Format des données variable http://www.misterandyriley.com/ 67

Recommandations Adapter la BD au format des données et non le contraire NE PAS PENSER RELATIONNEL (surtout lors de la définition du modèle de données) Peut être utilisé conjointement à un RDBMS 68

Recommandations (Choix d une solution) Tokyo Cabinet NEO4J KAI Voldemort MySQL Vertica Dynamo Cassandra Oracle Postgres HypergraphDB CouchDB K/V COL FlockDB Riak REL SimpleDB DOC GR Hbase Hypertable BigTable Berkeley DB Redis Terrastore MongoDB Scalaris MemcacheDB 69

Conclusion Bases de données NoSQL : une alternative sérieuse au modèle relationnel? Alternative : non! (permettent de résoudre des problèmes différents) Sérieux : oui! (même Oracle va proposer sa solution NoSQL) A utiliser si les bases de données relationnelles se montrent inefficaces/trop complexes. 70

Conclusion Beaucoup de solutions, mais très spécifiques Ne pas négliger la formation et la documentation Ne pas toujours penser relationnel Ne pas toujours penser relationnel! 71

Conclusion NoSQL : hype ou innovation? Hype et innovation Potentiel réel et non négligeable Téléchargez, jouez un peu, faites-vous une idée avant d essayer ou de dire non ;-) 72

Questions? SELECT "Questions" FROM "Public"; DELETE FROM "Public"; 73