SlideShare une entreprise Scribd logo
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

PDF
Les BD NoSQL
PDF
Architectures distribuées
PDF
BigData_Chp5: Putting it all together
PDF
Introduction à Cassandra - campus plex
PDF
BigData_Chp4: NOSQL
PDF
Cours Big Data Chap2
PPTX
Presentation cassandra
PDF
BigData_TP4 : Cassandra
Les BD NoSQL
Architectures distribuées
BigData_Chp5: Putting it all together
Introduction à Cassandra - campus plex
BigData_Chp4: NOSQL
Cours Big Data Chap2
Presentation cassandra
BigData_TP4 : Cassandra

Tendances (20)

PPTX
Introduction au big data
PDF
Microservices avec Spring Cloud
PDF
Une introduction à HBase
PPTX
Les Base de Données NOSQL
PDF
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
PDF
Chapitre 2 hadoop
PDF
eServices-Tp1: Web Services
PDF
BigData_TP3 : Spark
PDF
BigData_Chp3: Data Processing
PPTX
Architectures 3-tiers (Web)
PDF
BigData_TP2: Design Patterns dans Hadoop
PDF
BigData_TP1: Initiation à Hadoop et Map-Reduce
PDF
Une Introduction à Hadoop
PDF
Big Data, Hadoop & Spark
PDF
Support de cours Spring M.youssfi
PDF
Intégration des données avec Talend ETL
PDF
Hadoop Hbase - Introduction
PDF
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
PDF
Tadx - Présentation Conteneurisation
PDF
Lab2-DB-Mongodb
Introduction au big data
Microservices avec Spring Cloud
Une introduction à HBase
Les Base de Données NOSQL
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Chapitre 2 hadoop
eServices-Tp1: Web Services
BigData_TP3 : Spark
BigData_Chp3: Data Processing
Architectures 3-tiers (Web)
BigData_TP2: Design Patterns dans Hadoop
BigData_TP1: Initiation à Hadoop et Map-Reduce
Une Introduction à Hadoop
Big Data, Hadoop & Spark
Support de cours Spring M.youssfi
Intégration des données avec Talend ETL
Hadoop Hbase - Introduction
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Tadx - Présentation Conteneurisation
Lab2-DB-Mongodb
Publicité

En vedette (20)

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

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

PPTX
Webinar Degetel DataStax
PPTX
noSQL
PPTX
Xebicon2019 m icroservices
PDF
Le futur d'apache cassandra
PPTX
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
PDF
4 ans de Duchess France : Cassandra 2.0
PDF
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
PDF
Exemple d'IOT et ML avec Android, Cassandra et Spark
PDF
Architecture Big Data open source S.M.A.C.K
PPTX
DataStax et Cassandra dans Azure au Microsoft Techdays
PDF
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
PDF
Snowcamp 2025 - Une architecture qui ne déraille pas
PPTX
result_b0XKKUdgN60FJduy1eRpdesfytres.pptx
PDF
Introduction à Cassandra
PPTX
Stats web avec Hive chez Scoop.it
PDF
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
PDF
Introduction à Cassandra
PDF
Database/ Bases de données
PDF
BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...
PPTX
Apache cassandra introduction
Webinar Degetel DataStax
noSQL
Xebicon2019 m icroservices
Le futur d'apache cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
4 ans de Duchess France : Cassandra 2.0
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Exemple d'IOT et ML avec Android, Cassandra et Spark
Architecture Big Data open source S.M.A.C.K
DataStax et Cassandra dans Azure au Microsoft Techdays
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Snowcamp 2025 - Une architecture qui ne déraille pas
result_b0XKKUdgN60FJduy1eRpdesfytres.pptx
Introduction à Cassandra
Stats web avec Hive chez Scoop.it
Stockage et analyse temps réel d'événements avec Riak chez Booking.com
Introduction à Cassandra
Database/ Bases de données
BigData Paris 2022 - Innovations récentes et futures autour du NoSQL Apache ...
Apache cassandra introduction

Dernier (7)

PDF
FORMATION EN Programmation En Langage C.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
Modems expliqués- votre passerelle vers Internet.pdf
PDF
presentation_with_intro_compressee IEEE EPS France
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
FORMATION EN Programmation En Langage C.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
Modems expliqués- votre passerelle vers Internet.pdf
presentation_with_intro_compressee IEEE EPS France
Presentation_Securite_Reseaux_Bac+2.pptx
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Tendances tech 2025 - SFEIR & WENVISION.pdf

Apache Cassandra - Concepts et fonctionnalités