Database NO-SQL: Anything else ?

1,082 views

Published on

La presentazione di Giorgio Desideri per il Codemotion del 5 marzo 2011 a Roma http://www.codemotion.it/

Un differente approccio alla progettazione e realizzazione di modelli di dati basati su paradigmi diversi da Entità-Relazione. Analisi delle maggiori prestazioni e scalabilità di questi sistemi sui sistemi di archiviazione SQL. Studio dei paradigmi di base su cui è basato il sistema di storage. Integrazione nelle normali applicazioni e trucchi&soluzioni derivanti dall'esperienza diretta di utilizzo.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,082
On SlideShare
0
From Embeds
0
Number of Embeds
278
Actions
Shares
0
Downloads
29
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Database NO-SQL: Anything else ?

  1. 1. Database NO-SQL: Anything else ? Giorgio Desideri giorgio.desideri@gmail.com <nome relatore> - <e-mail> – <azienda o community>
  2. 2. Database NO-SQL: Anything else ?Stato dellarte: Modello E-R (Entità – Relazione); Linguaggio SQL, linguaggio formale e dichiarativo Prestazioni legate esclusivamente al “EngineSQL”, colui che interpreta la query sql (spesso legate al prodotto utilizzato) Scalabilità / Robustezza / Prestazioni derivanti dalla realizzazione utilizzata (modello, strumenti e dati) Pag. 2 / 24 <nome relatore> - <e-mail> – <azienda o community>
  3. 3. Database NO-SQL: Anything else ?Modello E-R (Entità – Relazione): 3 oggetti coinvolti Persone Ruoli 0,n 1,n svolge Pag. 3 / 24 <nome relatore> - <e-mail> – <azienda o community>
  4. 4. Database NO-SQL: Anything else ?Linguaggio SQL: linguaggio formale Derivato da una grammatica definita Definizione degli operatori linguaggio dichiarativo Definisce “cosa” voglio Realizzazione spetta allinterprete dei comandi che mi restituirà quello che io ho dichiarato nella mia query Pag. 4 / 24 <nome relatore> - <e-mail> – <azienda o community>
  5. 5. Database NO-SQL: Anything else ?Caratteristiche Generalità: è un modello formale e generale che permette la costruzioni di “qualsiasi” modello reale Robustezza: definizione di cosa voglio deve essere completa alla mia idea, altrimenti ottengo qualche altra cosa Scalabilità: espansione sia in prestazioni che in funzionalità legate allarchitettura utilizzata dal EngineSQL utilizzato Pag. 5 / 24 <nome relatore> - <e-mail> – <azienda o community>
  6. 6. Database NO-SQL: Anything else ? Anything else ? Pag. 6 / 24 <nome relatore> - <e-mail> – <azienda o community>
  7. 7. Database NO-SQL: Anything else ?< Key , Value > 2 oggetti Definizione di una struttura generale “Datemi un punto dappoggio  e vi solleverò il mondo”  (Archimede Siracusano) Pag. 7 / 24 <nome relatore> - <e-mail> – <azienda o community>
  8. 8. Database NO-SQL: Anything else ?E-R: $entità1 <---> $relazione <----> $entità2 <K, V>: < $entità1, {($relazione1, entità2), ($relazione2, entità2), … } > Key: $entità1 Value: list( $relazioneN, entitàN ) Pag. 8 / 24 <nome relatore> - <e-mail> – <azienda o community>
  9. 9. Database NO-SQL: Anything else ?Importanza della progettazione Modello dei dati COSA è “KEY” ? COSA è “VALUE” ? Ricerca del modello “ottimale” Analisi nellinterezza del modello reale dei dati Decomposizione/Composizione, interconnessione degli oggetti Paradigma NON CONTEXT-FREE, anzi CONTEXT-DRIVEN Pag. 9 / 24 <nome relatore> - <e-mail> – <azienda o community>
  10. 10. Database NO-SQL: Anything else ?Perché SI ai NO-SQL DB ? Perché NO ai No-Sql DB ? Gestione grandi moli di dati (Gb, Tb, Eb) Modello non generale, la cui efficienza Scalabilità (architettura e data-model) è strettamente legata al modello di rappresentazione dei dati Prestazioni Progettazione feature a carico dellutente Software-Legacy Pag. 10 / 24 <nome relatore> - <e-mail> – <azienda o community>
  11. 11. Database NO-SQL: Anything else ? Anything else ? Pag. 11 / 24 <nome relatore> - <e-mail> – <azienda o community>
  12. 12. Database NO-SQL: Anything else ? Apache Cassandra Google BigTable Apache HBase Pag. 12 / 24 <nome relatore> - <e-mail> – <azienda o community>
  13. 13. Database NO-SQL: Anything else ? Database basato su Apache HadoopModello funzionale <Map, Reduce> basato interamente sul paradigma <Key, Value>Based on: Table Row ColumnFamilyArchitettura generale e scalabile basata su schemi funzionali di Hadoop, e distribuita suHDFS Pag. 13 / 24 <nome relatore> - <e-mail> – <azienda o community>
  14. 14. Database NO-SQL: Anything else ? Sistema di storage indipendente, per grandi moli di dati, <Key, Value> structured Modello di rappresentazione dei dati astratto, basato su ROW / (Super) COLUMN FAMILY e UID.KEY VALUE COLUMN FAMILY SUPER COLUMN FAMILYUID COLUMN 1 COLUMN 2 COLUMN FAMILY 1 COLUMN FAMILY 2 COLUMN 1 COLUMN 2 COLUMN 1 Pag. 14 / 24 <nome relatore> - <e-mail> – <azienda o community>
  15. 15. Database NO-SQL: Anything else ?COLUMN : entità di base, costituita da “Nome:Valore”. I vari data types dei valori possibilisono riassunti nelle seguenti tipologie: BytesType, AsciiType, UTF8Type, LongType, LexicalUUIDType e TimeUUIDTypeColum FAMILY: entità che raggruppa una o più Column (VALUE), subordinandole a unvalore chiave (KEY)SUPER Column FAMILY: estensione maggiore della Column Family. Questa entitàsubordina una o più column family ad un valore chiave (KEY)UID: chiave assoluta della ROW composta dalle entità citate Pag. 15 / 24 <nome relatore> - <e-mail> – <azienda o community>
  16. 16. Database NO-SQL: Anything else ?ColumnFamily: “Users”KEY (UTF8Type) VALUE “Ciccio Pasticcio” Columns Name Value “email” ciccio.pasticcio@email.com “nazione” “Italia” Pag. 16 / 24 <nome relatore> - <e-mail> – <azienda o community>
  17. 17. Database NO-SQL: Anything else ?<Keyspace Name="Database"> <ColumnFamily CompareWith="UTF8Type" Name="Users"/> ...</Keyspace> Definizione della chiave della ColumnFamily chiamata “Users” Nessuna definizione del campo Value, ovvero delle possibili Column che sono presenti nella ColumnFamily Riconducibile ad un esempio di matrice “frastagliata” Pag. 17 / 24 <nome relatore> - <e-mail> – <azienda o community>
  18. 18. Database NO-SQL: Anything else ?SuperColumnFamily: “Posts”KEY (UTF8Type) VALUE “Argomento SuperColumns del giorno” Key Value “Iniziative” Columns Name Value “titolo” “Codemotion” “Spese” “...” Pag. 18 / 24 <nome relatore> - <e-mail> – <azienda o community>
  19. 19. Database NO-SQL: Anything else ? <ColumnFamily ColumnType="Super"  CompareWith="UTF8Type"  CompareSubcolumnsWith="UTF8Type"  Name="Argomento del giorno"/>     <ColumnFamily CompareWith="UTF8Type"  Name="Iniziative"/>     <ColumnFamily CompareWith="UTF8Type"  Name="Spese"/> Pag. 19 / 24 <nome relatore> - <e-mail> – <azienda o community>
  20. 20. Database NO-SQL: Anything else ?Generalità Modello E-R e SQL riconducibile in questo modelloRobustezza Controllo del risultato cercato sulle “matrici frastagliate” Replica dei datiPrestazioni La row non può superare i 2GB di dimensione Clustering Pag. 20 / 24 <nome relatore> - <e-mail> – <azienda o community>
  21. 21. Database NO-SQL: Anything else ? Anything else ? Pag. 21 / 24 <nome relatore> - <e-mail> – <azienda o community>
  22. 22. Database NO-SQL: Anything else ?NO-NAME web.application Blog/Social networking Modello: Utente Messaggio (Post) Notifica del messaggio Risposta al messaggio (Replay-Post) Pag. 22 /  <nome relatore> - <e-mail> – <azienda o community>
  23. 23. Database NO-SQL: Anything else ? Pag. 23 /  <nome relatore> - <e-mail> – <azienda o community>
  24. 24. Database NO-SQL: Anything else ? Thats All Folks !!!! Pag. 24 /  <nome relatore> - <e-mail> – <azienda o community>

×