Skip to content

Latest commit

 

History

History
234 lines (159 loc) · 9.1 KB

20180613_Softeam_Datastax-Cassandra.adoc

File metadata and controls

234 lines (159 loc) · 9.1 KB

12@13 : DataStax Cassandra

Présenté par l’équipe DataStax France : Julien MICHEL, Solution Engineer ([email protected]), et Jérôme RUIZ Regional Channel Director ([email protected])

Abstract

Avez-vous toujours eu envie d’approfondir vos connaissances Big Data ?

Venez à notre deuxième 12@13 de la série sur le NoSQL, ce nouveau type de base de données adaptées aux problématiques Big Data !

Nous recevons l’équipe de DataStax, qui nous fera une vue d’ensemble de Cassandra (base NoSQL de type colonne) et de DSE, la solution enterprise qui intègre Cassandra aux frameworks Spark (Analytics), SOLR (Search) et TinkerPop (Graph).

Et si vous voulez aller plus loin, rejoignez l’initiative Big Data - Datastax chez Softeam, venez le 13 juin pour plus d’informations !

Etait offert durant le MeetUp l’édition de poche "Designing a Distributed Cloud Database for dummies"

20180613 datastax cassandra 10

Notes

20180613 datastax cassandra 01
The New Database Market
20180613 datastax cassandra 02
The DSE (DataStax Enterprise) platform
  • Suite à un rachat Cassandra gère maintenant les graphes

  • Cassandra impose un certain modèle de données

  • Le principal rival de DataStax Cassandra est Cassandra OpenSource

Qui utilise déjà Cassandra ?

  • Apple pour les notions de scalibilité de la plateforme

  • Netflix pour les qualités de résilience (Chaos Monkey)

  • Spotify pour la BDD distribuée (facteur de réplication) et le zero data loss

Cassandra Use Cases

  • MDM

  • IoT and Time Series

  • Personalization and Recommendation

  • Fraud Detection

  • List Management

  • Messaging

  • Inventory Management

  • Authentication / Sessions → exemple, le PlayStation Network

20180613 datastax cassandra 03

Apache Cassandra characteristics

20180613 datastax cassandra 04
  • Cassandra a été créé en s’inspirant de Google Big Table (distributed) et Amazon Dynamo (master-less)

  • est faite pour perdre des noeuds

Les 2 principaux critères pour estimer le nombre de noeuds à avoir dans son cluster :

  • Nombre de requêtes / sec

  • volume de données

→ Voir le benchmark de Netflix

1*r2pJJZxKNktYmRN5mi5tOA

Apache Cassandra :

  • est master-less (contrairement à MongoDB par exemple, qui est master / slave)

  • read/write to any node : tous les noeuds sont identiques, et peuvent accepter lecture et écriture

  • configurable Data Replication

  • Préco par défaut de Cassandra : facteur de réplication de 3

  • Cassandra est multi-DC (Data Center) : active-active avec geo-replication

20180613 datastax cassandra 05
Gestion du multi-DC

→ Pour info, si on active l’analytics sur un noeud, il faut l’activer sur tous les noeuds du DC.

Consistence dans Cassandra

  • Eventually Consistent (et non strongly consistent)

    📎
    Pour une bonne comparaison d’Eventually Consistent vs Strongly Consistent, voir ce post du blog de Hackernoon.
  • 3 niveaux de cohérence :

    • ONE : j’attends d’uniquement 1 noeud

    • QUORUM : j’attends la majorité des noeuds

    • ALL : je dois avoir la réponse de tous les noeuds

    → Les niveaux de cohérence se configurent en lecture ET en écriture.

20180613 datastax cassandra 06
Write ONE, read ALL
20180613 datastax cassandra 07

Les modèles de cohérence les plus fréquents :

  • ONE Read + One Write

  • QUORUM Read + QUORUM Write

Langage de requêtage : Cassandra Query Language (CQL)

  • pas un langage relationnel (Cassandra n’est PAS une base relationnelle)

  • pas de proc stock

📎
Cassandra : BDD NoSQL de type Wide Column Stores

Cassandra est une base NoSQL de type "Wide Column Stores".
Pour des détais précis, je vous conseille d’aller regarder la définition sur l’excellent site DB-engines.

