Big Data Paris 2015 - Cassandra chez Chronopost
-
Upload
alexander-dejanovski -
Category
Data & Analytics
-
view
551 -
download
0
Transcript of Big Data Paris 2015 - Cassandra chez Chronopost
![Page 1: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/1.jpg)
Cassandra chez Chronopostpour traiter en temps réel 1,5 milliard d’événements par an
![Page 2: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/2.jpg)
Alexander DEJANOVSKI
Qui suis-je ?
• Ingénieur EAI• Depuis 15 ans chez Chronopost•@alexanderDeja
![Page 3: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/3.jpg)
Leader de la livraison express de colis jusqu’à 30 kg aux entreprises comme aux particuliers partout dans le monde, Chronopost s’appuie sur en France sur un réseau constitué de 75 sites opérationnels et 7 hubs. Chronopost dessert plus de 230 pays en Europe et dans le monde.
Chronopost InternationalNotre métier
En 2014 :
3 500 salariésPlus de 60 000 entreprises clientes4 500 tournées de livraison par jour 114,5 millions de colis livrés230 pays desservis33% des colis livrés en BtoC25% de son CA à l’International
![Page 4: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/4.jpg)
L’EAI chez Chronopost
![Page 5: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/5.jpg)
• TIBCO BusinessWorks• 750 000 échanges/j• 3M d’étapes/j
Flux EAI chez Chronopost
![Page 6: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/6.jpg)
Développement interne : FLUKSBase relationnelle
Suivi des flux EAI
![Page 7: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/7.jpg)
Suivi des flux EAI
![Page 8: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/8.jpg)
Suivi des flux EAI
![Page 9: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/9.jpg)
Suivi des flux EAI
![Page 10: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/10.jpg)
Suivi des flux EAI
![Page 11: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/11.jpg)
• Contentions • Latences • Statistiques
Problèmes
![Page 12: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/12.jpg)
• Portage• Scalabilité• Open Source
Proposition d’un PoC NoSQL sur Fluks
![Page 13: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/13.jpg)
Hadoop
HBase
CassandraHypertable
Accumulo
CloudataCloudera
MonetDB
HPCCApache Flink
Splice Machine
MongoDB
La jungle « NoSQL/Big Data »
#CassandraSummit
Elasticsearch
Couchbase
CouchDBRethinkDB
RavenDB
MarkLogic Server
Clusterpoint Server
NeDBTerrastore
AmisaDB
JasDB
RaptorDB
djondb
EJDBdensodb
SisoDB
SDBThruDB
iBoxDB
DynamoDBRiak
Redis
AerospikeFoundationDB
LevelDB
Berkeley DB
Oracle NOSQLGenieDB
BangDB
ScalarisScalien
Voldemort
DynomiteKAI
MemcacheDB
Spark….
http://nosql-database.org/ liste + de 150 bases NoSQL
![Page 14: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/14.jpg)
• HBase• Cassandra• MongoDB
Notre short list
![Page 15: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/15.jpg)
Cassandra
![Page 16: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/16.jpg)
• Simplicité• Réplication• Tolérance aux pannes• CQL • JDBC • Scalabilité
Pourquoi Cassandra ?
![Page 17: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/17.jpg)
Partition et réplication
Replication Factor = 33 répliques de chaque enregistrement
![Page 18: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/18.jpg)
Requêtes
![Page 19: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/19.jpg)
Scalabilité linéaire
![Page 20: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/20.jpg)
• Cré ation de table : – CREATE TABLE ma_table(
id int, value text, PRIMARY INDEX(id));
• Requêtage des donné es :– SELECT * FROM ma_table WHERE id=?
CQL = Cassandra Query Language
![Page 21: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/21.jpg)
• Pas de relations• Dénormalisation• Clauses WHERE limitées• Requêtes analytiques
Il faut réapprendre certaines choses…
![Page 22: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/22.jpg)
Le PoC Cassandra
![Page 23: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/23.jpg)
• Driver JDBC Cassandra (TIBCO/IHM)• Guava• 2 mois / 1 personne
Portage de Fluks
![Page 24: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/24.jpg)
• Serveurs décommissionnés• Août 2014 : 1ère infrastructure• Avril 2015 : évolution
Passage en production
![Page 25: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/25.jpg)
• Plus de contention• Stats temps réel• RDBMS : 100-120ms / message• Cassandra : 16-20ms / message
Résultats en production
![Page 26: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/26.jpg)
Comparatifs des temps d’intégration
![Page 27: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/27.jpg)
• Dans la version relationnelle :
– Batch– Recalculs à la demande
• Avec la monté e en charge :
– Durée++– Perturbation insertions
Des stats temps réel ?
![Page 28: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/28.jpg)
• Type « counter » de Cassandra– Incré mentation/Dé cré mentation :
UPDATE ma_table SET my_counter = my_counter + 10 WHERE ma_cle=1
• Le truc génial ? – UPDATE = INSERT– Enregistrement cré é s’il n’existe pas
Des stats temps réel ?
![Page 29: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/29.jpg)
Attention : – Cassandra < 2.1 = compteurs
approximatifs• rejeux• OK pour des stats
Des stats temps réel ?
![Page 30: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/30.jpg)
Développements en cours sur Cassandra
![Page 31: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/31.jpg)
• Base Cassandra alimentée depuis notre Base Colis– Toutes les Informations colis – Tous les événements
Vision
![Page 32: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/32.jpg)
• 2 nouvelles offres Chronopost à la rentré e • Stockage Cassandra• Accent fort sur le temps réel• Stockage en « time series »
Vision
![Page 33: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/33.jpg)
Infrastructureanalytique
![Page 34: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/34.jpg)
• Apache Spark 1.2• Cassandra (via connecteur Spark Datastax)
– Analyse sur profondeur réduite (opérationnel)
• HDFS– Analyse sur profondeur é tendue (archivage)
• Dataiku
Notre stack analytique « Big Data »
![Page 35: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/35.jpg)
Contribution à l’écosystème Cassandra
![Page 36: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/36.jpg)
• Non maintenu• Limité• Cassandra <= 1.2• Datastax Java driver
Le driver JDBC « legacy »
![Page 37: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/37.jpg)
• Cassandra 2.0/2.1• Load balancing• Disponible sur code.google.com• Google : « cassandra jdbc »• API Thrift
Mise à jour du driver JDBC « legacy »
![Page 38: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/38.jpg)
• Réécriture• Intégration Driver Java Datastax• Disponible sur github.com/adejanovski
Nouveau driver JDBC
![Page 39: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/39.jpg)
Requêtes asynchrones
![Page 40: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/40.jpg)
Load balancing policies : Token Aware Policy
![Page 41: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/41.jpg)
Load balancing policies : DC Aware Policy
![Page 42: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/42.jpg)
Load balancing policies : DC Aware Policy
![Page 43: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/43.jpg)
• Datastax pour :– Son invitation aujourd’hui– Sa contribution au code source Cassandra
(>80%)– Son animation de la communauté Cassandra
• Vous pour :– M’avoir é couté jusqu’au bout
Remerciements
![Page 44: Big Data Paris 2015 - Cassandra chez Chronopost](https://reader034.fdocument.pub/reader034/viewer/2022052401/55abd7d41a28ab4c678b4593/html5/thumbnails/44.jpg)
Merci !