SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Crogioli, alambicchi e beute
                                              Dove mettere i vostri dati




Simone Deponti (simone.deponti@abstract.it)
Il problema della persistenza
1.Problema fondamentale dell'informatica
2.Soluzione semplice: file
3.Soluzione complessa: sistemi di storage
Cenni storici

    1960       1970    1980          2000




●COBOL     ●C          ●C++      ●Java
●CODASYL   ●RDBMS      ●OO-DB    ●NoSQL
Gli sfidanti

     SQLAlchemy


     BigTable


     ZODB
SQLAlchemy: ORM e oltre
1.ORM: semplificano l'uso di SQL
  ●   No problemi compatibilità
  ●   Più sicurezza
2.Astrazione RDBMS
  ●   Compensazione feature
3.Non solo tabelle
  ●   Mappa oggetti su espressioni
SQLAlchemy: in azione
SQLAlchemy
        Forza                   Debolezze
1.Semplice               1.Programmazione
                           generica difficile
  ●   API “scala” bene
2.Veloce                 2.Difficile con
  ●   Come sviluppo
                           ●   Definizioni schemi
                               labili
  ●   Come prestazioni     ●   Strutture gerarchiche
3.Flessibile
                         3.Scalabilità
                           ●   Normalizzazione
                           ●   Verticalizzazione
SQLAlchemy: per chi
Potenza (e problemi) del relazionale
•


Ottimale se:
•


    •   Strutture dati definite
    •   Collezioni omogenee
    •   Forte tipizzazione del dato
~ 99% casi applicativi
•
ZODB: Object DataBase
1.Object database: il ritorno del filesystem
2.Inserimento oggetti nativi Python
3.Le referenze vengono registrate
4.Dinamico
5.Pickling
ZODB: in azione
ZODB
      Forza                Debolezze
1.Dinamismo           1.“Listing cartella con
2. Programmazione       10000 files”
  generica e          2.No index, no search
  introspezione
                      3.Scalabilità
3.Collezioni            “differente”
  eterogenee
4.API trasparente
ZODB: per chi
1.Definizioni schemi labili
2.Necessità di componenti generici
3.Indicizzare non è un problema
4.Esempio
  ●   Content Management System
BigTable: distribuito
1.Problema strutture fortemente distribuite
2.Simile a RDBMS
  ●   Concetto di record e colonna
3.Differente da RDBMS
  ●   Famiglie di colonne
4.CAP Theorem
  ●   Consistenza “a latere”
BigTable: cosa
1.Matrice sparsa
  ●   Famiglie di colonne e colonne
  ●   Righe, inserimento non atomico su intera riga
2.Matrice 3D
  ●   (Id riga, Id colonna, timestamp) → valore
3.Matrice 4D
  ●   Solo Cassandra
BigTable: con Python?
1.Hbase (BigTable classico) o Cassandra
  (BigTable + Dynamo)
2.Via Thrift
  ●   Generazione protocolli binari multilinguaggio
3.Molto diverso da concetti base presenti
BigTable: in azione
BigTable
       Forza                       Debolezze
1.Superscalabilità           1.API non intuitiva
2.Avaliability & Partition   2.Delega consistenza
  tolerance                    ●   Fa del proprio meglio,
3.Buon dinamismo                   non garantisce
                             3.Sforzo sviluppo
                               applicativo
                               ●   Tablet e località
BigTable: per chi
1.Google, Facebook, Yahoo
2.Data mining su grandi moli
  ●   Map/Reduce
3.Dati spezzati in microelementi
4.Necessità di distribuire aggressivamente
Conclusioni
1.Idee chiare: ORM + RDBMS
2.“robe”, “documenti”: OO-DB
3.Grandissime moli: BigTable
Per saperne di più
•   http://sqlalchemy.org/docs/
•   http://www.zodb.org
•   http://www.julianbrowne.com/article/viewer/bre
    wers-cap-theorem
•   http://wiki.apache.org/cassandra/DataModel
•   http://github.com/digg/lazyboy
Credits
1.Brueghel the Elder
2.Rob Word
3.http://www.flickr.com/photos/gilest/1

Contenu connexe

Similaire à Crogioli, alambicchi e beute, dove mettere i

Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
Dynamic Schema e Schemaless Tables
Dynamic Schema e Schemaless TablesDynamic Schema e Schemaless Tables
Dynamic Schema e Schemaless TablesDavide Mauri
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereMatteo Valoriani
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...MariaDB plc
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateManuel Scapolan
 
Presentazione mongo torino
Presentazione mongo torinoPresentazione mongo torino
Presentazione mongo torinoCSP Scarl
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - InfinispanJBug Italy
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009Massimiliano Dessì
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 
Fast data platforms - Hadoop User Group (Italy)
Fast data platforms  - Hadoop User Group (Italy)Fast data platforms  - Hadoop User Group (Italy)
Fast data platforms - Hadoop User Group (Italy)Andrea Gioia
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLMongoDB
 
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMassimo Brignoli
 

Similaire à Crogioli, alambicchi e beute, dove mettere i (20)

Data grid
Data gridData grid
Data grid
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
Dynamic Schema e Schemaless Tables
Dynamic Schema e Schemaless TablesDynamic Schema e Schemaless Tables
Dynamic Schema e Schemaless Tables
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernate
 
Presentazione mongo torino
Presentazione mongo torinoPresentazione mongo torino
Presentazione mongo torino
 
Infinispan
InfinispanInfinispan
Infinispan
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - Infinispan
 
No Sql Intro
No Sql IntroNo Sql Intro
No Sql Intro
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Fast data platforms - Hadoop User Group (Italy)
Fast data platforms - Hadoop User Group (Italy)Fast data platforms - Hadoop User Group (Italy)
Fast data platforms - Hadoop User Group (Italy)
 
Fast data platforms - Hadoop User Group (Italy)
Fast data platforms  - Hadoop User Group (Italy)Fast data platforms  - Hadoop User Group (Italy)
Fast data platforms - Hadoop User Group (Italy)
 
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQLBack to Basics webinar 1 IT 17 - Introduzione ai NoSQL
Back to Basics webinar 1 IT 17 - Introduzione ai NoSQL
 
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQLMongoDB - Back to Basics 2017 - Introduzione a NoSQL
MongoDB - Back to Basics 2017 - Introduzione a NoSQL
 

Crogioli, alambicchi e beute, dove mettere i