Spero che qualcuno possa aiutarmi a suggerire un modello di dati adatto da implementare utilizzando il database nosql Apache Cassandra. Più di quanto ne ho bisogno per lavorare con carichi elevati e grandi quantità di dati.Suggerisci un modello dati Cassandra per uno schema esistente
semplificato Ho 3 tipi di oggetti:
- prodotto
- Tag
- ProductTag
prodotto:
key - string key
name - string
.... - some other fields
Tag:
key - string key
name - unique tag words
ProductTag:
product_key - foreign key referring to product
tag_key - foreign key referring to tag
rating - this is rating of tag for this product
Ogni prodotto può avere 0 o più tag. Il tag può essere assegnato a 1 o più prodotti. La relazione tra prodotti e tag è molti-a-molti in termini di database relazionali.
Il valore di "classificazione" viene aggiornato "molto" spesso.
ho bisogno di essere eseguire le seguenti query
- Selezionare gli oggetti di chiavi
- Seleziona tag per il prodotto in ordine di voto
- selezionare i prodotti attraverso l'ordine dei contrassegni per voto
- Aggiornamento rating da PRODUCT_KEY e tag_key
Il più importante è rendere queste query davvero veloci su grandi quantità di dati, considerando che la valutazione è costantemente aggiornata.
Che dire messa in vendita di etichette di prodotti in ordine di voto? O elencando i prodotti con un'etichetta ordinata per valutazione? Tale query richiederebbe l'uso di 2 indici allo stesso tempo per essere efficace –
Ha senso. Grazie per il link! Un'altra idea che sto considerando è quella di utilizzare strumenti esterni come la ricerca di sfinge o forse lucandra per selezionare oggetti ordinati per valutazione. La ricerca di testo completo della Sfinge funziona bene per tali compiti, ma non supporta gli aggiornamenti "in tempo reale" dell'indice. –