Sugieren Cassandra modelo de datos para un esquema existente
-
21-09-2019 - |
Pregunta
Espero que haya alguien que me pueda ayudar sugieren un adecuado modelo de datos para ser implementado usando la base de datos nosql de Apache Cassandra.Más de los que necesito para trabajar bajo altas cargas y de grandes cantidades de datos.
Simplificado tengo 3 tipos de objetos:
- Producto
- Etiqueta
- ProductTag
Producto:
key - string key
name - string
.... - some other fields
Etiqueta:
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
Cada producto puede tener 0 o muchas de las etiquetas.La etiqueta puede ser asignado a 1 o muchos productos.Significa que la relación entre los productos y las etiquetas es de muchos a muchos en términos de bases de datos relacionales.
El valor de "calificación" se actualiza muy a menudo.
Necesito que se ejecute las siguientes consultas
- Seleccionar objetos por las teclas
- Seleccione las etiquetas para los productos ordenados por calificación
- Seleccionar los productos por etiqueta orden de clasificación
- Actualización de la clasificación por product_key y tag_key
El más importante es hacer estas consultas muy rápidas en grandes cantidades de datos, teniendo en cuenta que la clasificación se actualiza constantemente.
Solución
Algo como esto:
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
}
}
Actualizar
Marque esta para almacenar mayor puntuación