Atelier E1 QUELLES STRATÉGIES NUMÉRIQUES POUR ATTAQUER LES BRICS ?
Quelles stratégies de Recherche avec Cassandra ?
-
Upload
victor-coustenoble -
Category
Software
-
view
830 -
download
0
Transcript of Quelles stratégies de Recherche avec Cassandra ?
![Page 1: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/1.jpg)
Quelles stratégies de Recherche avec Cassandra ?
Webinar 17 septembre 2015Jérôme Mainaud – Victor Coustenoble
![Page 2: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/2.jpg)
Agenda
1.Recherche multi-critères avec Cassandra
2.Recherche avec DataStax Enterprise Search
![Page 3: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/3.jpg)
Ippon Technologies © 2015
Présentation Recherche multi-critères avec Cassandra
Jérôme Mainaud➔ @jxerome➔ Architecte logiciel chez Ippon Technologies➔ DataStax Solution Architect Certifié
![Page 4: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/4.jpg)
Plan
1.Contexte2.Modélisation3.Résultats
![Page 5: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/5.jpg)
Ippon Technologies © 2015
Contexte
Application de facturation en mode SAAS➔ Tous les utilisateurs partagent la même base de données➔ Les données sont isolées par utilisateur
Application volumineuse➔ un an de stockage➔ 500 millions de factures➔ 2 milliards de lignes de facturation
![Page 6: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/6.jpg)
Ippon Technologies © 2015
Contexte
![Page 7: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/7.jpg)
Ippon Technologies © 2015
Evolution du back-end
![Page 8: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/8.jpg)
Modélisation
![Page 9: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/9.jpg)
Ippon Technologies © 2015
Modèle conceptuel
![Page 10: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/10.jpg)
Ippon Technologies © 2015
Modèle physique
![Page 11: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/11.jpg)
Ippon Technologies © 2015
Recherche multi-critères
Critères obligatoires➔ User (implicite)➔ Date de la facture (plage de dates)
Critères supplémentaires➔ Nom du client➔ Prénom du client➔ Ville➔ Code postal
![Page 12: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/12.jpg)
Ippon Technologies © 2015
Utiliser Solr ?
●Intégré dans DataStax Enterprise●Mise à jour atomique et automatique●Recherche documentaire
![Page 13: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/13.jpg)
Ippon Technologies © 2015
Utiliser Solr ?
●On cherche sur des colonnes statiques➔ Solr ne les gère pas
●On cherche des partitions➔ Solr retourne des lignes
![Page 14: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/14.jpg)
Ippon Technologies © 2015
Tables d’index
Utilisation de tables d’index➔ Clé de partition : Les critères primaire et un critère secondaire
○ user_id○ date de facturation (tronqué à la date)○ le critère secondaire
➔ Clustering columns : l’identifiant de la facture
![Page 15: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/15.jpg)
Ippon Technologies © 2015
Tables d’index
![Page 16: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/16.jpg)
Ippon Technologies © 2015
Vue dématérialisée
CREATE MATERIALIZED VIEW invoice_by_firstname AS SELECT invoice_id FROM invoice WHERE firstname IS NOT NULL PRIMARY KEY ((user_id, invoice_day, firstname), invoice_id)WITH CLUSTERING ORDER BY (invoice_id DESC)
new in
3.0
![Page 17: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/17.jpg)
Ippon Technologies © 2015
Recherches sur les index en parallèle
Fusion par application
en mémoire
![Page 18: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/18.jpg)
Ippon Technologies © 2015
Recherches unitaires en parallèleUne page de résultat (id)
![Page 19: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/19.jpg)
Ippon Technologies © 2015
Recherche
Recherche sur une plage de dates➔ boucle sur les jours en s’arrêtant
dès qu’on a une page de résultat
![Page 20: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/20.jpg)
Ippon Technologies © 2015
Complexité de la recherche
Nombre de requêtes➔ Pour chaque jour dans la plage de dates
○ 1 requête par critère secondaire (partition by query)➔ 1 requête par élément trouvé (partition by query)
Complexité de la recherche➔ partitions by query
Exemple: 3 critères, 7 jours, 100 par page➔ nombre de requêtes ≤ 3 × 7 + 100 = 121
![Page 21: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/21.jpg)
Résultats
![Page 22: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/22.jpg)
Ippon Technologies © 2015
Limitations
●C’est une recherche exacte➔ Pas de recherche plein texte➔ Pas de recherche « commence par »➔ Pas de recherche sur un pattern
●Nécessite des critères obligatoires fortement discriminants
➔ user_id & invoice_day
●La pagination ne donne pas le nombre total de pages de résultats
➔ Réalisable moyen coût de lecture plus important
●Pas de tri possible
![Page 23: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/23.jpg)
Ippon Technologies © 2015
Matériel
●Hébergement chez Ippon Hosting●8 noeuds équivalents
➔ 16 Go de RAM➔ Deux disques durs SSD de 256 Go en RAID 0
●6 noeuds pour le cluster Cassandra●2 noeuds pour l’application
![Page 24: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/24.jpg)
Ippon Technologies © 2015
Résultats
●5000 utilisateurs simultanés●9 mois de données
➔ Ancien système : 3 mois➔ Objectif : 3 ans
●Résultats en « temps réel »➔ Les données sont immédiatement disponibles➔ Ancien système : 24h de retard
●Réduction importante des coûts
![Page 25: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/25.jpg)
Ippon Technologies © 2015
Présentation DataStax Enterprise Search
Victor Coustenoble➔ @vizanalytics➔ Ingénieur Solutions chez DataStax
![Page 26: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/26.jpg)
Plan
1.Qu’est-ce que la Recherche ?
2.DataStax Enterprise Search ?
3.Apache Solr ?4.Pourquoi avec
Cassandra ?5.Comment ça fonctionne ?
![Page 27: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/27.jpg)
Ippon Technologies © 2015Confidential
Qu’est ce que la Recherche ?
27
![Page 28: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/28.jpg)
Ippon Technologies © 2015
DataStax Enterprise Search ?
DataStax Enterprise Search = Apache Solr complétement et finement intégré au dessus de Apache Cassandra
= Un moteur de recherche d’entreprise sur des données Cassandra à travers le moteur Lucene et une intégration de Apache Solr
![Page 29: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/29.jpg)
Ippon Technologies © 2015Confidential 29
Apache Solr ?
• La base de presque tous les moteurs de recherches (comme Elastic search)
• Rapide, haute performance et scalable• Indexation et Recherche• Options de recherche avancée comme
full text, facet, geospatial, synonymes, proximités …
• http://lucene.apache.org
• Système de recherche d’entreprise Open Source
• Enveloppe au dessus du moteur Lucene
• Possibilité de customisation• Indexation et requêtes de
recherche via une API HTTP
![Page 30: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/30.jpg)
Ippon Technologies © 2015Confidential
Indexation Solr – Efficace et rapide !
30
Credit: https://developer.apple.com/library/mac/documentation/userexperience/conceptual/SearchKitConcepts/searchKit_basics/searchKit_basics.html
Terms
![Page 31: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/31.jpg)
Ippon Technologies © 2015Confidential
Solr ne peut pas être tout seul
31
![Page 32: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/32.jpg)
Ippon Technologies © 2015Confidential 32
Haute disponibilité Scalabilité Linaire Requêtes OLTP avec une faible
latence
C *
Apache Cassandra
![Page 33: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/33.jpg)
Ippon Technologies © 2015Confidential 33
+ =
![Page 34: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/34.jpg)
Ippon Technologies © 2015
Comment Solr est intégré à cassandra ?
● Même JVM entre Cassandra et Solr sur chaque nœud Cassandra
● Index Lucene stockés et répliqués sur les nœuds du cluster Cassandra
![Page 35: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/35.jpg)
Ippon Technologies © 2015Confidential 35
• Cassandra stocke les données• Solr stocke les indexes pour une
recherche rapide• Les données sont indéxés
localement sur les noeuds• Vous pouvez oublier que Solr existe
• Vous pouvez faire des requêtes Solr
à travers Cassandra
Comment Solr est intégré à cassandra ?
![Page 36: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/36.jpg)
Ippon Technologies © 2015Confidential 36
C * / S o l r
Comment Solr est intégré à cassandra ?
1 seul Data Center
![Page 37: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/37.jpg)
Ippon Technologies © 2015Confidential 37
C * C * / S o l r
Comment Solr est intégré à cassandra ?
2 Data Center : 1 OLTP + 1 Recherche (sans ETL)
Replication automatique
![Page 38: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/38.jpg)
Ippon Technologies © 2015
Par rapport à Solr tout seul
• Pas de goulot d’étranglement• Le client peut lire/écrire sur tous
les noeuds Solr• Partionnement et réplication des
index de recherche pour la montée en charge et la disponibilité
• Support Multi-Data Center• Durabilité de la donnée (Solr
manque de log, les données peuvent être perdues)
Architecture SolrCloud
![Page 39: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/39.jpg)
Ippon Technologies © 2015Confidential
Indexation temps réel avec DSE Search
39
Standard Solr Indexing
DSE Search Live Indexing
![Page 40: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/40.jpg)
Ippon Technologies © 2015Confidential 40
Terme Cassandra Terme Solr
Column Family / Table Core
Row Document
Column Field
SSTable Index
Vocabulaire
![Page 41: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/41.jpg)
Ippon Technologies © 2015Confidential
Interface d’administration Solr
41
![Page 42: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/42.jpg)
Ippon Technologies © 2015Confidential 42
Requêtage Solr – Indexation et Recherche
API HTTP de Solr API CQL de Cassandraou
• Select * from demo.users_product where solr_query='{"q":"product_name:livre","facet":{"field":"product_attrib"}}';
• Select title,body from wiki.solr where solr_query='(title:foot* AND body:Arthur*) OR title:sport*';
• select * from amazon.metadata where solr_query='{"q":"title:Maltese~","fq":"categories:book"}';
![Page 43: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/43.jpg)
Ippon Technologies © 2015
// Videos by idCREATE TABLE videos ( videoid uuid, userid uuid, name text, description text, location text, location_type int, preview_image_location text, tags set<text>, added_date timestamp, PRIMARY KEY (videoid));
Confidential 43
Not a great idea
Possible Index
// Index for tag keywordsCREATE TABLE videos_by_tag ( tag text, videoid uuid, added_date timestamp, userid uuid, name text, preview_image_location text, tagged_date timestamp, PRIMARY KEY (tag, videoid));
Solution classique Cassandra
• Maintenance manuelle des tables “d’index” !• Attention aux index secondaires !
![Page 44: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/44.jpg)
Ippon Technologies © 2015Confidential 44
// Videos by idCREATE TABLE videos ( videoid uuid, userid uuid, name text, description text, location text, location_type int, preview_image_location text, tags set<text>, added_date timestamp, PRIMARY KEY (videoid);
And th
is?This?
This?
Solution Solr
![Page 45: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/45.jpg)
Ippon Technologies © 2015Confidential 45
![Page 46: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/46.jpg)
Ippon Technologies © 2015Confidential 46
1. Démarrer un cluster Cassandra avec la recherche activées en utilisant l’installeur de DSE.
$ sudo service dse cassandra -s2. Création du keyspace et de la table Cassandra en CQL.3. Execution de dse_tool sur la table videos
$ dsetool create_core killrvideo.videos generateResources=true4. Utilisation de l’interface d’administration de Solr afin de vérifier la création
du core Solr.5. Ecriture d’une requête CQL avec une recherche Solr.
select* from videos where solr_query='description:cassandra*';
Mise en place
![Page 47: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/47.jpg)
Ippon Technologies © 2015
DataStax Enterprise
• Support• Sécurité• Production ready• Administration• Supervision• Analytique• Recherche• In-Memory
![Page 48: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/48.jpg)
Ippon Technologies © 2015
Plus sur DataStax et Cassandra
DataStax: http://www.datastax.comDownloads: http://www.datastax.com/downloadDocumentation: http://www.datastax.com/docs Developer Blog: http://www.datastax.com/dev/blogAcademy: https://academy.datastax.com/Community Site: http://planetcassandra.org
![Page 49: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/49.jpg)
Ippon Technologies © 2015
Merci
Questions & Réponses
![Page 50: Quelles stratégies de Recherche avec Cassandra ?](https://reader035.fdocument.pub/reader035/viewer/2022062503/586e8a2c1a28aba0038b7bf1/html5/thumbnails/50.jpg)
PARISBORDEAUX
NANTESWASHINGTON
NEW-YORKRICHMOND
[email protected] - www.ippon-hosting.com - www.ippon-digital.fr
@ippontech-
01 46 12 48 48