SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
Apache Cassandra
Concepts et fonctionnalités

Romain Hardouin

Lyon Cassandra Users
Plan
Présentation de Cassandra
Concepts clés
Installation
Les outils DataStax : DevCenter et OpsCenter
Modèle de données
Requêtes
Présentation de Cassandra
“Semblable à l'Aphrodite d'or” – Homère
NoSQL*
* ≠ Big Data

Lyon Cassandra Users
Big Data*
* 3V = Volume, Vélocité, Variété

Lyon Cassandra Users
Cassandra
●

SGBD NoSQL orienté colonnes

●

Distribué : P2P

●

Haute disponibilité : no SPOF

●

Massivement parallèle

●

Scalabilité linéaire

●

Multi data centers

●

Réplication native

●

Open source : Facebook → Apache
What were the top reasons for going with Cassandra?
●

No single points of failure

●

Highly scalable writes (we have highly variable write traffic)

●

A healthy and productive open source community
– Ryan King

Lyon Cassandra Users
Qui l'utilise ?
Qui l'utilise ?
Concepts clés
Architecture
Cluster
●

Noeud = Instance de Cassandra

●

Cluster = Ring = Ensemble des noeuds
Théoreme CAP
●

Seuls deux des trois sont réalisables
Haute disponibilité

A

C

Cohérence

@eric_brewer

P Tolérance aux
partitionnements
Théoreme CAP
●

En pratique
–

Continuum

–

Consistency Level (CL)

–

A

Latence !

C

P
Cohérence in fine
●
●

●

Eventually consistency
A un instant T, la donnée la plus récente n'est
pas présente partout
Pas de suppression instantanée
–

Tombstone
Cohérence paramétrable
●

Combien de répliques écrites/lues avant
aquittement
●
●
●

–

ONE, QUORUM, ALL
ANY
SERIAL

Datacenter aware :
●
●

LOCAL_ONE, LOCAL_QUORUM
EACH_QUORUM
Gossip
●

Protocole epidémique de communication P2P

●

Echange d'informations chaque seconde

●

Réseau overlay maillé complet
Partitioner
●

Token = f
–
–

●

Murmur3, MD5
BOP

Token => noeud

(row)

Lyon
Venise

pays gentilé
FR

Lyonnais

pays gentilé
IT

Vénitiens
Facteur de réplication
●

Nombre d'occurrences d'une donnée
–

Replication Factor (RF)

RF = 2
Réplication
●

Replica placement strategy
–

NetworkTopologyStrategy
Lyon

RF = 2

pays gentilé
FR

Lyonnais
Snitch
●

Comment connaitre la topologie du réseau ?
–

PropertyFile, GossipingPropertyFile

–

EC2(MultiRegion)

–

RackInferring

10 . 1 . 2 . 3
DC

Noeud
Rack
Coordinator
●

P2P => on contacte n'importe quel noeud

●

Noeud contacté = coordinateur

●

Le coordinateur contacte les répliques (proxy)

Client
Ecriture
●

Exemple avec RF = 2, CL = ONE

Client
Repair
●

Hinted-handoff
–

●

Read repair
–

●

Fenêtre paramétrable
Probabilité paramétrable

Anti-entropy repair
–

Indispensable

–

Généralement hebdomadaire
Installation
Installation
●

Linux
–

Production

●

Windows

●

Mac OS

●

Ne pas mixer les OS
Java
●

Oracle JDK
–
–

●

Cassandra 1 : v6
Cassandra 2 : v7

Production
–

Java Native Access (JNA)
Debian
●

Apache
–

deb http://www.apache.org/dist/cassandra/debian V main
●

●

V = 12x, 20x

DataStax
–

deb http://debian.datastax.com/community stable main
●
●
●

Cassandra, DevCenter, OpsCenter, DSC
apt-get install cassandra → v2.0
apt-get install cassandra=1.2.15
RedHat / CentOS
●

DataStax
–

http://rpm.datastax.com/community
●

Cassandra, DevCenter, OpsCenter, DSC
Les outils DataStax
DevCenter et OpsCenter
DevCenter
OpsCenter
OpsCenter
Modèle de données
SGBD orienté colonnes
Column
●

Identifiée par son nom

●

Valeur et nom typés
–

blob, int, text, timestamp, timeuuid, uuid, ...

≤ 9 MO conseillé
Max 2 GO

Nom
Valeur
Timestamp

Résout les conflits => NTP, VMWare tools
Column
●

Time to live
–

Ne remplace pas une purge métier

Nom
Valeur
Timestamp
TTL
Column
●

Compteur distribué
–

Type spécial

Nom
Valeur
Timestamp
Column
●

Nom porteur d'informations
–

Colonne composite

–

Intérêt : requêtage

“ rhone:* ”
rhone:bron

