50
Quelles stratégies de Recherche avec Cassandra ? Webinar 17 septembre 2015 Jérôme Mainaud – Victor Coustenoble

Quelles stratégies de Recherche avec Cassandra ?

Embed Size (px)

Citation preview

Page 1: Quelles stratégies de Recherche avec Cassandra ?

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 ?

Agenda

1.Recherche multi-critères avec Cassandra

2.Recherche avec DataStax Enterprise Search

Page 3: Quelles stratégies de Recherche avec Cassandra ?

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 ?

Plan

1.Contexte2.Modélisation3.Résultats

Page 5: Quelles stratégies de Recherche avec Cassandra ?

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 ?

Ippon Technologies © 2015

Contexte

Page 7: Quelles stratégies de Recherche avec Cassandra ?

Ippon Technologies © 2015

Evolution du back-end

Page 8: Quelles stratégies de Recherche avec Cassandra ?

Modélisation

Page 9: Quelles stratégies de Recherche avec Cassandra ?

Ippon Technologies © 2015

Modèle conceptuel

Page 10: Quelles stratégies de Recherche avec Cassandra ?

Ippon Technologies © 2015

Modèle physique

Page 11: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015

Tables d’index

Page 16: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

Ippon Technologies © 2015

Recherches unitaires en parallèleUne page de résultat (id)

Page 19: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

Résultats

Page 22: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015Confidential

Qu’est ce que la Recherche ?

27

Page 28: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015Confidential

Solr ne peut pas être tout seul

31

Page 32: Quelles stratégies de Recherche avec Cassandra ?

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 ?

Ippon Technologies © 2015Confidential 33

+ =

Page 34: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

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 ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015Confidential

Interface d’administration Solr

41

Page 42: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015Confidential 45

Page 46: Quelles stratégies de Recherche avec Cassandra ?

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 ?

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 ?

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 ?

Ippon Technologies © 2015

Merci

Questions & Réponses

Page 50: Quelles stratégies de Recherche avec Cassandra ?

PARISBORDEAUX

NANTESWASHINGTON

NEW-YORKRICHMOND

[email protected] - www.ippon-hosting.com - www.ippon-digital.fr

@ippontech-

01 46 12 48 48