Datomic. La base qui détonne (aka database as a value)



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

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

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

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

Les bases de données relationnelles

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)

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

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

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)

Bases de Données NoSQL

Hibernate vs. le Cloud Computing

Un peu de culture : Bases N osql L 1

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

Information utiles. webpage : Google+ : digiusto/

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

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Évaluation d une architecture de stockage RDF distribuée

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

Le NoSQL - Cassandra

Rappel sur les bases de données

OpenPaaS Le réseau social d'entreprise

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

Cours 8 Not Only SQL

Introduction à ElasticSearch

NoSQL. Etat de l art et benchmark

Java et les bases de données

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

Les bases de l optimisation SQL avec DB2 for i

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

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

Le BigData, aussi par et pour les PMEs

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

Cartographie des solutions BigData

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

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

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

L AVENIR DU NoSQL. Quel avenir pour le NoSQL?

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

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.

IFT3030 Base de données. Chapitre 1 Introduction

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

IBM Cloudant Data Layer Local Edition

Labs Hadoop Février 2013

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

Pentaho Business Analytics Intégrer > Explorer > Prévoir

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

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Hadoop, les clés du succès

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

Cours Bases de données

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

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

Configuration de plusieurs serveurs en Load Balancing

Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

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

BASE DE DONNÉES XML NATIVE

De à 4 millions. Khanh Tuong

SharePoint et la continuité de services

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

Les bases de données

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

Business Intelligence avec SQL Server 2014 Maîtrisez les concepts et réalisez un système décisionnel

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

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Fathom: C est installé maintenant? Paul Koufalis Président Progresswiz Informatique

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Serveur d'archivage 2007 Installation et utilisation de la BD exist

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

1/ Présentation de SQL Server :

PORTAIL DE GESTION DES SERVICES INFORMATIQUES

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

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

Le nouveau visage de la Dataviz dans MicroStrategy 10

Master Exploration Informatique des données DataWareHouse

Année Universitaire 2009/2010 Session 2 de Printemps

Catalogue des formations Edition 2015

Bases de données Cours 1 : Généralités sur les bases de données

Vincent Augusto

CHAPITRE 1 ARCHITECTURE

BI dans les nuages. Olivier Bendavid, UM2 Prof. A. April, ÉTS

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Entity API. Alexandre Todorov, Felip Manyer i Ballester. Montpellier, le 17 septembre 2014

JDev Atelier Datalift

Master I Génie Logiciel

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

Bases de données - Modèle relationnel

SYSTÈME DE GESTION DE FICHIERS

FINI LA RÉCRÉ PASSONS AUX MÉGADONNÉES

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Notion de base de données

Bases de données et sites WEB

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

MÉMOIRE DE STAGE DE MASTER M2

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Transcription:

Datomic La base qui détonne (aka database as a value)

Identité Base de données NoSQL Distribuée ("cloud"!) ACID Annoncée début 2012 Version 0.8.XXXX Rich Hickey et Relevance (Clojure!) Licence privative

Distribuée et ACID? Théorème de CAP "On ne peut garantir les trois contraintes en même temps." => Vous ne pouvez assurer la disponibilité ET la consistance que si vous n'êtes pas distribué. A B Autorise-t'on les écritures en cas de partition?

Un choix structurant RDBMS MongoDB HBase Redis MemcacheDB BigTable Voldemort Riak Couchbase Dynamo Cassandra

Le choix Datomic "Favor ACID transactions instead of unlimited write scalability" Séparation des écritures et du requêtage Des écritures ACID Isolées par sérialisation sur un composant unique lequel assure la Cohérence par la maj de toutes les structures requêtables joignables

+ 2 astuces Les requêtes sont jouées via des index en mémoire sur le client sur des données immuables Un client isolé des écritures travaille au pire sur des données dépassées mais toujours "vraies"

L'architecture Datomic Client Peer Lib Client Client Requêtage JVM Comm Index Cache Transactor Service de stockage

Décomposition de la BD Trois axes Stockage Structuration, contrôle et indexation Requêtage Tendance Des systèmes de stockage distribués, redondés,... Au détriment du reste

Le focus de Datomic Utiliser les stockages existants RDBMS, DynamoDB, Riak, Couchbase, Infinispan (La Durabilité est fonction de leur paramétrage) Pour apporter du neuf L'ACIDité en écriture et la disponibilité en lecture Des schémas souples mais de données typées La dimension temps

Le modèle de données Un stockage, orienté colonne, de "faits" appelés datoms : entité attribut valeur transaction (db timestamp) Add/Retract ~ triplet RDF + temps + rétractation

La transaction Référencée par chaque datom C'est une liste d'ajouts ou de retraits à la base de faits : [:db/add entity-id attribute value] [:db/retract entity-id attribute value] Elle définit le temps et l'atomicité.

Le schéma C'est une déclaration d'attributs avec nom type (string, long,..., uri, instant, uuid, ref) cardinalité doc unique index, fulltext iscomponent, nohistory

Batexemple : le schéma [{:db/id #db/id[:db.part/db] :db/ident :comic/name :db/valuetype :db.type/string :db/cardinality :db.cardinality/one :db.install/_attribute :db.part/db} {:db/ident :issue/comic :db/valuetype :db.type/ref :db/cardinality :db.cardinality/one} {:db/ident :issue/name :db/valuetype :db.type/string :db/cardinality :db.cardinality/one} {:db/ident :issue/number :db/valuetype :db.type/long :db/cardinality :db.cardinality/one}

Batexemple : quelques données [ {:db/id #db/id[:db.part/user -1 :comic/name "Batman"]} {:db/id #db/id[:db.part/user] :issue/comic #db/id[:db.part/user -1] :issue/number 1 :issue/name "Knife Trick"} {:db/id #db/id[:db.part/user] :issue/comic #db/id[:db.part/user -1] :issue/number 2 :issue/name "Trust Fall"} ]

L'API Java Obtention d'un Peer String uri = "datomic:mem://comics"; Peer.createDatabase(uri); Connection conn = Peer.connect(uri); Ecriture (schéma, ou données) List transaction = Util.readAll(reader).get(0); ListenableFuture lf = conn.transact(transaction).get(); conn.transact(list(map(":db/id", tempid(":db.part/user"), ":issue/name", "The Thirteenth Hour",...)

Le requêtage Inspiré de DataLog [:find variables... :where clauses...] Batexemple : Database db = conn.db(); String query = "[:find?comic :in $?comicname :where [?comic :comic/name?comicname]]" Collection<List<Object>> res = Peer.q(query, db, "Knife Trick");

Souplesse sur la source de données On peut dériver les sources de données Peer.q(query, db.asof(lasttuesday)); ou since ou filter (predicate) ou with (transaction) pour faire du "what-if?" Ou travailler sur de simples collections : Peer.q(query, acollectionoflistswithtestdata);

That's All Folks! A retenir? Des idées séduisantes Perspectives Architecture à plusieurs transactors? Changement de modèle économique? (Vente d'un support autour d'un source ouvert!)

Références http://www.datomic.com http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html http://codahale.com/you-cant-sacrifice-partition-tolerance http://en.wikipedia.org/wiki/datalog http://www.infoq.com/articles/architecture-datomic http://www.infoq.com/articles/datomic-information-model https://github.com/jeffbrown/groovy-datomic