Vorschlagen Cassandra Datenmodell für ein vorhandenes Schema
-
21-09-2019 - |
Frage
Ich hoffe, es ist jemand, den mir Modell vorschlagen, ein geeignetes Daten helfen kann zu NoSQL-Datenbank Apache Cassandra realisiert. Mehr von als ich brauche es an der Arbeit unter hohen Lasten und große Datenmengen.
Vereinfacht Ich habe 3 Arten von Objekten:
- Produkt
- Tag
- ProductTag
Produkt:
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
kann jedes Produkt hat 0 oder viele Tags. Tag kann auf 1 oder viele Produkte zugeordnet werden. Mittel Beziehung zwischen den Produkten und Marken ist many-to-many in Bezug auf relationale Datenbanken.
Wert von „Bewertung“ aktualisiert „sehr“ häufig.
Ich brauche die folgenden Abfragen ausgeführt werden soll
- Objekte auswählen mit den Tasten
- Wählen Sie Tags für Produkt nach Bewertung geordnet
- Wählen Sie Produkte nach Tag, um nach Bewertung
- Update Bewertung von PRODUCT_KEY und tag_key
Das wichtigste ist, diese Abfragen sehr schnell auf große Datenmengen zu machen, dass Bewertung unter Berücksichtigung ständig aktualisiert wird.
Lösung
So etwas wie folgt aus:
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
Sehen Sie sich diese Modell zu speichern größte Punktzahl