Pour résumer simplement les choses : Dans Cassandra, les colonnes sont persistées en fonction d’une clé de partition.
On pourrait le voir comme un hybride entre une base orientée colonne et un key-value store.

20180613 datastax cassandra 08

DataStax platform

  • DSE = DataStax Enterprise, la plateforme unifiée de DataStax.

  • Plateforme unifiée pour graphe, batch analytics, indexing & search, streaming analytics

⚠️
Cassandra n’a pas pour vocation de concurrencer tous les types de BDD (Cassandra ne concurrence pas Hadoop par exemple)
  • DataStax OpsCenter

    • Visual, browser-based user interface

    • Secure role based access control

    • Version 6 : ajout du NodeSync
      → fait que le repair devient inutile dans 99% des cas

📎
Preco de base Cassandra : 1 To / noeud
Principalement pour éviter le streaming d’un trop gros volume de data lors de la chute d’un noeud et du bootstrap d’un nouveau

Evidemment, présence d’un support :

  • 24x7x365

  • PROD et NON-PROD env

  • DSE Advanced Replication

    • allows one-way replication from ed

  • DSE Tiered Storage

    • preco Cassandra : utiliser au max des SSD, mais peut devenir cher pour un gros volume de données

    • d’où l’ajout du Tiered Storage qui permet de déplacer les data anciennes sur un support moins onéreux

    • Les SAN sont très fortement déconseillés par Cassandra, car va ajouter un Single Point of Failure (pour un système distribué, c’est dommage)

  • DSE Enterprise Security

    • Transparent Data Encryption of ALL DSE at rest
      baisse de performance de l’ordre de ~10% (l’encryption coûte de moins en moins en perf avec l’amélioration des micro-processeurs)

    • Unified authentication : Kerberos / AD, mais PAS d’OAuth2 😭

  • DSE Search

    • se base sur Solr

  • DSE Analytics

    • Embedded Apache Spark

    • Distributed FS (DSEFS), compatible avec HDFS, mais sans Name Node
      → Permet d’avoir les données d’archive dessus (économie de coût)

  • DSE Graph

    • inspiré sur TitanDB graph database

    • build on Apache Tinkerpop graph framework (graph → ce qui va se rapprocher le plus d’une BDD relationnelle)

    • utilise le langage Gremlin

    • Cas d’usage les plus fréquents : la détection de fraudes (ex : les Panama papers)

20180613 datastax cassandra 09
DSE technology stack

Conclusion & synthèse

On a vu que DataStax mettait très en avant sa plateforme unifiée, comme beaucoup d’autres éditeurs en ce moment (Kafka, ActivePivot, MapR, etc.).

Celle-ci comporte maintenant de nombreuses fonctionnalités gravitant autour de la BDD "historique" Apache Cassandra (DSE Search, DSE Analytics, etc.)
Néanmoins, Julien et Jérôme ont indiqué que ces fonctionnalités n’avaient PAS pour vocation de placer DSE comme un remplacement aux produits historiquement développés pour ces domaines (Elasticsearch pour l’indexation, Hadoop pour l’analytics, etc.)

Donc, dans quels cas les utiliser ? Voici leur réponse :

  • A la base on utilise Cassandra pour avoir une base qui scale

  • Cette base permet d’avoir sur un même noeud la gestion du Temps Réel ET de l’archivage

  • La plateforme DSE représente une solution à moindre coût, où l’on peut faire un peu de tout, et qui évite la grande complexité de la maintenance d’une stack Hadoop on-premise.

    📎
    Ce constat comme quoi la stack Hadoop est diffice à maintenir est un pain point que l’on retrouve partout en ce moment.
  • Par contre, la cible de DSE n’est pas les grands comptes (qui peuvent eux se payer une équipe d’OPS administrant une stack on-premise compliquée), mais les "moyens" comptes.

    📎
    J’avoue être un peu surpris de cette communication, même si j’en comprends les raisons.
    La complexité des stacks data est une des grandes préoccupations du moment, et l’on sent bien que de nombreux éditeurs cherchent à en profiter, en proposant une solution "tout-en-un" plus simple à maintenir.
💡
Pour des ressources sur Cassandra, jetez à oeil à la DataStax Academy qui propose plusieurs cours en ligne.

Q&A

  • Pas la notion de transaction au sens ACID dans Cassandra, mais existence d’une notion de "light transaction"
    Par contre, cela a un coût en termes de performance.