Uso DSE per l'integrazione Cassandra/Solr in modo che i dati vengano archiviati in Cassandra e indicizzati in Solr. È molto naturale utilizzare Cassandra per gestire le operazioni CRUD e utilizzare Solr per la ricerca full text rispettivamente, e DSE può davvero semplificare la sincronizzazione dei dati tra Cassandra e Solr.Quando utilizzare Cassandra vs. Solr in DSE?
Quando si tratta di query, tuttavia, ci sono in realtà due modi per andare: Cassandra secondario/manuale configurato indice vs. Solr. Voglio sapere quando utilizzare il metodo e qual è la differenza di prestazioni in generale, specialmente in fase di configurazione del DSE.
Ecco un esempio di caso d'uso nel mio progetto. Ho una tabella Cassandra che memorizza alcuni dati di entità articolo. Oltre all'operazione CRUD di base, ho anche bisogno di recuperare gli oggetti in base all'uguaglianza in alcuni campi (ad esempio la categoria) e quindi ordinare secondo un certo ordine (nel mio caso, un campo like_count).
Posso pensare a tre diversi modi per gestire esso:
- Declare 'indicizzati = true' nello schema Solr sia per categoria e settore like_count e query in Solr
- Creare una tabella denormalizzato in Cassandra con chiave primaria (categoria, like_count, id)
- Creare una tabella denormalizzato in Cassandra con chiave primaria (categoria, ordine, id) e utilizzare un componente esterno, come Spark/tempesta, per ordinare gli articoli da like_count
Il primo metodo sembra essere il più semplice da implementare e mantenere. Scrivo solo qualche codice di accesso Solr banale e il resto dei lavori pesanti viene gestito dalla ricerca Solr/DSE.
Il secondo metodo richiede denormalizzazione manuale su creazione e aggiornamento. Devo anche mantenere una tabella separata. Esiste anche un problema di rimozione delle pietre tombali dal momento che il like_count può essere aggiornato frequentemente. La parte buona è che la lettura potrebbe essere più veloce (se non ci sono lapidi eccessive).
Il terzo metodo può alleviare il problema delle pietre tombali al costo di un componente aggiuntivo per l'ordinamento.
Quale metodo ritiene sia l'opzione migliore? Qual è la differenza nelle prestazioni?
+1 Risposta brillante. E sono totalmente d'accordo con gli indici secondari che hanno casi d'uso limitati. Probabilmente lo strumento più incompreso a Cassandra in questo momento. – Aaron
+1 Non avrei potuto dirlo meglio. Recentemente mi sono imbattuto in questo dilemma e mi sono trovato a usare Solr per TUTTE le operazioni di lettura perché Cassandra non poteva filtrare su più di una colonna per query (fondamentalmente, perché gli indici secondari di Cassandra possono essere dichiarati solo su una colonna alla volta - cioè ci sono senza indici composti). Per me, questo è il limite principale. –
Ottima risposta !! Come diresti gli indici SASI rispetto a DSE/Solr. Mi piacerebbe davvero sentire la tua opinione. – taylorcressy