Apache Cassandra dans Microsoft Azure
15/10/2015
Victor Coustenoble Ingénieur Solutions
victor.coustenoble@datastax.com
@vizanalytics
Agenda
Confidential 2
• DataStax
• Apache Cassandra
• Demonstration : Déploiement dans Azure
• Modélisation de données et CQL
• DataStax Enterprise
• Demonstration : Stress Tests, CQL, C#, Recherche avec
Solr, Analytique avec Spark (PowerBI)
• Exemples d’application
• Conclusion
• Questions & Réponses
3
DataStax
4
DataStax délivre une plateforme de la base de données
Apache Cassandra, conçue spécifiquement pour les
besoins en Performance et Disponibilité exigés par les
applications d’Internet des Objets, Web ou Mobiles, en
offrant aux entreprises une base de données Sécurisée
toujours disponible, qui reste Simple à administrer même
pour des déploiements à grande échelle, dans un seul ou
de Multiples Data Centers et dans le Cloud.
© 2014 DataStax Confidential. Do not distribute without consent.
Des clients sur tous les verticaux
6
Straightening the road
RELATIONAL DATABASES
CQL SQL
OpsCenter / DevCenter Management tools
DSE for search & analytics Integration
Security Security
Support, consulting & training 30 years ecosystem
Partenariat Microsoft Azure / DataStax
Confidential 8
9
Apache Cassandra
Apache Cassandra™
• Apache Cassandra™ est une base de données NoSQL, Open Source, Distribuée et créée
pour les applications en ligne, modernes, critiques et avec des montée en charge massive.
• Développé en Java c’est un hybride entre Amazon Dynamo et Google BigTable
• Sans Maître-Esclave, sans Point Unique de Défaillance (Single Point Of Failure)
• Distribuée avec la possibilité de Centres de Données (Data Center)
• 100% Disponible
• Massivement scalable
• Montée en charge linéaire
• Haute Performance
• Simple à Exploiter
©2014 DataStax Confidential. Do not distribute without consent. 10
Dynamo
BigTable
BigTable: http://research.google.com/archive/bigtable-osdi06.pdf
Dynamo: http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
Node 1
Node 2
Node 3Node 4
Node 5
Cassandra et le théorème CAP
• Théorème CAP
Dans un système distribué, seules 2 propriétés parmis ces 3 peuvent être
garanties Consistency, Availability, Partition tolerance
• Cassandra est classifié comme un système AP
• Tunable Consistency (Cohérence Ajustable): Le compromis entre la
Cohérence et la Latence peut être ajustée. Vous pouvez avoir une
cohérence forte (immédiate) avec Cassandra.
©2014 DataStax Confidential. Do not distribute without consent. 11
Cassandra dans le monde NoSQL
Distribution
• Peer-to-peer Cassandra
• Maître-esclave
Performance
• Lecture Cassandra
• Ecriture + Cassandra
Topologie du Cluster
• Simple
• Rack & Data Center Cassandra
Volume de Données
• Petit->Enorme Cassandra
• Petit->Standard
Type de Stockage
• Mémoire Cassandra
• Disque Cassandra
Format de Stockage
• Document
• Clé / Valeur
• Clé / Colonne Cassandra
• Graphe
Pourquoi migrer depuis RDBMS vers Cassandra ?
©2014 DataStax Confidential. Do not distribute without consent. 13
Versus
Cassandra @ Netflix
• 80+ Clusters
• 2500+ noeuds
• 4 Data Centres (Régions Amazon)
• > 1 Trillion transactions par jour
http://planetcassandra.org/functional-use-cases/
Performance et Montée en Charge
Cassandra fonctionne aussi bien pour des petits que pour des gros déploiements
©2014 DataStax Confidential. Do not distribute without consent. 14
Performance et Montée en Charge
Cassandra fonctionne aussi bien pour des petits que pour des déploiements énormes!
Déploiement Cassandra chez Apple
• 75 000+ noeuds
• 10’s petabytes de données
• Millions ops/second
• Plus gros cluster à 1000+ noeuds
Apple Inc.: Cassandra at Apple for Massive Scale
Video https://www.youtube.com/watch?v=Bc4ql9TDzyg
From Cassandra Summit, London, December
2014
Principes
• Cassandra a été conçu en prenant en compte le fait que les défaillances systèmes et
matériels arrivent et doivent arriver
• Peer-to-peer, Système Distribué
• Tous les noeuds sont identiques, pas de Point Unique de Défaillance
• Chaque noeud communique avec les autres à travers le protocol Gossip, échangeant les
informations du cluster toutes les secondes
• Les données sont reparties entre tous les noeuds du cluster
• Réplication des données pour assurer la tolérance aux pannes
• Lecture/Ecriture sur tout le cluster et via les data centers
©2014 DataStax Confidential. Do not distribute without consent. 16
Node 1
Node 2
Node 3Node 4
Node 5
• Facteur de Réplication (RF): Combien de copies de
vos données ?
• RF = 3 dans cet exemple
• Chaque noeud stocke 60% de la totalité des données
du cluster, i.e. 3/5
Distribution et Réplication
©2014 DataStax Confidential. Do not distribute without consent. 17
Node 1
1st copy
Node 4
Node 5
Node 2
2nd copy
Node 3
3rd copy
• Le client lit et écrit sur n’importe quel noeud
• Un noeud coordonne temporairement l’éxecution d’une requête
• Les données sont lues et répliquées en parallèle
Configuration en Data Center
©2014 DataStax Confidential. Do not distribute without consent. 18
Node 1
1st copy
Node 4
Node 5
Node 2
2nd copy
Node 3
3rd copy
Node 1
1st copy
Node 4
Node 5
Node 2
2nd copy
Node 3
3rd copy
DC: EUROPEDC: USA
• Actif partout – lecture/écriture dans tous les DC
• Le client écrit localement dans un DC
• Données synchronisées à travers le WAN
• Facteur de Réplication par DC
Utilisations
• DC de sauvegarde
• Distribution géographique
• Charge différente entre DC
• Prod -> Pré-prod
Cloud & Cloud Hybride
• DataStax Enterprise et Cassandra sont disponibles en multi-data center et dans le cloud (Amazon
AWS, Google Cloud et Microsoft Azure)
• Les données écrites dans n’importe quel noeud sont aussi automatiquement et de manière
transparente écrites sur tous les autres noeuds dans les autres data centers sans ETL
Data Centre 1
Data Centre 2
Public Cloud
Cohérence Ajustable
• Niveau de Cohérence (Consistency Level - CL)
• Spécifié par le client à la lecture ou à l’écriture
• ALL = Tous les replicas répondent
• QUORUM = > 51% des replicas répondent
• LOCAL_QUORUM = > 51% du DC local répond
• ONE = Un seul replica répond
Régle : CL(W) + CL(R) > RF => Cohérence Immédiate
©2014 DataStax Confidential. Do not distribute without consent.
Node 1
1st copy
Node 4
Node 5
Node 2
2nd copy
Node 3
3rd copy
Parallel
Write
Write
CL=QUORUM
5 μs ack
12 μs ack
500 μs ack
12 μs ack
3 replicas
A A A
Temps
Cohérence ajustable
Ecriture et attente de la
réponse d’un des noeuds
Ecriture ‘B’
B A A
Temps
A A A
Cohérence ajustable
R + W < N
La lecture attend la réponse
d’un des noeuds
B A A
B A A
A A A
Ecriture et attente de la réponse
d’un des noeuds
Temps
Cohérence ajustable
24
R + W = N
B B A
B A
A A A
B
Ecriture et attente de la
réponse de deux noeuds
La lecture attend la
réponse d’un des noeuds
Temps
Cohérence ajustable
25
R + W > N
B A
B A
A A A
B
B
Ecriture et attente de la réponse
de deux noeuds
La lecture attend la
réponse de deux noeuds
Temps
Cohérence ajustable
26
R = W = QUORUM
B A
B A
A A A
B
B
Temps
QUORUM = (N / 2) + 1
Cohérence ajustable
Cohérence
A terme
Forte
Disponibité
Haute
Faible
Latence
Haute
Faible
Cohérence Ajustable
ONE
ALL
QUORUM
Immédiate
Défaillance d’un Noeud
• La défaillance d’un seul noeud ne doit pas entraîner de défaillance du système
• Facteur de Réplication + Niveau de Cohérence = Succès
• Exemple:
• RF = 3
• CL = QUORUM
©2014 DataStax Confidential. Do not distribute without consent. 28
Node 1
1st copy
Node 4
Node 5
Node 2
2nd copy
Node 3
3rd copy
Parallel
Write
Write
CL=QUORUM
5 μs ack
12 μs ack
12 μs ack
>51% de réponses – donc la requête est réussie
Démo : Déploiement dans Azure
©2013 DataStax Confidential. Do not distribute without consent. 30
Déployer DataStax et Cassandra dans Azure
• Automatiquement depuis Azure Marketplace
• Manuellement avec des templates Azure Ressources Manager (ARM)
• Manuellement avec des installations séparées
©2013 DataStax Confidential. Do not distribute without consent. 31
Azure Marketplace
©2013 DataStax Confidential. Do not distribute without consent. 32
• Déployement automatique (4 - 90
noeuds!)
• Environnement de test ou de
production
• Outils d’administration et de monitoring
Vidéo Azure Marketplace
https://www.youtube.com/watch?v=tmXdSEMjwC
E©2013 DataStax Confidential. Do not distribute without consent. 33
Azure Ressources Manager
Templates disponibles sur GitHub
https://github.com/DSPN/azure-resource-manager-dse
Déploiement depuis:
• http://portal.azure.com
• Client Azure CLI
©2013 DataStax Confidential. Do not distribute without consent. 34
Vidéo Templates ARM et Azure CLI
https://www.youtube.com/watch?v=vacp267zLBA
©2013 DataStax Confidential. Do not distribute without consent. 35
Installations séparées
1. Création du cluster des VM depuis Azure
2. Installation manuelle de DataStax et Cassandra
http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/install/installDEBdse.html
Exemple et explication détaillée avec multi-data center
https://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-linux-nodejs-running-
cassandra/
©2013 DataStax Confidential. Do not distribute without consent. 36
Modélisation de données et CQL
Modélisation de données
• Cassandra ne fonctionne pas comme un SGBDR classique
• Pas de modèle relationnel
• Pas de clés étrangéres, pas de jointures, pas d’aggregations
• Modélisation guidée par les requêtes à supporter, les accès, les actions
(besoin de filtres, de regroupements, d’ordre …)
• Dénormalisation
• Combiner les colonnes de différentes tables en tables uniques (“vue matérialisée”,
pas de jointures!)
• Plus de performances, moins de traffic
• Ne pas avoir peur de la Duplication des données
• Eviter les jointures au niveau client
• Ne pas avoir peur des écritures
©2014 DataStax Confidential. Do not distribute without consent. 38
Modèle de Données
©2014 DataStax Confidential. Do not distribute without consent. 39
• Basé sur Google Bigtable
• Famille Ligne / Colonne
• Dénormalisé
CREATE TABLE sporty_league (
team_name varchar,
player_name varchar,
jersey int,
PRIMARY KEY (team_name, player_name)
);
SELECT * FROM sporty_league;
La clé primaire identifie de manière unique une ligne
Une clé primaire composite consiste en :
• Une clé de répartition
• Une ou plusieurs clustering columns
e.g. PRIMARY KEY (partition key, cluster columns, ...)
• La clé de répartition détermine sur quel noeud la partition (la ligne)
réside
• Les donnés sont triées dans l’ordre de la cluster column au sein de
la partition (ligne)
Accès aux données Cassandra
• Langage CQL via cqlsh (ligne de commande) ou
DevCenter (environnement de dev) ou driver
• Drivers sur le protocole natif Cassandra
• CQL COPY command
• Utilitaire d’import/export massif bulk loader
• Connecteurs dans des ETL (Talend, Informatica)
• Via les couches analytiques Spark et Hadoop
• Via des drivers ODBC/JDBC
©2013 DataStax Confidential. Do not distribute without consent. 40
CQL – Cassandra Query Language
©2014 DataStax Confidential. Do not distribute without consent.
• Type de données : BLOB, UUID, TIMEUUID, User Define Type
...Select /
• Support JSON (Select, Insert)
• User Defined Functions, User Defined Aggregates
• Collections : Map, List, Set
• TTL (Time-To-Live) au niveau de la colonne
• Compteurs
• Lightweight Transactions (LWT) : solution pour le problème “race
condition” avec IF NOT EXISTS
• Interrogation par Batch
• Index Secondaire
• Très similaire à la syntaxe SQL des SGBDR
• Principales commandes DDL et DML supportées : INSERT, UPDATE, DELETE, CREATE, GRANT …
INSERT INTO sporty_league (team_name, player_name, jersey) VALUES (’PSG',’Zlatan’,10);
SELECT player_name as nom_joueur FROM sporty_league WHERE team_name = ‘PSG’;
DevCenter
Drivers Natifs
• Drivers DataStax : Java, Python, C#, C++, Ruby, NodeJS, PHP (et d’autres dans la
communauté)
• Les clients utilisant les drivers natifs ont accès à différentes stratégies permettant au client de
rediriger intelligement les requêtes.
En incluant:
• Répartition de Charge
• Prise en compte des Data Centers
• Prise en compte de la Latence
• Prise en compte des Tokens
• Stratégie de Reconnexion
• Stratégie de Renvoi
• Dégradation de la Cohérence
• Plus d’autres ...
• http://www.datastax.com/download/clientdrivers
©2014 DataStax Confidential. Do not distribute without consent. 42
DataStax Enterprise
OpsCenter - La visualisation de votre Cluster
Monitoring
● Visualisation des noeuds
● Métriques & Alertes *
● Activité des noeuds
● Temps Réel
Opérations
● Configuration
● Opération sur les noeuds
● Opération de masse
● Re-équilibrage *
● Sauvegarde / Restauration *
● Point In Time Recovery *
• Visuel, interface utilisateur Web.
• Tâches d’installation, de configuration, et d’administration avec de simples clics
• Support visuel des Services de Gestion Automatique DataStax
• API REST permettant de scripter toutes les fonctions de OpsCenter
• Fonctionne sur tout type de terminal (tablette, etc.)
• Historique des métriques *
• Accès sécurisé *
* Seulement dans Datastax Enterprise
DataStax Enterprise
In-Memory
Option de base de données en mémoire
pour le stockage en RAM et non plus sur
disque de certaines données pour un
accès encore plus rapide.
Search
Fonctionnaliés de recherche sur des
données Cassandra via Apache Solr.
Fonctionnalités avancées et performante
sur de gros volumes.
Analytics
Intégration de frameworks analytiques
tels que Spark et Hadoop pour des
analyses temps-réel ou en mode
batch.
Support
Support 24x7 avec des hot-fixes et
des revues de performance.
Visual Admin
Un outil visuel “DataStax OpsCenter”
pour la supervision et l’administration
d’un cluster Cassandra et DataStax.
Management Services
Services d’administration automatique et
suivi des performances.
Cassandra Certified
Une version de Apache Cassandra certifiée, supportée et prête pour
l’entreprise.
Security
Fonctionalités de sécurité d’entreprise
comme le chiffrement des données sur
disques, des traces d’audit et une
authentification externe via Kerberos,
LDAP/Active Directory
Puissance pour le Développement
Robustesse et Support
pour la Production
Analytique Temps Réel - Spark
• Intégration poussée avec Cassandra de Apache Spark
• Spark = Traitement Distribué : “In-memory Map/Reduce”, multi-thread, meilleur pour les itérations
• GraphX, MLLib (Machine learning), SparkSQL, Spark Streaming (traitement temps réel)
• Serveur Spark JDBC – Spark Job Server
• Intégration de Solr
• Partenariat DataStax / Databricks
• x10 – x100 plus rapide que MapReduce
©2014 DataStax Confidential. Do not distribute without consent. 46
Replication
Cassandra
Application
Opérationnelle
Noeuds
Cassandra/Spark
Le SDK du « Big Data »
Cassandra
Executor
ExecutorSpark
Worker
(JVM)
Cassandra
Executor
ExecutorSpark
Worker
(JVM)
Architecture de l’intégration DSE / Spark
Node 1
Node 2
Node 3
Node 4
Cassandra
Executor
ExecutorSpark
Worker
(JVM)
Cassandra
Executor
ExecutorSpark
Worker
(JVM)
Spark
Master
(JVM)
App
Driver
©2014 DataStax Confidential. Do not distribute without consent. 48
Enrichissement des Données
Batch Processing
Machine Learning
Agrégats pré-calculésDonnées
Sans ETL
Analytique Temps Réel ou Batch
Spark Use Cases
49
Load data from various
sources
Analytics (join, aggregate, transform, …)
Sanitize, validate, normalize data
Schema migration,
Data conversion
Le Futur de DataStax Enterprise
50
Demonstration : Tests, CQL, C#, Recherche
avec Solr, Analytique avec Spark (PowerBI)
Confidential 52
Vérification du déploiement
• DataStax OpsCenter http://clustername.westeurope.cloudapp.azure.com:8443/opscenter/
• Azure Resources Explorer http://resources.azure.com
• Groupe de ressource dans portail Azure http://portal.azure.com
Confidential 53
Tests de performances
Outil de stress test
http://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsCStress_t.html
• 1 Millions INSERT : cassandra-stress write n=1000000 -node 10.0.0.22
• 200 000 SELECT : cassandra-stress read n=200000 -node 10.0.0.22
Confidential 54
Windows et Driver C#
• Cassandra 2.2 disponible pour Windows
http://www.luketillman.com/developing-with-cassandra-on-windows/
• Support Windows pour DataStax Enterprise 5.0 (Q1 2015)
• Driver C# DataStax
• GitHub https://github.com/datastax/csharp-driver
• Nuget https://www.nuget.org/packages/CassandraCSharpDriver/
• Documentation http://docs.datastax.com/en/developer/csharp-driver/2.7/csharp-driver/whatsNew2.html
Confidential 55
Recherche, DSE Search et Apache Solr
• Mapping Cassandra / Solr
dsetool create_core killrvideo.videos generateResources=true
• Indexation temps réel
• Recherche via API REST ou via requêtes CQL
• Documentation DSE Search
http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/srch/srchOverview.html
SELECT * FROM videos where solr_query='{"q":"description:cassandra"}';
SELECT * FROM videos where solr_query='{"q":"tags:music","facet":{"field":"tags"}}';
Confidential 56
Analytique et Apache Spark
• Connecteur Cassandra/Spark sur GitHub https://github.com/datastax/spark-cassandra-connector
• Intégration et Support de Spark dans DataStax entreprise
• Interface d’administration
• Spark Shell, Spark Job et serveur JDBC/ODBC (SparkSQL)
Notebook Zeppelin
Confidential 57
Code Spark depuis un navigateur
Exemple Cassandra https://github.com/doanduyhai/incubator-zeppelin
Interpréteur CQL disponible
Power BI Desktop
© 2014 DataStax, All Rights Reserved. Company Confidential 58
• Support for On-Prem Spark distributions
“The new data source in this month’s release is support for On-Prem Spark distributions.
Last month, we added support for Microsoft Azure HDInsight Spark, and this month we’re
expanding to other Spark distributions.
This new connector can be found under the “Other” category in the “Get Data” dialog.”
http://blogs.msdn.com/b/powerbi/archive/2015/09/23/44-new-features-in-the-power-bi-
desktop-september-update.aspx
• Ou utilisation directement du driver ODBC DataStax Cassandra (sans Spark)
Exemples d’Applications
Confidential 60
KillrVideo
Confidential 61
Projet ASP.NET MVC
http://www.planetcassandra.org/blog/building-an-asp-net-mvc-project-with-cassandra
Conclusion
Cassandra – La Base de Données Distribuée leader
Bordeaux
Paris
Marseille
C *
C *
C *C *
Toujours Disponible
Distribution géographique
Performance reconnue
Extensibilité prédictible
Simplicité Opérationnelle
Séries Temporelles
63
DataStax Enterprise + DataWarehouse / Hadoop
© 2014 DataStax, All Rights Reserved. Company Confidential
Write Intensive
Internet of Things - Activity logs
for fraud and recommendation
– Messages
64
Read Intensive
Catalogue – Playlist –
Recommendation – Fraud
Alert – Personalization
Operational Search,
Dashboard and Reporting
Offline Applications
Historical Analysis - OLAP -
Complex Analytics – Self
Service BI
Operational Search,
Dashboard and Reporting
Data Warehouse
Hadoop cluster
Computation Engine
Multidimensional Cube
Lambda Architecture – “Big Data”
65
New Data
OLTP
Historic Data Stores
Batch Analytics
1
3
4
5
2
Real-Time
Analytics
©2014 DataStax Confidential. Do not distribute without consent.
Cas d’usage fréquents
Messagerie
Catalogue/
Playlists
Détection de
Fraude
Recommandation/
Personnalisation
Objets connectés/
Données de Capteurs
Confidential 67
Confidential 68
Essayez ! Testez !
Plus d’information
• DataStax: http://www.datastax.com/
• Downloads: http://www.datastax.com/download
• Documentation: http://www.datastax.com/docs
• Developer Blog: http://www.datastax.com/dev/blog
• Academy: https://academy.datastax.com/
• Community Site: http://planetcassandra.org/
• Azure Marketplace https://azure.microsoft.com/fr-fr/marketplace/partners/datastax/datastax-
enterprise-clusterbyol-production/
• Killrvideo http://www.killrvideo.com/
©2014 DataStax Confidential. Do not distribute without consent. 69
Merci victor.coustenoble@datastax.com
We power the big data apps
that transform business.
©2013 DataStax Confidential. Do not distribute without consent.

