back to basics, webinar 1: introduzione a nosql

38

Upload: mongodb

Post on 14-Apr-2017

1.738 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: Back to Basics, webinar 1: Introduzione a NoSQL
Page 2: Back to Basics, webinar 1: Introduzione a NoSQL

Code MassimoB gets you a 25% discount off the list priceEarly Bird Registration Ended May 13, 2016

Page 3: Back to Basics, webinar 1: Introduzione a NoSQL

Back to Basics 2016 : Webinar 1

Introduzione a NoSQLMassimo Brignoli

Principal Solution Architect, EMEAMongoDB

@massimobrignoli

V1.0

Page 4: Back to Basics, webinar 1: Introduzione a NoSQL

Benvenuti!

Page 5: Back to Basics, webinar 1: Introduzione a NoSQL

5

Agenda Del Corso

Date Time Webinar24 Maggio 2016 11:00 CET Introduzione a NoSQL07 Giugno 2016 11:00 CET La tua prima applicazione MongoDB21 Giugno 2016 11:00 CET Schema Design – Pensare a Documenti05 Luglio 2016 11:00 CET Indicizzazione avanzata: Indici Testuali e Geografici19 Luglio 2016 11:00 CET Introduzione all’ Aggregation Framework28 Luglio 2016 11:00 CET Messa in Esercizio

Page 6: Back to Basics, webinar 1: Introduzione a NoSQL

6

Agenda di Oggi

• Perché NoSQL• I vari tipi di database NoSQL• Vista dettagliata di MongoDB• MongoDB: Durabilità dei dati – Replica Set• MongoDB: Scalabilità – Sharding• Q&A

Page 7: Back to Basics, webinar 1: Introduzione a NoSQL

7

Relazionale

Linguaggio di Query espressivo & Indici Secondari

Consistenza Forte

Strumenti di Gestione Enterprise & Integrazioni

Page 8: Back to Basics, webinar 1: Introduzione a NoSQL

8

Il Mondo è Cambiato

Dati Rischio Tempo Costo

Page 9: Back to Basics, webinar 1: Introduzione a NoSQL

9

NoSQL

Scalabilità & Performance

24x7,Installazioni Globali

FlessibilitàLinguaggio di Query espressivo & Indici Secondari

Consistenza Forte

Strumenti di Gestione Enterprise & Integrazioni

Page 10: Back to Basics, webinar 1: Introduzione a NoSQL

10

Architettura Nexus

Scalabilità & Performance

24x7,Installazioni Global

FlessibilitàLinguaggio di Query espressivo & Indici Secondari

Consistenza Forte

Strumenti di Gestione Enterprise & Integrazioni

Page 11: Back to Basics, webinar 1: Introduzione a NoSQL

11

Tipi di Database NoSQL

• Key/Value• Column• Graph• Multi-model• Document

Page 12: Back to Basics, webinar 1: Introduzione a NoSQL

12

Key Value

• Sono un array associativo• Lookup per singola chiave• Velocissimo per ricerche su chiave singola• Pessimo per “reverse lookups”

Key Value

12345 4567.3456787

12346 { addr1 : “The Grange”, addr2: “Dublin” }

12347 “top secret password”

12358 “Shopping basket value : 24560”

12787 12345

Page 13: Back to Basics, webinar 1: Introduzione a NoSQL

13

Row Stores (RDBMS)

• Memorizza I dati allineati per righe (RDBMS tradizionali, come MySQL)• Le letture restituiscono una riga completa• Le letture che richiedono solo uno o due campi sono uno spreco

ID Name Salary Start Date

1 Joe D $24000 1/Jun/1970

2 Peter J $28000 1/Feb/1972

3 Phil G $23000 1/Jan/1973

1 Joe D $24000 1/Jun/1970 2 Peter J $28000 1/Feb/1972 3 Phil G $23000 1/Jan/1973

