【问题标题】:NoSQL (cassandra) data model for my project我的项目的 NoSQL (cassandra) 数据模型
【发布时间】:2014-04-01 04:44:08
【问题描述】:

我需要您对我为我的项目设计的数据模型提出意见。我的项目是实时推荐系统。有一些推荐算法的集合。它的意思是这样的:

集合1 { 算法1、算法5、算法6 }

集合2 { 算法5,算法6,算法7,算法8 }

等等

我需要将成功、选择概率、得分等数据存储到集合中的每个算法(每 2 分钟)。所以我选择了 Cassandra 作为我的数据存储,因为它适用于时间序列。我需要存储我的数据,以便稍后在某些图形和图表中显示。您认为我的数据模型解决方案可以吗?我是这样弄的:

CREATE TABLE algorithm_by_collection_and_date (
   algorithm_id text,
   collection_id text,
   date text,
   event_time timestamp,
   score double,
   probability double,
   PRIMARY KEY ((algorithm_id,collection_id,date),event_time)
);

因此它的设计类似于行分区,通过向行键添加数据来限制集合中每个算法的列数(按日期)。

您对此有何看法?谢谢,简

【问题讨论】:

    标签: database-design nosql cassandra column-family


    【解决方案1】:

    我会拥有这样的结构 - 它可以让您标准化您的结构并使其设计更简洁。我已经匆匆忙忙了,请为列添加正确的数据类型以及引用完整性约束。

    CREATE TABLE algorithm
    (
        algorithmId uuid PRIMARY KEY,
        algorithmName text
    )
    
    CREATE TABLE collection
    (
        collectionID uuid PRIMARY KEY,
        collectionName text
    )
    
    CREATE TABLE algo_collection
    (
        algoCollectionID uuid PRIMARY KEY
        collectionID
        algorithmID
    )
    
    CREATE TABLE recommendation
    (
        algoCollectionID 
        date    
        event_time,
        score,
        probability
    
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多