rhone:lyon

rhone:villeurbanne

Valeur
Timestamp

Valeur
Timestamp

Valeur
Timestamp
Row
●

Identifiée par sa clé (typée)

●

Contient des colonnes, triées par nom

●

Une ligne est stockée sur un seul noeud *
2.109
Nom colonne 1 ... N

Clé

Valeur colonne 1
Timestamp

* hors réplication
Column Family (CF)
●

Regroupe les lignes et donc les colonnes

●

Les lignes ne sont pas triées *

●

Arena allocation : ≤ 1000 CF
Nom CF
Colonne 1

Clé 1

... N

Valeur 1
Timestamp

...

...
Colonne 1

Clé N

... N

Valeur 1
Timestamp

* sauf si le ByteOrderedPartitioner est utilisé
Keyspace
●

Regroupe les column families

●

Peut coûteux en mémoire
Nom keyspace 1
Nom CF N

Nom CF 1

Colonne 1 ... N

Colonne 1 ... N

Clé 1

Clé 1

Valeur 1

Timestamp

Timestamp
Colonne 1 ... N

...

Valeur 1
Timestamp

Valeur 1

...

Colonne 1 ... N

...

Valeur 1
Timestamp
Keyspace
●

Exemple
–

Timestamp non représentés
meetup.com
members

events
30a9e2d2
...

31369e8e

event_name

event_date

Cassandra

2014-02-25

...

...

event_name

event_date

Hadoop

2014-03-13

bob

firstname

...

Robert

...

...

bill

firstname
William

...
Requêtes
SELECT * FROM big_data
NoSQL
●

Les applications doivent en faire plus
–
–

●

Moins de fonctionnalités que les SGBDR
Dénormalisation

Pas de transactions
–

V1.0 : Row level isolation

–

v2.0 : Lightweight transactions, CAS

●

Pas de jointures

●

Pas de «GROUP BY»
Par où commencer
●

Penser “requête”
–
–

●

Critères de recherches
Tris

Penser “alimentation”
–

Comment les données arrivent ?

–

Données brutes ?
Penser "requêtes"
●

Comment faire sans jointures ?
–
–

●

Peu de données : 2 requêtes + filtre mémoire
Big data : autant de Column Family que de requêtes

Exemple :
–

Rechercher les meetup d'une ville

–

SELECT * FROM events WHERE city = 'Lyon'

–

Column Family "events by city"
"events by city"

TimeUUID

events_by_city
lyon

31369e8e

... 30a9e2d2

<valueless> ... <valueless>

Valueless pattern

events
30a9e2d2
...

31369e8e

event_name

event_date

Cassandra

2014-02-25

...

...

event_name

event_date

Hadoop

2014-03-13
Penser "requêtes"
●

Comment faire sans aggregation ?
–

Peu de données : travail en mémoire

–

Big data : Hadoop, Hive, Pig, etc.
Penser "alimentation"
Exemple : séries temporelles => wide rows
–

Données financières
●

–

Actions, produits dérivés, etc.

Données brutes
●

Capteurs, satellites, etc.
sensors
Sensor_1:<date>

e598170e
<blob>

e53a9da4

...

e408c24e

<blob>

...

<blob>

100 mesures / s => 8 640 000 colonnes
CQL
●

Simplifie l'utilisation
–

●

cqlsh, DevCenter

CQL 3
–

Cassandra >= 1.2

CQL

Implémentation
CQL
CREATE TABLE members (
username text,
firstname text,
email list<text>,
PRIMARY KEY (username)
);

members
bob

firstname

...

Robert
...

...

bill

...

firstname

...

William

INSERT INTO members (username, firstname,
email)
VALUES ('bob', 'Robert',
['bob@gmail.com', 'bob@yahoo.fr']
);
Référence
DataStax : datastax.com
www.datastax.com/docs

Interview Ryan King (Twitter) :
http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king

Contenu connexe

Tendances

T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
infcom
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
Jean-Marc Dupont
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
Ismahen Traya
 

Tendances (20)

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFErapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
 
Rapport data-mining
Rapport data-miningRapport data-mining
Rapport data-mining
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Big data
Big dataBig data
Big data
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Base des données réparties
Base des données répartiesBase des données réparties
Base des données réparties
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 

En vedette

Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
Romain Couturier
 
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
alain Clapaud
 
French IGCSE Oral Area A : Home Life & School
French IGCSE Oral Area A : Home Life & SchoolFrench IGCSE Oral Area A : Home Life & School
French IGCSE Oral Area A : Home Life & School
David Ash
 
Tour du monde
Tour du mondeTour du monde
Tour du monde
guimera
 
Brulures caustiques oesophage
Brulures caustiques oesophageBrulures caustiques oesophage
Brulures caustiques oesophage
Hana Hanouna
 