Page 14: Back to Basics, webinar 1: Introduzione a NoSQL

14

Come memorizza i Dati un Column Store

1 2 3

ID Name Salary Start Date

1 Joe D $24000 1/Jun/1970

2 Peter J $28000 1/Feb/1972

3 Phil G $23000 1/Jan/1973

Joe D Peter J Phil G $24000 $28000 $23000 1/Jun/1970 1/Feb/1972 1/Jan/1973

Page 15: Back to Basics, webinar 1: Introduzione a NoSQL

15

Perché è attraente?

• Una serie di ricerche consecutive può restituire una colonna un modo efficiente

• Comprimere dati simili è molto efficiente• Quindi le letture possono prendere dal disco più dati in un singola lettura• Le righe sono allineate in ordine o per rowID• Se avete bisogno di un piccolo sottinsieme di colonne non bisogna

leggere tutta la riga.• Ma:

– aggiornare e cancellare righe è molto costoso.• Modalità append-only• Meglio per l’OLAP che per l’OLTP

Page 16: Back to Basics, webinar 1: Introduzione a NoSQL

16

Database a Grafo

• Memorizza Grafi (archi e vertici)• Ad esempio Social Network• Disegnati per permettere un attraversamento

efficiente• Ottimizzati per rappresentazione connessioni• Possono essere implmentati come database key-value con

l’abilità di memorizzare links• Se il vostro caso d’uso non è un grafo, non avete bisogno di un

database a grafi!

Page 17: Back to Basics, webinar 1: Introduzione a NoSQL

17

Database Multi-Model

• Combina storage diversi e modelli di accesso diversi• Spesso sono grafi più “qualcosa altro”• Risolve il problema del “polyglot persistence” mantenendo diversi

database consistenti• E’ “the new new thing” nell’arena NoSQL• Ci si apetta che questi tipi di database abbiano maggiore

risonanza.

Page 18: Back to Basics, webinar 1: Introduzione a NoSQL

18

Database a Documenti• Non PDF, Microsoft Word o HTML• I Documenti sono strutture nidificate create usando Javascript Object Notation (JSON)

{ name : “Massimo Brignoli”,title : “Principal Solution Architect”,address : {

address1 : “Piazzale Biancamano”,cap : “20010”,citta: “Milano”

}expertise: [ “MongoDB”, “Python”, “Javascript” ],employee_number : 350

}

Page 19: Back to Basics, webinar 1: Introduzione a NoSQL

19

I Documenti sono Tipizzati

{

name : “Massimo Brignoli”,

title : “Principal Solution Architect”,

Address : {

address1 : “Piazzale Biancamano”,

cap: ”20010” }

expertise: [ “MongoDB”, “Python”, “Javascript” ],

employee_number : 350,

location : [ 53.34, -6.26 ]

}

Stringhe

Documento Nidificato

Array

Intero

Coordinate Geografiche

Page 20: Back to Basics, webinar 1: Introduzione a NoSQL

20

MongoDB Capisce I Documenti JSON

• Fin dalla primissima versione era un database nativo JSON• Interpreta e può indicizzare le sotto-strutture• Memorizza I JSON in un formato binario chiamato BSON• Efficiente per codifica e decodifica e per la trasmissione su rete• MongoDB può creare indici su qualunque campo• (Copriremo questi punti più avanti durante il corso)

Page 21: Back to Basics, webinar 1: Introduzione a NoSQL

21

Perché I Documenti?• Schema Dinamico• Eliminazione del Layer di mappatura tra Oggetti/Relazionale• Denomalizzazione implicita dei dati per massimizzare le

performance

Page 22: Back to Basics, webinar 1: Introduzione a NoSQL

22

Perché I Documenti?• Schema Dinamico• Eliminazione del Layer di mappatura tra Oggetti/Relazionale• Denomalizzazione implicita dei dati per massimizzare le

performance

Page 23: Back to Basics, webinar 1: Introduzione a NoSQL

