代码之家  ›  专栏  ›  技术社区  ›  Andriy B

为现有模式建议Cassandra数据模型

  •  10
  • Andriy B  · 技术社区  · 16 年前

    我希望有人能帮助我建议使用nosql数据库apache cassandra实现一个合适的数据模型。比我在高负荷和大量数据下工作所需要的更多。

    简化我有三种类型的对象:

    • 产品
    • 标签
    • 产品标签

    产品:

    key - string key
    name - string
    .... - some other fields
    

    标签:

    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
    

    每个产品可能有0个或多个标签。标签可以分配给一个或多个产品。就关系数据库而言,产品和标签之间的关系是多对多的。

    “等级”的值经常更新。

    我需要运行以下查询

    • 按键选择对象
    • 为按等级订购的产品选择标签
    • 按标签顺序按等级选择产品
    • 按产品密钥和标记密钥更新分级

    最重要的是,考虑到评级是不断更新的,要使这些查询在大量数据上运行得非常快。

    1 回复  |  直到 16 年前
        1
  •  2
  •   rodrigoap    16 年前

    像这样的:

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

    更新
    检查这个 Model to store biggest score