Question

J'espère qu'il ya quelqu'un qui peut me aider à suggérer un modèle de données adapté à mettre en œuvre en utilisant la base de données NoSQL Apache Cassandra. Plus de que j'ai besoin de travailler sous des charges élevées et de grandes quantités de données.

J'ai simplifié 3 types d'objets:

  • Produit
  • balise
  • ProductTag

produit:

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

Chaque produit peut avoir 0 ou plusieurs balises. Tag peut être attribué à 1 ou plusieurs produits. Moyens relation entre les produits et les étiquettes est beaucoup à beaucoup en termes de bases de données relationnelles.

Valeur de « rating » est mis à jour « très » souvent.

Je dois être exécuter les requêtes suivantes

  • Sélectionner les objets par les touches
  • Sélectionner les tags pour les produits commandés par notes
  • Sélectionner les produits par ordre d'étiquette par note
  • note de mise à jour par product_key et tag_key

Le plus important est de rendre ces requêtes très rapidement sur de grandes quantités de données, étant donné que la notation est constamment mis à jour.

Était-ce utile?

La solution

Quelque chose comme ceci:

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
    }
}

UPDATE Cochez cette pour stocker plus gros score

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top