23

MongoDB è Ricco di Funzionalità

Query Sofisticate

• Find Paul’s cars• Find everybody in London with a car

between 1970 and 1980

Grografiche • Find all of the car owners within 5km of Trafalgar Sq.

Ricerca Testuale

• Find all the cars described as having leather seats

Aggregazioni

• Calculate the average value of Paul’s car collection

Map Reduce

• What is the ownership pattern of colors by geography over time (is purple trending in China?)

Page 24: Back to Basics, webinar 1: Introduzione a NoSQL

24

Alta Affidabilità e Durabilità dei Dati – Replica Set

SecondarySecondary

Primary

Page 25: Back to Basics, webinar 1: Introduzione a NoSQL

25

Creazione di un Replica Set

SecondarySecondary

Primary

Heartbeat

Page 26: Back to Basics, webinar 1: Introduzione a NoSQL

26

Replica Set: Caduta di un Nodo

SecondarySecondary

Primary

No Heartbeat

Page 27: Back to Basics, webinar 1: Introduzione a NoSQL

27

Replica Set: Recupero

SecondarySecondary

HeartbeatAnd Election

Primary

Page 28: Back to Basics, webinar 1: Introduzione a NoSQL

28

New Replica Set – 2 Nodi

SecondaryPrimary

HeartbeatAnd New Primary

Primary

Page 29: Back to Basics, webinar 1: Introduzione a NoSQL

29

Replica Set: Ripazione del Nodo

SecondaryPrimary

Secondary

Rejoin and resync

Page 30: Back to Basics, webinar 1: Introduzione a NoSQL

30

Replica Set Stabilizzato

SecondaryPrimary

Secondary

Heartbeat

Page 31: Back to Basics, webinar 1: Introduzione a NoSQL

31

Scalabilità con lo Sharding

Shard 1 Shard 2 Shard N

Page 32: Back to Basics, webinar 1: Introduzione a NoSQL

32

Scalabilità con lo Sharding

• La chiave di Shard partiziona il contenuto• MongoDB bilancia automaticamente il cluster• Gli shard possono essere aggiunti dinamicamente al sistema vivo• Il ribilanciamento avviene in sottofondo• La Shard key è immutabile• La Shard key può direzionare le query su uno shard specifico• Le query senza una shard key vengono mandati a tutti gli shard

Page 33: Back to Basics, webinar 1: Introduzione a NoSQL

33

Scalabilità con lo ShardingMongoS MongoS

Shard 1 Shard 2 Shard N

Shard Key

Page 34: Back to Basics, webinar 1: Introduzione a NoSQL

34

Indirizzamento delle Query

• In un cluster partizionato usiamo uno strato di routing per guidare le query sugli shard corretti

• Usiamo un demone chiamato MongoS (Mongo Shard Router)• Il Demone è stateless• Possono essere eseguiti tanti MongoS quanti sono richiesti• Normalmente un MongoS per ogni app server

Page 35: Back to Basics, webinar 1: Introduzione a NoSQL

35

Sommario

• Perché esistono I NoSQL• I tipi di database NoSQL• Le funzionalità principali di MongoDB• Durabilità dei Dati in MongoDB• Scalabilità in MongoDB

Page 36: Back to Basics, webinar 1: Introduzione a NoSQL

36

Prossimo Webinar – La Tua Prima Applicazione MongoDB

• 7 Giugno May 2016 – 11:00 CET.• Registratevi se non l’avete già fatto• Imparerete come realizzare la vostra prima applicazione di

MongoDB• Creare database e collezioni• Uno sguardo alle queries• Costruire Indici• Iniziare a capire le performance• Registratevi su: http://bit.ly/1UA4BGM• Mandate feedback a [email protected]

Page 37: Back to Basics, webinar 1: Introduzione a NoSQL

Q&A

Page 38: Back to Basics, webinar 1: Introduzione a NoSQL