En vedette (20)

Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
 
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
Statistiques, indicateurs, performance et qualité : prendre la mesure de la b...
 
Atelier veille et prospection en btob nouvelles techniques - 14112013 - dif...
Atelier   veille et prospection en btob nouvelles techniques - 14112013 - dif...Atelier   veille et prospection en btob nouvelles techniques - 14112013 - dif...
Atelier veille et prospection en btob nouvelles techniques - 14112013 - dif...
 
SMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-TardSMMW // Cas Marketel - Alimentation Couche-Tard
SMMW // Cas Marketel - Alimentation Couche-Tard
 
Les bases de Scrum
Les bases de ScrumLes bases de Scrum
Les bases de Scrum
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et Eclipse
 
Atelier Isidore du colloque des Industries Numériques et de la Santé: "m-sant...
Atelier Isidore du colloque des Industries Numériques et de la Santé: "m-sant...Atelier Isidore du colloque des Industries Numériques et de la Santé: "m-sant...
Atelier Isidore du colloque des Industries Numériques et de la Santé: "m-sant...
 
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
Baromètre Converteo sur l’efficacité des moteurs de recherche interne - Etude...
 
La féodalité en Europe
La féodalité en EuropeLa féodalité en Europe
La féodalité en Europe
 
French IGCSE Oral Area A : Home Life & School
French IGCSE Oral Area A : Home Life & SchoolFrench IGCSE Oral Area A : Home Life & School
French IGCSE Oral Area A : Home Life & School
 
Modelisation et maquettage 2015
Modelisation et maquettage 2015Modelisation et maquettage 2015
Modelisation et maquettage 2015
 
Certification nationale A2-B1 d'allemand session 2016
Certification nationale A2-B1 d'allemand session 2016Certification nationale A2-B1 d'allemand session 2016
Certification nationale A2-B1 d'allemand session 2016
 
Panorama 2013 du Business Process Management : Le BPM en marche
Panorama 2013 du Business Process Management : Le BPM en marchePanorama 2013 du Business Process Management : Le BPM en marche
Panorama 2013 du Business Process Management : Le BPM en marche
 
Matinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, MiraklMatinée marketplace HiPay, Mirakl
Matinée marketplace HiPay, Mirakl
 
Rencontres régionales HAS 2012 (Lille) - Chirurgie ambulatoire, vecteur de qu...
Rencontres régionales HAS 2012 (Lille) - Chirurgie ambulatoire, vecteur de qu...Rencontres régionales HAS 2012 (Lille) - Chirurgie ambulatoire, vecteur de qu...
Rencontres régionales HAS 2012 (Lille) - Chirurgie ambulatoire, vecteur de qu...
 
Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.
 
Tour du monde
Tour du mondeTour du monde
Tour du monde
 
Brulures caustiques oesophage
Brulures caustiques oesophageBrulures caustiques oesophage
Brulures caustiques oesophage
 
Une vision des transformations de l’EAD par Éric Bruillard, STEF
Une vision des transformations de l’EAD par Éric Bruillard, STEFUne vision des transformations de l’EAD par Éric Bruillard, STEF
Une vision des transformations de l’EAD par Éric Bruillard, STEF
 
What I Carry: 10 Tools for Success
What I Carry: 10 Tools for SuccessWhat I Carry: 10 Tools for Success
What I Carry: 10 Tools for Success
 

Similaire à Apache Cassandra - Concepts et fonctionnalités

Similaire à Apache Cassandra - Concepts et fonctionnalités (20)

BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...
BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...
BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
 
Le futur d'apache cassandra
Le futur d'apache cassandraLe futur d'apache cassandra
Le futur d'apache cassandra
 
Xebicon2019 m icroservices
Xebicon2019   m icroservicesXebicon2019   m icroservices
Xebicon2019 m icroservices
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Riak introduction
Riak introductionRiak introduction
Riak introduction
 
Apache kafka big data track
Apache kafka   big data trackApache kafka   big data track
Apache kafka big data track
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Meetup PM2 @delicious-insights
Meetup PM2 @delicious-insightsMeetup PM2 @delicious-insights
Meetup PM2 @delicious-insights
 
REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)
 
3 Microsoft Advanced Threat Analytics - Genève
3   Microsoft Advanced Threat Analytics - Genève3   Microsoft Advanced Threat Analytics - Genève
3 Microsoft Advanced Threat Analytics - Genève
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
LyonJUG-2023-v1.0.pdf
LyonJUG-2023-v1.0.pdfLyonJUG-2023-v1.0.pdf
LyonJUG-2023-v1.0.pdf
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAP
 
Mariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDCMariadb pour les developpeurs - OSDC
Mariadb pour les developpeurs - OSDC
 

Apache Cassandra - Concepts et fonctionnalités