Slides de la présentation "Cassandra Java Driver" à l'Ippevent du 20 juin 2013
http://blog.ippon.fr/2013/06/03/ippevent-utiliser-les-nouvelles-apis-cassandra-le-2-juin-2013/
Présentation de la technologie d'aggrégation de liens sous Cisco.
Fonctionnement, Protocoles PaGP et LACP, Configuration sur les switchs Cisco Catalyst
Présentation des protocoles IKE et IPsec utilisés dans la mise en oeuvre de tunnels VPN Site-to-Site et Remote Access.
Fonctionnement du protocole IKEv1, différences avec IKEv2
Fonctionnement du protocole IPsec et de la mise en place d’un tunnel VPN
Extensions du protocole IKEv1 (KeepAlive, DPD, NAT-T. Mode Config, XAUTH)
Présentation du protocole EIGRP
Fonctionnement, Algorithme DUAL, Structure, Configuration sur Cisco IOS, Routes résumées, EIGRP sur réseaux WAN, EIGRP Stubs, Sécurité, Vérification et Troubleshooting, EIGRP pour IPv6, Named EIGRP
Composants et fonctionnement d'un Routeur CiscoDJENNA AMIR
Un routeur est un équipement de niveau 3, assurant le routage des paquets. Son rôle principal est de faire transiter des paquets d'une interface réseau vers une autre, au mieux, selon un ensemble de règles.
Présentation de la technologie d'aggrégation de liens sous Cisco.
Fonctionnement, Protocoles PaGP et LACP, Configuration sur les switchs Cisco Catalyst
Présentation des protocoles IKE et IPsec utilisés dans la mise en oeuvre de tunnels VPN Site-to-Site et Remote Access.
Fonctionnement du protocole IKEv1, différences avec IKEv2
Fonctionnement du protocole IPsec et de la mise en place d’un tunnel VPN
Extensions du protocole IKEv1 (KeepAlive, DPD, NAT-T. Mode Config, XAUTH)
Présentation du protocole EIGRP
Fonctionnement, Algorithme DUAL, Structure, Configuration sur Cisco IOS, Routes résumées, EIGRP sur réseaux WAN, EIGRP Stubs, Sécurité, Vérification et Troubleshooting, EIGRP pour IPv6, Named EIGRP
Composants et fonctionnement d'un Routeur CiscoDJENNA AMIR
Un routeur est un équipement de niveau 3, assurant le routage des paquets. Son rôle principal est de faire transiter des paquets d'une interface réseau vers une autre, au mieux, selon un ensemble de règles.
This document discusses the transition to 21st century teaching and learning. It notes that the amount of new information generated annually now exceeds that of the previous 5,000 years combined. It also states that half of what students learn in their first year of college will be outdated by their third year. The document advocates for teaching creativity and collaboration skills and leveraging technologies like mobile devices and social media in the classroom. It argues that schools must reinvent themselves to remain relevant in preparing students for future jobs and an increasingly digital world.
The document appears to be a presentation about a case study involving Peugeot and social media analytics company comScore. It discusses posts and trends related to the case study on social media and analyzes the consequences and options. It was presented in October 2013 in Peru by Marco Garcia, country manager for comScore, and promotes comScore's social media analytics services.
This document discusses Google App Engine for Business, a platform as a service that allows users to build and host web applications on Google's infrastructure. It offers an enterprise-ready development environment, integration with Google Apps, a domain administration console, and managed SQL and data storage. Pricing is $8 per active user per month with a $1,000 monthly cap. It includes paid support and a 99.9% uptime SLA.
CALPACT - Engaging Target Audiences march 15 2012Dan Cohen
The document provides guidance on using new media tools to educate the public and target audiences. It discusses planning communications strategies, identifying key audiences, and adjusting messaging for different audiences and media. Specific tools covered include social media platforms like Facebook, Twitter, Pinterest, Tumblr, and video sharing sites. The document also provides reality checks on reaching students and millennials with strategies like offering personal connections, soliciting user-generated content, and using mobile technologies.
Découvrez les principes liés à la programmation FPGA d'un point de vu matériel comme logiciel et lancer vous sans crainte dans le développement d'applications à l'aide de LabVIEW FPGA.
La formation CCNP ENCOR 1 est le premier cours pour la préparation à la certification 350-401 ENCOR. Ce cours permet d’apprendre, d’appliquer et de mettre en pratique les connaissances et les compétences de CCNP Enterprise grâce aux concepts théoriques à une série d'expériences pratiques approfondies qui renforce l’apprentissage. Avec cette formation et la formation CCNP ENCOR, vous possédera les outils pour envisager une inscription à l’examen de certification 350-401.
La formation CCNP ENCOR 5/8 est pour objectif de la préparation à la certification 350-401 ENCOR. Ce cours permet d’apprendre, d’appliquer et de mettre en pratique les connaissances et les compétences de CCNP Enterprise grâce aux concepts théoriques à une série d'expériences pratiques approfondies qui renforce l’apprentissage. Avec cette formation et la formation CCNP ENCOR, vous possédera les outils pour envisager une inscription à l’examen de certification 350-401.
Étude de cas Kafka et event sourcing en utilisant JEE et Node Js, pour le projet du module JEE pour le master 2 logiciels sûrs. À l'université Paris-Est Créteil
Paris Scala User Group #43 - Spray (Magnet Pattern) + RxScala / ElasticSearchMourad DACHRAOUI
Retour d'experience sur l'utilisation de spray dans le cadre de Mogobiz. Explication de la technique du "Magnet Pattern" et présentation des bénéfices de l'utilisation de Rx.
http://j.mp/psug43Xebia
Actuellement, on parle beaucoup de traitement en lots (batch) dans le monde du Big Data. Mais qu’en est-il du Streaming et du temps réel ? Beaucoup de frameworks Big Data tentent de répondre à cette problématique. En tête de liste figure Spark : grâce à son composant Spark Streaming, il permet un traitement en continu des flux de données et une disponibilité 24/7.
Au programme :
- Streaming et Architecture Big Data
- Hello world Spark Streaming
- Intégration de Flume à Spark Streaming
- Use case “métriques sur des logs applicatifs”
- Architecture physique : driver / workers / receivers
- Monitoring de Spark Streaming
- Fail over : reliable / unreliable sources, checkpoint, recover
- Tuning et performance.
Speakers :
- Nadhem LAMTI, Architecte Technique chez PALO IT
Depuis 10 ans, Nadhem intervient principalement sur des projets JAVA JEE de grande envergure dans différents secteurs (Télécommunication, Banque, Finance, Transports, Tourisme, etc.), développant ainsi une expertise polyvalente en abordant multiples technologies et architectures. Fort d’une expérience concluante en tant qu’Ingénieur Performance & Support, Nadhem est capable d’intervenir sur des problématiques de production liées à des systèmes d’informations complexes. Actuellement en mission chez Voyages SNCF, il contribue à un grand chantier Big Data de centralisation de logs et s’intéresse tout particulièrement au nouveau produit phare de traitement de données Apache Spark.
- Saâd-Eddine MALTI, Expert BDD chez Voyages SNCF
En poste depuis 10 ans chez Voyages SNCF, Saâd-Eddine intervient en tant qu’Expert BDD sur toutes les applications de manière transverse. L’orientation affichée de Voyages SNCF vers le Big Data pousse Saâd-Eddine à s’investir pleinement dans ce domaine, également sur le nouveau produit phare de traitement de données Apache Spark.
3. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CASSANDRA
Base de données NoSQL orientée colonne
Extrêmement rapide
Pas de SPOF
Écrite en Java
...
2008
Facebook
2013
1.2
2009 2010 2011 2012
1.11.00.8
Apache
top level 0.8
Apache
incubator
4. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
CASSANDRA JAVA DRIVER
DATASTAX CASSANDRA JAVA DRIVER
CQL 3 + CQL Binary Protocol
Version 1.0.0
Release Mai 2013
Compatible avec Cassandra 1.2+
Apache License Version 2.0
Développé par les équipes de Datastax
5. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CQL 3 - CQL
CQL : C assandra Query Language
CQL 3 ~ = SQL
Même syntaxe sans agrégation (JOIN, GROUP BY, …)
Changement de philosophie avec CQL 3 :
→ Nécessite un schéma !
CREATE TABLE Users (KEY text PRIMARY KEY, NAME text)
INSERT INTO Users(KEY, NAME) VALUES ('1','Buzz') SELECT * FROM Users
UPDATE Users SET NAME='Woody' WHERE KEY='1'
ALTER TABLE Users ADD AGE text
6. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CQL 3 - SCHEMA
ippon@ippon:~$ cqlsh -2 -k ippevent
[cqlsh 3.0.2 | Cassandra 0.0.0 | CQL spec 2.0.0 | Thrift protocol 19.36.0]
cqlsh:ippevent> CREATE TABLE person (KEY text PRIMARY KEY, NAME text);
cqlsh:ippevent> INSERT INTO person(KEY, NAME, AGE) VALUES ('1','buzz',30);
cqlsh:ippevent> SELECT * FROM person;
KEY | AGE | NAME
-----+-----+------
1 | 30 | buzz
ippon@ippon:~$ cqlsh -3 -k ippevent
[cqlsh 3.0.2 | Cassandra 1.2.5 | CQL spec 3.0.0 | Thrift protocol 19.36.0]
cqlsh:ippevent> CREATE TABLE person (KEY text PRIMARY KEY, NAME text);
cqlsh:ippevent> INSERT INTO person(KEY, NAME, AGE) VALUES ('1','buzz',30);
Bad Request: Unknown identifier age
CLQ 2
CLQ 3
7. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CQL 3 - UPSERT
Cependant l'UPSERT reste possible
cqlsh:ippevent> SELECT * FROM Mutations;
cqlsh:ippevent> UPDATE Mutations SET A='value from UPDATE'
WHERE KEY='1';
cqlsh:ippevent> SELECT * FROM Mutations;
key | a | b
-----+-------------------+------
1 | value from UPDATE | null
cqlsh:ippevent> INSERT INTO Mutations(KEY,B)
VALUES('1','value from INSERT');
cqlsh:ippevent> SELECT * FROM Mutations;
key | a | b
-----+-------------------+-------------------
1 | value from UPDATE | value from INSERT
8. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
CQL 3 – Super Column
Abandon des Super Columns
Colonne dont la valeur est des colonnes
→ Préférer désormais l'utilisation de
clustering keys
buzz AGE ADRESSE
32 NUMERO RUE VILLE
90 Baudin Levallois
9. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
CQL 3 – Modélisation (Wide Rows)
Wide Rows
Cassandra peut stocker plus de 2M de colonnes par
clef.
Exemple :
→ Comment faire avec CQL 3 ?
buzz 133829 133950 134022 142109
Star command
...
Vers l'infini Où est Zurg ? Space
command ...
woody 133983 134802
J'ai un
serpent ...
Qui a
empoisonné ...
KEY COLUMNS ...
10. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
CQL 3 – Modélisation (Wide Rows)
buzz 133829-dialog 133950-dialog 134022-dialog 142109-dialog
Star command ... Vers l'infini Où est Zurg ? Space command ...
woody 133983-dialog 134802-dialog
J'ai un serpent ... Qui a empoisonné ...
CREATE TABLE DIALOG (
username VARCHAR,
said_at TIMESTAMP,
dialog VARCHAR,
PRIMARY KEY (username, said_at)
)
username said_at dialog
buzz 133829 Star command ...
buzz 133950 Vers l'infini ...
...
woody 133983 J'ai un serpent ...
...
Représentation Logique
Représentation Physique
Partition key Clustering key
13. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CQL Binary Protocol
CQL Binary Protocol remplaçant de Thrift
Thrift : rapide et multi-language
Pourquoi changer ? RPC seulement.
CQL Binary Protocol ouvre la porte au
streaming (curseurs), aux notifications
techniques, …
Mais Thrift reste maintenu
14. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CQL Binary Protocol
Nouveau port (9042 par défaut)
Actif par défaut Cassandra 1.2.5+
Peut cohabiter avec l'interface Thrift
$CASSANDRA_HOME/conf/cassandra.yaml
# Whether to start the native transport server.
# Please note that the address on which the native transport is bound is the
# same as the rpc_address. The port however is different and specified below.
start_native_transport: true
# port for the CQL native transport to listen for clients on
native_transport_port: 9042
# Whether to start the thrift rpc server.
start_rpc: true
# port for Thrift to listen for clients on
rpc_port: 9160
17. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
Java Driver - QueryBuilder
QueryBuilder :
Construction de requêtes typées
Fluent API
Opérations supportées
SELECT
UPDATE
INSERT
DELETE
BATCH
Pas encore d’opérations de DDL (prévu en 1.1.0)
18.
19.
20.
21.
22.
23. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
Java Driver – Policies
ReconnectionPolicy
ConstantReconnectionPolicy // ré-éssai à intervall régulier
ExponentialReconnectionPolicy
LoadBalancingPolicy
DCAwareRoundRobinPolicy // load balance au sein d'un DC
RoundRobinPolicy
TokenAwarePolicy // load balance sur les nœuds qui ont la data
RetryPolicy
DowngradingConsistencyPolicy
LoggingRetryPolicy
24. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
AGILITE
CONCLUSION
Java Driver utilise un nouveau socle tourné vers les
futures releases de Cassandra
CQL 3
Adoption par utilisateurs SQL facilitée
Représentation logique de stockages spécifiques
CQL Binary Protocol
Taillé pour la forte volumétrie
Permettra d'accueillir de nouvelles fonctionnalités (ex :
curseurs)
1ère implémentation de ces 2 socles
API très agréable à utiliser
Très configurable/extensible
25. www.ippon.fr www.atomes.com www.ippon-mobile.fr http://blog.ippon.fr
Liens
C* Summit 2013 :
http://planetcassandra.org/Learn/CassandraSummit
NYC* 2013 - New Cassandra Drivers in Depth« »
Michael Figuière
Documentation :
http://www.datastax.com/doc-source/developer/java-driver/
Benchs
https://github.com/brianfrankcooper/YCSB
https://github.com/vberetti/YCSB