DataStax et Cassandra dans Azure au Microsoft Techdays

  • 1.
    Apache Cassandra dansMicrosoft Azure 15/10/2015 Victor Coustenoble Ingénieur Solutions victor.coustenoble@datastax.com @vizanalytics
  • 2.
    Agenda Confidential 2 • DataStax •Apache Cassandra • Demonstration : Déploiement dans Azure • Modélisation de données et CQL • DataStax Enterprise • Demonstration : Stress Tests, CQL, C#, Recherche avec Solr, Analytique avec Spark (PowerBI) • Exemples d’application • Conclusion • Questions & Réponses
  • 3.
  • 4.
    4 DataStax délivre uneplateforme de la base de données Apache Cassandra, conçue spécifiquement pour les besoins en Performance et Disponibilité exigés par les applications d’Internet des Objets, Web ou Mobiles, en offrant aux entreprises une base de données Sécurisée toujours disponible, qui reste Simple à administrer même pour des déploiements à grande échelle, dans un seul ou de Multiples Data Centers et dans le Cloud.
  • 6.
    © 2014 DataStaxConfidential. Do not distribute without consent. Des clients sur tous les verticaux 6
  • 7.
    Straightening the road RELATIONALDATABASES CQL SQL OpsCenter / DevCenter Management tools DSE for search & analytics Integration Security Security Support, consulting & training 30 years ecosystem
  • 8.
    Partenariat Microsoft Azure/ DataStax Confidential 8
  • 9.
  • 10.
    Apache Cassandra™ • ApacheCassandra™ est une base de données NoSQL, Open Source, Distribuée et créée pour les applications en ligne, modernes, critiques et avec des montée en charge massive. • Développé en Java c’est un hybride entre Amazon Dynamo et Google BigTable • Sans Maître-Esclave, sans Point Unique de Défaillance (Single Point Of Failure) • Distribuée avec la possibilité de Centres de Données (Data Center) • 100% Disponible • Massivement scalable • Montée en charge linéaire • Haute Performance • Simple à Exploiter ©2014 DataStax Confidential. Do not distribute without consent. 10 Dynamo BigTable BigTable: http://research.google.com/archive/bigtable-osdi06.pdf Dynamo: http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf Node 1 Node 2 Node 3Node 4 Node 5
  • 11.
    Cassandra et lethéorème CAP • Théorème CAP Dans un système distribué, seules 2 propriétés parmis ces 3 peuvent être garanties Consistency, Availability, Partition tolerance • Cassandra est classifié comme un système AP • Tunable Consistency (Cohérence Ajustable): Le compromis entre la Cohérence et la Latence peut être ajustée. Vous pouvez avoir une cohérence forte (immédiate) avec Cassandra. ©2014 DataStax Confidential. Do not distribute without consent. 11
  • 12.
    Cassandra dans lemonde NoSQL Distribution • Peer-to-peer Cassandra • Maître-esclave Performance • Lecture Cassandra • Ecriture + Cassandra Topologie du Cluster • Simple • Rack & Data Center Cassandra Volume de Données • Petit->Enorme Cassandra • Petit->Standard Type de Stockage • Mémoire Cassandra • Disque Cassandra Format de Stockage • Document • Clé / Valeur • Clé / Colonne Cassandra • Graphe
  • 13.
    Pourquoi migrer depuisRDBMS vers Cassandra ? ©2014 DataStax Confidential. Do not distribute without consent. 13 Versus
  • 14.
    Cassandra @ Netflix •80+ Clusters • 2500+ noeuds • 4 Data Centres (Régions Amazon) • > 1 Trillion transactions par jour http://planetcassandra.org/functional-use-cases/ Performance et Montée en Charge Cassandra fonctionne aussi bien pour des petits que pour des gros déploiements ©2014 DataStax Confidential. Do not distribute without consent. 14
  • 15.
    Performance et Montéeen Charge Cassandra fonctionne aussi bien pour des petits que pour des déploiements énormes! Déploiement Cassandra chez Apple • 75 000+ noeuds • 10’s petabytes de données • Millions ops/second • Plus gros cluster à 1000+ noeuds Apple Inc.: Cassandra at Apple for Massive Scale Video https://www.youtube.com/watch?v=Bc4ql9TDzyg From Cassandra Summit, London, December 2014
  • 16.
    Principes • Cassandra aété conçu en prenant en compte le fait que les défaillances systèmes et matériels arrivent et doivent arriver • Peer-to-peer, Système Distribué • Tous les noeuds sont identiques, pas de Point Unique de Défaillance • Chaque noeud communique avec les autres à travers le protocol Gossip, échangeant les informations du cluster toutes les secondes • Les données sont reparties entre tous les noeuds du cluster • Réplication des données pour assurer la tolérance aux pannes • Lecture/Ecriture sur tout le cluster et via les data centers ©2014 DataStax Confidential. Do not distribute without consent. 16 Node 1 Node 2 Node 3Node 4 Node 5
  • 17.
    • Facteur deRéplication (RF): Combien de copies de vos données ? • RF = 3 dans cet exemple • Chaque noeud stocke 60% de la totalité des données du cluster, i.e. 3/5 Distribution et Réplication ©2014 DataStax Confidential. Do not distribute without consent. 17 Node 1 1st copy Node 4 Node 5 Node 2 2nd copy Node 3 3rd copy • Le client lit et écrit sur n’importe quel noeud • Un noeud coordonne temporairement l’éxecution d’une requête • Les données sont lues et répliquées en parallèle
  • 18.
    Configuration en DataCenter ©2014 DataStax Confidential. Do not distribute without consent. 18 Node 1 1st copy Node 4 Node 5 Node 2 2nd copy Node 3 3rd copy Node 1 1st copy Node 4 Node 5 Node 2 2nd copy Node 3 3rd copy DC: EUROPEDC: USA • Actif partout – lecture/écriture dans tous les DC • Le client écrit localement dans un DC • Données synchronisées à travers le WAN • Facteur de Réplication par DC Utilisations • DC de sauvegarde • Distribution géographique • Charge différente entre DC • Prod -> Pré-prod
  • 19.
    Cloud & CloudHybride • DataStax Enterprise et Cassandra sont disponibles en multi-data center et dans le cloud (Amazon AWS, Google Cloud et Microsoft Azure) • Les données écrites dans n’importe quel noeud sont aussi automatiquement et de manière transparente écrites sur tous les autres noeuds dans les autres data centers sans ETL Data Centre 1 Data Centre 2 Public Cloud
  • 20.
    Cohérence Ajustable • Niveaude Cohérence (Consistency Level - CL) • Spécifié par le client à la lecture ou à l’écriture • ALL = Tous les replicas répondent • QUORUM = > 51% des replicas répondent • LOCAL_QUORUM = > 51% du DC local répond • ONE = Un seul replica répond Régle : CL(W) + CL(R) > RF => Cohérence Immédiate ©2014 DataStax Confidential. Do not distribute without consent. Node 1 1st copy Node 4 Node 5 Node 2 2nd copy Node 3 3rd copy Parallel Write Write CL=QUORUM 5 μs ack 12 μs ack 500 μs ack 12 μs ack
  • 21.
    3 replicas A AA Temps Cohérence ajustable
  • 22.
    Ecriture et attentede la réponse d’un des noeuds Ecriture ‘B’ B A A Temps A A A Cohérence ajustable
  • 23.
    R + W< N La lecture attend la réponse d’un des noeuds B A A B A A A A A Ecriture et attente de la réponse d’un des noeuds Temps Cohérence ajustable
  • 24.
    24 R + W= N B B A B A A A A B Ecriture et attente de la réponse de deux noeuds La lecture attend la réponse d’un des noeuds Temps Cohérence ajustable
  • 25.
    25 R + W> N B A B A A A A B B Ecriture et attente de la réponse de deux noeuds La lecture attend la réponse de deux noeuds Temps Cohérence ajustable
  • 26.
    26 R = W= QUORUM B A B A A A A B B Temps QUORUM = (N / 2) + 1 Cohérence ajustable
  • 27.
  • 28.
    Défaillance d’un Noeud •La défaillance d’un seul noeud ne doit pas entraîner de défaillance du système • Facteur de Réplication + Niveau de Cohérence = Succès • Exemple: • RF = 3 • CL = QUORUM ©2014 DataStax Confidential. Do not distribute without consent. 28 Node 1 1st copy Node 4 Node 5 Node 2 2nd copy Node 3 3rd copy Parallel Write Write CL=QUORUM 5 μs ack 12 μs ack 12 μs ack >51% de réponses – donc la requête est réussie
  • 29.
  • 30.
    ©2013 DataStax Confidential.Do not distribute without consent. 30
  • 31.
    Déployer DataStax etCassandra dans Azure • Automatiquement depuis Azure Marketplace • Manuellement avec des templates Azure Ressources Manager (ARM) • Manuellement avec des installations séparées ©2013 DataStax Confidential. Do not distribute without consent. 31
  • 32.
    Azure Marketplace ©2013 DataStaxConfidential. Do not distribute without consent. 32 • Déployement automatique (4 - 90 noeuds!) • Environnement de test ou de production • Outils d’administration et de monitoring
  • 33.
    Vidéo Azure Marketplace https://www.youtube.com/watch?v=tmXdSEMjwC E©2013DataStax Confidential. Do not distribute without consent. 33
  • 34.
    Azure Ressources Manager Templatesdisponibles sur GitHub https://github.com/DSPN/azure-resource-manager-dse Déploiement depuis: • http://portal.azure.com • Client Azure CLI ©2013 DataStax Confidential. Do not distribute without consent. 34
  • 35.
    Vidéo Templates ARMet Azure CLI https://www.youtube.com/watch?v=vacp267zLBA ©2013 DataStax Confidential. Do not distribute without consent. 35
  • 36.
    Installations séparées 1. Créationdu cluster des VM depuis Azure 2. Installation manuelle de DataStax et Cassandra http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/install/installDEBdse.html Exemple et explication détaillée avec multi-data center https://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-linux-nodejs-running- cassandra/ ©2013 DataStax Confidential. Do not distribute without consent. 36
  • 37.
  • 38.
    Modélisation de données •Cassandra ne fonctionne pas comme un SGBDR classique • Pas de modèle relationnel • Pas de clés étrangéres, pas de jointures, pas d’aggregations • Modélisation guidée par les requêtes à supporter, les accès, les actions (besoin de filtres, de regroupements, d’ordre …) • Dénormalisation • Combiner les colonnes de différentes tables en tables uniques (“vue matérialisée”, pas de jointures!) • Plus de performances, moins de traffic • Ne pas avoir peur de la Duplication des données • Eviter les jointures au niveau client • Ne pas avoir peur des écritures ©2014 DataStax Confidential. Do not distribute without consent. 38
  • 39.
    Modèle de Données ©2014DataStax Confidential. Do not distribute without consent. 39 • Basé sur Google Bigtable • Famille Ligne / Colonne • Dénormalisé CREATE TABLE sporty_league ( team_name varchar, player_name varchar, jersey int, PRIMARY KEY (team_name, player_name) ); SELECT * FROM sporty_league; La clé primaire identifie de manière unique une ligne Une clé primaire composite consiste en : • Une clé de répartition • Une ou plusieurs clustering columns e.g. PRIMARY KEY (partition key, cluster columns, ...) • La clé de répartition détermine sur quel noeud la partition (la ligne) réside • Les donnés sont triées dans l’ordre de la cluster column au sein de la partition (ligne)
  • 40.
    Accès aux donnéesCassandra • Langage CQL via cqlsh (ligne de commande) ou DevCenter (environnement de dev) ou driver • Drivers sur le protocole natif Cassandra • CQL COPY command • Utilitaire d’import/export massif bulk loader • Connecteurs dans des ETL (Talend, Informatica) • Via les couches analytiques Spark et Hadoop • Via des drivers ODBC/JDBC ©2013 DataStax Confidential. Do not distribute without consent. 40
  • 41.
    CQL – CassandraQuery Language ©2014 DataStax Confidential. Do not distribute without consent. • Type de données : BLOB, UUID, TIMEUUID, User Define Type ...Select / • Support JSON (Select, Insert) • User Defined Functions, User Defined Aggregates • Collections : Map, List, Set • TTL (Time-To-Live) au niveau de la colonne • Compteurs • Lightweight Transactions (LWT) : solution pour le problème “race condition” avec IF NOT EXISTS • Interrogation par Batch • Index Secondaire • Très similaire à la syntaxe SQL des SGBDR • Principales commandes DDL et DML supportées : INSERT, UPDATE, DELETE, CREATE, GRANT … INSERT INTO sporty_league (team_name, player_name, jersey) VALUES (’PSG',’Zlatan’,10); SELECT player_name as nom_joueur FROM sporty_league WHERE team_name = ‘PSG’; DevCenter
  • 42.
    Drivers Natifs • DriversDataStax : Java, Python, C#, C++, Ruby, NodeJS, PHP (et d’autres dans la communauté) • Les clients utilisant les drivers natifs ont accès à différentes stratégies permettant au client de rediriger intelligement les requêtes. En incluant: • Répartition de Charge • Prise en compte des Data Centers • Prise en compte de la Latence • Prise en compte des Tokens • Stratégie de Reconnexion • Stratégie de Renvoi • Dégradation de la Cohérence • Plus d’autres ... • http://www.datastax.com/download/clientdrivers ©2014 DataStax Confidential. Do not distribute without consent. 42
  • 43.
  • 44.
    OpsCenter - Lavisualisation de votre Cluster Monitoring ● Visualisation des noeuds ● Métriques & Alertes * ● Activité des noeuds ● Temps Réel Opérations ● Configuration ● Opération sur les noeuds ● Opération de masse ● Re-équilibrage * ● Sauvegarde / Restauration * ● Point In Time Recovery * • Visuel, interface utilisateur Web. • Tâches d’installation, de configuration, et d’administration avec de simples clics • Support visuel des Services de Gestion Automatique DataStax • API REST permettant de scripter toutes les fonctions de OpsCenter • Fonctionne sur tout type de terminal (tablette, etc.) • Historique des métriques * • Accès sécurisé * * Seulement dans Datastax Enterprise
  • 45.
    DataStax Enterprise In-Memory Option debase de données en mémoire pour le stockage en RAM et non plus sur disque de certaines données pour un accès encore plus rapide. Search Fonctionnaliés de recherche sur des données Cassandra via Apache Solr. Fonctionnalités avancées et performante sur de gros volumes. Analytics Intégration de frameworks analytiques tels que Spark et Hadoop pour des analyses temps-réel ou en mode batch. Support Support 24x7 avec des hot-fixes et des revues de performance. Visual Admin Un outil visuel “DataStax OpsCenter” pour la supervision et l’administration d’un cluster Cassandra et DataStax. Management Services Services d’administration automatique et suivi des performances. Cassandra Certified Une version de Apache Cassandra certifiée, supportée et prête pour l’entreprise. Security Fonctionalités de sécurité d’entreprise comme le chiffrement des données sur disques, des traces d’audit et une authentification externe via Kerberos, LDAP/Active Directory Puissance pour le Développement Robustesse et Support pour la Production
  • 46.
    Analytique Temps Réel- Spark • Intégration poussée avec Cassandra de Apache Spark • Spark = Traitement Distribué : “In-memory Map/Reduce”, multi-thread, meilleur pour les itérations • GraphX, MLLib (Machine learning), SparkSQL, Spark Streaming (traitement temps réel) • Serveur Spark JDBC – Spark Job Server • Intégration de Solr • Partenariat DataStax / Databricks • x10 – x100 plus rapide que MapReduce ©2014 DataStax Confidential. Do not distribute without consent. 46 Replication Cassandra Application Opérationnelle Noeuds Cassandra/Spark Le SDK du « Big Data »
  • 47.
    Cassandra Executor ExecutorSpark Worker (JVM) Cassandra Executor ExecutorSpark Worker (JVM) Architecture de l’intégrationDSE / Spark Node 1 Node 2 Node 3 Node 4 Cassandra Executor ExecutorSpark Worker (JVM) Cassandra Executor ExecutorSpark Worker (JVM) Spark Master (JVM) App Driver
  • 48.
    ©2014 DataStax Confidential.Do not distribute without consent. 48 Enrichissement des Données Batch Processing Machine Learning Agrégats pré-calculésDonnées Sans ETL Analytique Temps Réel ou Batch
  • 49.
    Spark Use Cases 49 Loaddata from various sources Analytics (join, aggregate, transform, …) Sanitize, validate, normalize data Schema migration, Data conversion
  • 50.
    Le Futur deDataStax Enterprise 50
  • 51.
    Demonstration : Tests,CQL, C#, Recherche avec Solr, Analytique avec Spark (PowerBI)
  • 52.
    Confidential 52 Vérification dudéploiement • DataStax OpsCenter http://clustername.westeurope.cloudapp.azure.com:8443/opscenter/ • Azure Resources Explorer http://resources.azure.com • Groupe de ressource dans portail Azure http://portal.azure.com
  • 53.
    Confidential 53 Tests deperformances Outil de stress test http://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsCStress_t.html • 1 Millions INSERT : cassandra-stress write n=1000000 -node 10.0.0.22 • 200 000 SELECT : cassandra-stress read n=200000 -node 10.0.0.22
  • 54.
    Confidential 54 Windows etDriver C# • Cassandra 2.2 disponible pour Windows http://www.luketillman.com/developing-with-cassandra-on-windows/ • Support Windows pour DataStax Enterprise 5.0 (Q1 2015) • Driver C# DataStax • GitHub https://github.com/datastax/csharp-driver • Nuget https://www.nuget.org/packages/CassandraCSharpDriver/ • Documentation http://docs.datastax.com/en/developer/csharp-driver/2.7/csharp-driver/whatsNew2.html
  • 55.
    Confidential 55 Recherche, DSESearch et Apache Solr • Mapping Cassandra / Solr dsetool create_core killrvideo.videos generateResources=true • Indexation temps réel • Recherche via API REST ou via requêtes CQL • Documentation DSE Search http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/srch/srchOverview.html SELECT * FROM videos where solr_query='{"q":"description:cassandra"}'; SELECT * FROM videos where solr_query='{"q":"tags:music","facet":{"field":"tags"}}';
  • 56.
    Confidential 56 Analytique etApache Spark • Connecteur Cassandra/Spark sur GitHub https://github.com/datastax/spark-cassandra-connector • Intégration et Support de Spark dans DataStax entreprise • Interface d’administration • Spark Shell, Spark Job et serveur JDBC/ODBC (SparkSQL)
  • 57.
    Notebook Zeppelin Confidential 57 CodeSpark depuis un navigateur Exemple Cassandra https://github.com/doanduyhai/incubator-zeppelin Interpréteur CQL disponible
  • 58.
    Power BI Desktop ©2014 DataStax, All Rights Reserved. Company Confidential 58 • Support for On-Prem Spark distributions “The new data source in this month’s release is support for On-Prem Spark distributions. Last month, we added support for Microsoft Azure HDInsight Spark, and this month we’re expanding to other Spark distributions. This new connector can be found under the “Other” category in the “Get Data” dialog.” http://blogs.msdn.com/b/powerbi/archive/2015/09/23/44-new-features-in-the-power-bi- desktop-september-update.aspx • Ou utilisation directement du driver ODBC DataStax Cassandra (sans Spark)
  • 59.
  • 60.
  • 61.
    Confidential 61 Projet ASP.NETMVC http://www.planetcassandra.org/blog/building-an-asp-net-mvc-project-with-cassandra
  • 62.
  • 63.
    Cassandra – LaBase de Données Distribuée leader Bordeaux Paris Marseille C * C * C *C * Toujours Disponible Distribution géographique Performance reconnue Extensibilité prédictible Simplicité Opérationnelle Séries Temporelles 63
  • 64.
    DataStax Enterprise +DataWarehouse / Hadoop © 2014 DataStax, All Rights Reserved. Company Confidential Write Intensive Internet of Things - Activity logs for fraud and recommendation – Messages 64 Read Intensive Catalogue – Playlist – Recommendation – Fraud Alert – Personalization Operational Search, Dashboard and Reporting Offline Applications Historical Analysis - OLAP - Complex Analytics – Self Service BI Operational Search, Dashboard and Reporting Data Warehouse Hadoop cluster Computation Engine Multidimensional Cube
  • 65.
    Lambda Architecture –“Big Data” 65 New Data OLTP Historic Data Stores Batch Analytics 1 3 4 5 2 Real-Time Analytics ©2014 DataStax Confidential. Do not distribute without consent.
  • 66.
    Cas d’usage fréquents Messagerie Catalogue/ Playlists Détectionde Fraude Recommandation/ Personnalisation Objets connectés/ Données de Capteurs
  • 67.
  • 68.
  • 69.
    Plus d’information • DataStax:http://www.datastax.com/ • Downloads: http://www.datastax.com/download • Documentation: http://www.datastax.com/docs • Developer Blog: http://www.datastax.com/dev/blog • Academy: https://academy.datastax.com/ • Community Site: http://planetcassandra.org/ • Azure Marketplace https://azure.microsoft.com/fr-fr/marketplace/partners/datastax/datastax- enterprise-clusterbyol-production/ • Killrvideo http://www.killrvideo.com/ ©2014 DataStax Confidential. Do not distribute without consent. 69
  • 70.
    Merci victor.coustenoble@datastax.com We powerthe big data apps that transform business. ©2013 DataStax Confidential. Do not distribute without consent.