Premières analyses / impressions sur les sytèmes base de données NoSQL

Slides:



Advertisements
Présentations similaires
Optimisation SQL Server
Advertisements

Optimisation des requêtes
Directeur de Thèse : Pr. Witold Litwin
Witold Litwin Structures physiques Witold Litwin
Optimisation algébrique de requêtes relationnelles
Optimisation de Requêtes
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Cours N°4 Base de Données & Langage SQL
Développement d’applications web
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Contrôles d'accès aux données
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
Amélioration de la sécurité des données à l'aide de SQL Server 2005
Principes de persistance dans les applications orienté objet
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les bases de données Cours assuré par: Mlle Smii imen
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel.
Projet Génie Logiciel & UML, Bases de Données & Interfaces
Administrative Information Services CERN - Organisation Européenne pour la Recherche Nucléaire 27 nov Swiss Oracle User Group.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 Evaluation des Operations Relationnelles Chapitre 14, Section 14.4.
SQL: Contraintes et Triggers
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Bases de Données II (Automne 2007)
Les concepts et les méthodes des bases de données
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 CSI 2532 Lab3 6 Février 2012 Programmation avancée SQL.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Chapitre 3 La normalisation du modèle relationnel
PHP & My SQL.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
PostgreSQL – Présentation
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
No SQL. Sommaire 1. Présentation a) Qu’est ce que le NoSQL b) Un SGBD NoSQL 2. Bornes 3. Outils de veille 4. Article.
22/04/2015© Robert Godin. Tous droits réservés.1 10 Évaluation des requêtes relationnelles n SQL – QUOI n Évaluateur de requêtes du SGBD – COMMENT – en.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Les vues Une vue: c’est une relation virtuelle. Définie par:
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Les bases de données Séance 8 Jointures.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Apéro Techno Stephen Rousset. Plan : 1.Discussion autour du concept NoSQL 2.Utilisation côté code (C#) 3.Du concret 4.Questions ?
Bases de données non relationnelles/NoSQL
Initiation aux bases de données et à la programmation événementielle
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Analyse, élaboration et exploitation d’une Base de Données
Cours 11 Entrepôts de données
De Arnault Chazareix :
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
module SIE depuis 2011 et IAMD depuis l’an dernier ! Gestion de Masse de Données (GMD) Introduction Adrien Coulet
Transcription de la présentation:

Premières analyses / impressions sur les sytèmes base de données NoSQL Thomas Lacroix, MIG

Contexte 3 tables de notre bdd PostgreSQL Origami grossissent proportionnellement au carré du nombre d'élements (nombre de comparaisons croisées) - Actuellement : 860 éléments→740 milles cc - En cours : 2900 éléments→8.4 millions cc

Estimation par extrapolation Tables Nbre tuples (Milliard) Disk Usage table + indexes Tps Parsing + Insertion dans bdd Dont tps psql insertion Homologies 17 3.2 TB + 3.4 TB ~2 mois ~3J Alignment_pairs 1.89 345 GB + 357 GB ?? ~8H Alignments 1.35 245 GB + 254 GB ~5H

Suppression table origami 1 / 1000 ...

Pour les 2 autres tables : Navigation en eau connue Nbre tuples (Milliard) Disk Usage table + indexes Tps Parsing + Insertion dans bdd Dont tps psql insertion Alignment_pairs 1.89 345 GB + 357 GB ?? ~8H Alignments 1.35 245 GB + 254 GB ~5H Notre table homologies actuel (860 éléments) fait 1.5 milliard de tuples / 285 GB + 300 GB ~ même ordre de grandeur que estimation pour tables alignments et alignment_pairs

Mais si pas possible supprimer table homologies Mais si pas possible supprimer table homologies... →Avantages des systèmes NoSQL - Extensibilité données - Haute disponibilité (Réplication / Partionnement)

Les familles de systèmes de base de données (Ex : Neo4J) (Ex : Postgresql) (Ex : MongoDB) (Ex : Cassandra)

Les systèmes NoSQL type “Colonnes” (ex Cassandra)

Philosophie NoSQL “Colonnes” Pas de "join", "foreign keys" ou sous-requêtes. "GROUP BY" limité. →Inhérent au NoSQL "colonne" pour privilegier la performance et l'extensibilité des données. 2 solutions si problème : - Simulation multiples requêtes et "join" dans l'application client →perte de l'aspect performance - Dénormaliser (recommandé) : 1 table pour chaque type de requête qui contient toutes les infos nécessaires (duplication partielle des données)

Schéma NoSQL “colonnes” dénormalisé SQL Relationnelle NoSQL “colonne” dénormalisé Syntenies Syntenies_genes Genes Syntenies Genes Les différentes tables ne se “parlent” pas, mais répète les informations. Par ex, table “Syntenies” répète infos “genes”, “organisms”,...

Comparaison PostreSQL - Cassandra Nbre tuples ~1.5 M ~11 M ~11 Million Tps insertion DB 12.8 s 1.5 min 27.5 min 3.20 H Disk usage table 289MB 2GB 564 MB -> ? 2.3 GB -> 683 MB Disk usage ~8 index 300MB 2.1GB 3.5MB 25 MB Tps SELECT clé primaire ~0.5-12ms * ~5 ms Tps SELECT autre index ~22-150 ms * Rapide si disk pages cached dans RAM, plus long sinon...

Problèmes du NoSQL “Colonnes” pour notre cas Origami - Difficile d'avoir des “objets imbriqués”, par example une liste de qualifiers pour la table gènes... - 1 table par requête / perte de performance si requêtes non basées sur clé primaire →Insyght fait plusieurs requêtes légèrement différentes sur table alignments, organismes,... →Beaucoup de duplication de données CCL : NoSQl “Colonnes” plus adapté pour requêtes / applications “simples”, pas trop pour Origami / Insyght ?

Les systèmes NoSQL type “Documents” (ex MongoDB)

Philosophie NoSQL “Documents” Données = Objets JSON - Syntaxe ~ programmation orientée objets - Soit objets imbriqués →dénormalisation

Philosophie NoSQL “Documents” (suite) - Soit référence aux objets→normalisation

Philosophie NoSQL “Documents” (suite) - Group by et aggregation ~ SQL, >> NoSQL “Colonnes” - Auto-increment (clé primaire _id ajoutée automatiquement) - Sans-schéma != SQL, ~ NoSQL “Colonnes” - Pas de transaction / roll back ; atomicité au niveau des tuples individuels uniquement << SQL, ~ NoSQL “Colonnes”

Comparaison PostgreSQL - MongoDB Postresql MongoDB Nbre tuples ~1.5 M ~11 M Tps insertion DB 12.8 s 1.5 min 2.5min 17.5min Disk usage table 289 MB 2 GB 1 GB 7.2 GB Disk usage ~8 indexes 300 MB 2.1 GB 54.7 MB 382 MB Tps SELECT non chemin index (1 fois) ~0.5-12ms * 250 ms Tps SELECT avec chemin index 0 ms * Rapide si disk pages cached dans RAM, plus long sinon...

Les systèmes NoSQL type “Graphs” (ex Néo4J)

Philosophie NoSQL “Graphs” Relationnelle NoSQL “Graphs” G S G G Syntenies Syntenies_genes Genes - Les tuples (~ objets) sont éclatés - Les liaisons entre objets (lignes jaunes) peuvent être des entités et avoir des attributs (ex : “contain”, “is_a”, ...)

Avantages / limites à priori des NoSQL “Graphs” Bon pour : - Représentation de réseaux (Facebook,...) - Déterminer un chemin ou patron entre des entités (Mappy,...) Moins bon pour : - Retrouver un ensemble d'objets avec des attributs définis (ex : liste des gènes appartenant à une synthénie, ...) - Regrouper des objets selon différents critères (ex : somme des scores de toutes les synthénie d'une région génomique, ...)