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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top