+ All Categories
Home > Documents > Introduction to NoSQL - Chewbii.com...Databases and NoSQL Introduction to NoSQL CEDRIC Lab -Vertigo...

Introduction to NoSQL - Chewbii.com...Databases and NoSQL Introduction to NoSQL CEDRIC Lab -Vertigo...

Date post: 20-May-2020
Category:
Upload: others
View: 37 times
Download: 1 times
Share this document with a friend
21
Introduction to NoSQL N. Travers CEDRIC Lab - Vertigo Introduction to NoSQL Nicolas Travers CNAM – France Introduction to NoSQL N. Travers CEDRIC Lab - Vertigo Schedule & Organization Introduction to NoSQL databases 3V, ACID vs BASE, families, CAP theorem, JSon Presentation of MongoDB Language, distribution, replication, application Practice Works on MongoDB Queries : find + aggregate Material available at: http://www.chewbii.com/ESSEC
Transcript

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Introduction to NoSQL

Nicolas TraversCNAM – France

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Schedule&Organization• IntroductiontoNoSQL databases▫ 3V,ACIDvsBASE,families,CAPtheorem,JSon• PresentationofMongoDB▫ Language,distribution,replication,application• PracticeWorks onMongoDB▫ Queries:find+aggregate

• Materialavailableat:http://www.chewbii.com/ESSEC

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

DBMSvsNoSQL

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Context• ApplicationsandWebplatforms▫ ExponentialgrowthoftheamountofData(x2/2years)▫ Unprecedent managementofthisvolume

� Needtodistributebothcomputationanddata� Hugenumberofservers� Heterogeneousdata,maybecomplexandoftenlinked

• Ex:▫ Google,Amazon,Facebook▫ GoogleDataCenter :

� 5000servers/datacenter,~1Mdeservers▫ Facebook:

� 1PetaBytes ofdata

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo 8

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

BI:Traditional methods

9

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Decisional vs3VIncompatibleclassical approach with the3V ofBigData :

• Volume:Designed tostoreGB/TBofdata,butneedsPB(maybe EB).

• Variety:Heterogeneous andvariabletypesofdata,text,semi-structured

• Velocity:Dataareproduced moreandmorequickly

10

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

DBMS:Limitations• Standarddatabases▫ Functionalities� Joinsbetweentables� Complexqueries� Strongcoherencyofdata

ØRequirementsinadistributedcontext▫ Linksbetweenentities=>sameserver▫ ++links=>difficultiesfordataorganization

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

RDBMSvsDistribution

• ACID propertiesfortransactions• Atomicity:integralcompletionornone• Consistency:consistentatstartandend• Isolation:nocommunicationbetweenthem

Durability:anoperationcannotbereversed

• Systèmesdistribués:modèleBASE• Basically Available :

� Anyrequest=>Ananswer� Eveninachangingstate

• Soft-state :

� OppositetoDurability.� System’sstate(serversordata)couldchangeovertime(withoutanyupdate)

• Eventually consistent :� Withtime,datacanbeconsistent� Updateshavetobepropagated

12

• ACIDvsBASE

0 141 2 3 4 5 6 7 8 9 10 11 12 13

ACID BASEAtomicityConsistencyIsolationDurability

Basically AvailableSoft-StateEventually Consistent

NoSQLSGBDR VS

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Solution:NoSQL• NoSQL :NotOnly SQL▫ Newdatastorage/managementapproach▫ Scalesupthesystem(throughdistribution)▫ Complexmetadatamanagement� Noschema

Ø DonotsubstituteDBMS,dedicatedto:▫ Veryhugevolumeofdata(PetaBytes)▫ Veryshortresponsetime▫ Consistencyisnotmandatory

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

DatabasesandNoSQL

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

NoSQL DB:Characteristics• Norelations=>Collections▫ Nofixstructures(naynone)• Complexdata(e.g.documents)▫ Objects,nesting,arrays• Datadistribution▫ Highparallelization(Map/Reduce)• Datareplication▫ Disponibility vsConsistency(notransactions)▫ Fewwrites,manyreads

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Sharding :Scalability• Datablocks aredistributedinaclusterofservers• Horizontalpartitioning• 3typesoftechnics:

1. Resourceallocationbased:HDFS� ++Faulttoleranceandmassivecomputations

2. Tree-basedstructure:Clusteredindex(sort)� ++Physicaldataclusteringanddynamicity

3. Hash-basedstructure:ConsistentHashing� ++elasticityandself-management

16

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

SeveralNoSQL systemstype lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur

vacation

Paris Gif-sur-Yvette

siège social siège social siège social

vacation employeur

vacation

vacation

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Key-Valuestores Column oriented

DocumentOriented Graphoriented

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

I- NoSQL&Key-Valuestore• Similartoadistributed“HashMap”• Key+Value▫ Nofixedschemaonvalues(strings,object,integer,binaries…)• Drawbacks:▫ Nostructuresnortyping▫ Nostructured-basedqueries

Ø DynamoDB (Amazon),Redis (VMWare),Voldemort (LinkedIn)

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

