Apache Cassandra - Concepts et fonctionnalités

57 %
43 %
Information about Apache Cassandra - Concepts et fonctionnalités
Technology

Published on March 4, 2014

Author: pygnosis

Source: slideshare.net

Description

Apache Cassandra - Concepts et fonctionnalités, 25/02/2014

Présentation de Cassandra pour le premier évènement "Lyon Cassandra Users" (organisé par DataStax & Zenika).

* Présentation de Cassandra
* Concepts clés (Théorie & Architecture)
* Installation
* Les outils DataStax : DevCenter et OpsCenter
* Modèle de données
* Requêtes

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

Add a comment

Related presentations

Related pages

Apache Cassandra - Concepts et fonctionnalités // Speaker Deck

Présentation de Cassandra pour le premier évènement "Lyon Cassandra Users" (organisé par DataStax & Zenika). * Présentation de Cassandra * Concepts ...
Read more

Cassandra advanced data modeling // Speaker Deck

Apache Cassandra - Concepts et fonctionnalités. Feb 25, 2014 by Romain Hardouin. OpenStack en 10 minutes. Nov 12, 2013 by Romain Hardouin. Speaker ...
Read more

Introduction au NoSQL Apache CASSANDRA : installation ...

Introduction au NoSQL Apache CASSANDRA : ... des nombreux concepts utilisés dans Cassandra. ... multitude de services et de fonctionnalités pour utiliser ...
Read more

Introduction à la base de données NoSQL Cassandra

Introduction à la base de données NoSQL Apache Cassandra. Forums; ... certaines fonctionnalités ... les concepts d'isolation et d ...
Read more

Formation Apache CAMEL - axopen.com

Formation Apache Cassandra; ... de présentation des fonctionnalités et d’applications ... formation apache camel et obtenir un ...
Read more

Ingest data from Apache Cassandra, Salesforce and Data ...

... Apache Cassandra and ... Découvrez les concepts de base associés à ... Cognitive Services Ajouter des fonctionnalités d’API et humaniser ...
Read more

Cassandra (base de données) — Wikipédia

cassandra.apache.org ... avec une réplication asynchrone sans master et une faible latence pour les opérations de tous ... Fonctionnalités ...
Read more