Domanda

Spero che ci sia qualcuno che mi può aiutare a suggerire un modello di dati adatto ad essere implementato utilizzando banca dati NoSQL Apache Cassandra. Più di quanto ho bisogno di lavorare sotto carichi elevati e grandi quantità di dati.

semplificata ho 3 tipi di oggetti:

  • prodotto
  • tag
  • ProductTag

del 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. Tag può essere assegnato a 1 o più prodotti. Mezzi relazione tra prodotti e tag è molti-a-molti, in termini di database relazionali.

Valore di "rating" si aggiorna "molto" spesso.

ho bisogno di essere eseguire le seguenti query

  • Seleziona oggetti di chiavi
  • Seleziona tag per il prodotto in ordine di voto
  • Selezionare i prodotti per ordine tag rating
  • Aggiornamento rating da PRODUCT_KEY e tag_key

Il più importante è quello di rendere queste query veramente veloce su grandi quantità di dati, considerando che il rating è in costante aggiornamento.

È stato utile?

Soluzione

Qualcosa di simile a questo:

Products : { // Column Family  
    productA : { //Row key  
        name: 'The name of the product' // column
        price: 33.55 // column
        tags : 'fun, toy' // column
    }  
}

ProductTag : { // Column Family
    fun : { //Row key
        timeuuid_1 : productA // column
        timeuuid_2 : productB // column
    },
    toy : { //Row key
        timeuuid_3 : productA // column
    }
}

Aggiorna
Controllare questo per memorizzare più grande punteggio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top