I- NoSQL&Key-Valuestore

19

Example

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Relationnel

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

I- NoSQL&Key-Valuestore

• CRUD▫ CREATE(clé,valeur)

� CREATE("Nicolas","type:'prof',lieu:'CNAM',spec:'BDD,NoSQL',interets:'BZH,Star Wars'")à OK▫ READ(clé)

� READ("Nicolas")à "type:'prof',lieu:'CNAM',spec:'BDD,NoSQL',interets:'BZH,Star Wars'"▫ UPDATE(clé,valeur)

� UPDATE("Nicolas","type:'prof',lieu:'CNAM,CS',spec:'BDD,NoSQL'")à OK▫ DELETE(clé)

� DELETE("Nicolas")à OK

20

Queries

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Nicolas Régis Luc Céline

type: proflieu: CNAM

spec: BDD,NoSQLintérêts: BZH, Star Wars

lieu: OCspec: Machine Learning, devintérêts: escalade, nouilles

chinoises

type: resp formation OClieu: OC

spec: formation, audiovisuel

type: proflieu: CentraleSupelec

spec: Ontologie, logique formelle, visualisation

clés

valeurs

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Efficiency Easy tosetup

I- NoSQL&Key-Valuestore

21

solutions

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

II– NoSQL &Columns• Column-basedstorage▫ DBMS:tuples(lines)• Easytoinsertanewcolumn▫ Dynamicschema

ØBigTable/Hbase (Google),Cassandra(Facebook&Apache),SimpleDB(Amazon)

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

II- NoSQL&Columns

23

example

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

II- NoSQL&Columns

• Column-oriented queries▫ Howmany professors (type) areatCentraleSupelec (lieu)

24

Queries

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Aggregates Correlations

II- NoSQL&Columns

25

solutions

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

III– NoSQL &Documents• Basedonthekey-valuestore▫ Addsemi-structureddata(JSon/XML)• HTTPAPI▫ MorecomplexthanCRUD

ØMongoDB,CouchDB (Apache),RavenDB,Terrastore

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

III- NoSQL&Documents

27

example type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

Nicolas Régis Luc Céline

{ "_id": "Nicolas", "type": "prof", "lieu": { "nom": "CNAM", "adresse":"rue saint martin", "ville": "Paris" }, "spec": ["BDD","NoSQL"], "intérêts": ["BZH", "Star Wars"]}

clés

documents

{ "_id": "Régis", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["Machine Learning", "dev"], "intérêts": ["escalade", "nouilles"]}

{ "_id": "Luc", "type": "resp formation OC", "lieu": { "nom": "OC", "adresse":"rue cité Paris", "ville": "Paris" }, "spec": ["formation", "audiovisuelle"]}

{ "_id": "Céline", "type": "prof", "lieu": { "nom": "CentraleSupelec", "adresse":"rue Joliot-Cury", "ville": "Gif-sur-Yvette » }, "spec": ["Ontologie", "Logique formelle", "Visualisation"]}

III- NoSQL&Documents

• Manipulationsondocumentscontent▫ Establishment (lieu.nom) ofprofessors (type) specialized inDB(in spec)

28

Queries

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Richness ofqueries Manageobjects

III- NoSQL&Documents

29

solutions

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

IV– NoSQL &Graph• Storage:nodes,relationsandproperties▫ GraphTheory▫ Pathqueryingonthegraph▫ Dataareloadedondemand▫ Difficultiesformodeling

ØNeo4j,OrientDB (Apache),FlockDB (Twitter)

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

type lieu spec intérêts

prof CNAM BDD, NoSQL BZH, Star Wars

OC Machine Learning, Dev escalade, nouilles chinoises

resp formation OC OC formation, audiovisuel

prof CentraleSupelec Ontologie, logique formelle, visualisation

id

Nicolas

Régis

Luc

Céline

type

prof

resp formation

OC

prof

id

Nicolas

Luc

Céline

lieu

CNAM

OC

OC

CentraleSupelec

id

Nicolas

Régis

Luc

Céline

spec

BDD

Machine Learning

formation

Ontologie

id

Nicolas

Régis

Luc

Céline

NoSQLNicolas

Dev

Régis

audiovisuelLuc

logique formelle

visualisation

Céline

Céline

intérêts

BZH

escalade

id

Nicolas

Régis

Star WarsNicolas

nouilles chinoisesRégis

Stockage orienté lignes Stockage orienté colonnes

Nicolas RégisLuc CélineNicolas

type:profRégis

Luctype:resp formation

Célinetype:prof

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur employeur

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur

vacation

vacation employeur

vacation

vacation

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur

vacation

Paris Gif-sur-Yvette

vacation employeur

vacation

vacation

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur

vacation

Paris Gif-sur-Yvette

siège social siège social siège social

vacation employeur

vacation

vacation

IV- NoSQL&Graph

31

example

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Nicolastype:prof

RégisLuc

type:resp formation

Célinetype:prof

CNAMadresse:…

OCadresse:…

CentraleSupélec

employeur

employeur

employeur

vacation

Paris Gif-sur-Yvette

siège social siège social siège social

vacation employeur

vacation

vacation

IV- NoSQL&Graph

• Patternqueries▫ Persons giving vacationsat Parisand Gif-sur-Yvette

32

queries

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

FlockDB

Network Recommandation

IV- NoSQL&Graph

33

solutions

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Brewer’s CAP Theorem (2000)• 3mainpropertiesfordistributedmanagement1. Consistency:

� Adatahavethesamevalueatthesametime(coherency)2. Availability:

� Evenifaserverisdown,dataisavailable3. PartitionTolerance:

� Evenifthesystemispartitioned,aquerymusthaveananswer(unlessforglobalfailures)

Ø Theorem:Adistributed,networkedsystem

canhaveonlytwo ofthesethreeproperties.

ConsistencyCohérence

AvailabilityDisponibilité

PartitionToleranceDistribution

CA AP

CP

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v1 v1 v1 v1v1

écriture

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v1 v1 v1v1

L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v1 v1 v1v1

v2 v2L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v1 v1 v1v1

L1écriture L2 écriture

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v2v1 v1 v1v1

L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v2v1 v1 v1v1

L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

v2v1 v2v1 v1 v1v1

attenteL1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

v2v1 v2v1 v2v1 v1v1

attente

ack

L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

v2v1 v2v1 v2v1 v1v1

v2 v2L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

v2v1 v2v1 v2v1 v1v1

L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

écriture

v2v1 v2v1 v2v1 v2v1 v1

L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

L1écriture L2

v2v1 v2v1 v2v1 v2v1 v1

v2 v1L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

L1écriture L2

asynchrone

v2v1 v2v1 v2v1 v2v1 v1

v2 v1L1écriture L2 L1écriture L2

CACohérence + Disponibilité

CPCohérence + Distribution

APDisponibilité + Distribution

synchrone

L1écriture L2

asynchrone

v2v1 v2v1 v2v1 v2v1 v2v1

v2 v1

“CAPTheorem”

36

illustration

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

OracleMySQL

SQLServer

DB2PostgreSQL

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

RedisMemcached

CosmosDB

SimpleDB OracleMySQL

SQLServer

DB2PostgreSQL

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

RedisMemcached

CosmosDB

SimpleDB

BigTableHBase

ElasticsearchSpark

OracleMySQL

SQLServer

DB2PostgreSQL

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

MongoDB

RedisMemcached

CosmosDB

SimpleDB

BigTableHBase

ElasticsearchSpark

OracleMySQL

SQLServer

DB2PostgreSQL

CouchBase DynamoDB

Cassandra

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

MongoDB

RedisMemcached

CosmosDB

SimpleDB

BigTableHBase

ElasticsearchSpark

OracleMySQL

SQLServer

DB2PostgreSQL

CouchBase DynamoDB

Cassandra

Neo4jOrientDBFlockDB

Modèle

Availability(Disponibilité)

Consistency(Cohérence)

Partition tolerance(Distribution)

RelationnelOrienté Clé-ValeurOrienté ColonneOrienté DocumentOrienté Graphe

MongoDB*

RedisMemcached*

CosmosDB*

SimpleDB*

BigTableHBase

ElasticsearchSpark

OracleMySQL

SQLServer

DB2PostgreSQL

CouchBase*DynamoDB*

Cassandra*

Neo4jOrientDBFlockDB

* Possibilité de changer le mode de cohérence

Cohérence <-> Disponibilité

Modèle

“CAPTheorem”

37

TriangleofCAP

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

• InitiallyXMLusedforcomplexinternetcommunications(WebServices)▫ Tooverbose• JSON (JavaScript Object Notation)▫ Lightweight, text-oriented, language independent▫ Used for several Web services (Google API, Twitter API)

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

JSon : Structures• Key + Value▫ “lastname” : “Travers”▫ Keys with quotations• Objects/documents▫ Collection of key/values▫ { “lastname” : “Travers”,

“firstname” : “Nicolas”,“kind” : 1}

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Data types• Scalar : String, Integer, float, boolean, null…• List : arrays [ … ]• Documents : objetcs {…}

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

Arrays• No typing inside arrays▫ “lessons” : [“SQL”, 1, 4.2, null, “NoSQL”]• Can nest documents▫ “doc” : [ {“test” : 1},

{“test” : {“nesting” : 1.0}},{“key” : “text”, “value” : null}]

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

JSon : Identifiers• Key « _id » commonly used to identify documents▫ Overwrite already stored ids▫ Can be automaticaly generated

� Ex MongoDB : "_id" : ObjectId(1234567890)

Introduction to NoSQL

N. TraversCEDRIC Lab - Vertigo

JSon : complete example{

“_id” : 1234,“lastname” : “Travers”, “firstname” : “Nicolas”,“work” : {

“company” : “Cnam”,“location” : {

“street” : “2 rue conté”,“city” : “Paris”,“zip” : 75141

},},“fields” : [ “DB” , “DB tuning”, “XML”, “NoSQL”, “IR” ]

}


Recommended