0

我正在尝试创建以下层次结构: UserId作为 rowKey,每小时时间序列作为列,并且在每个每小时列内我希望有一个用户特定的信息,例如每小时活动。

{
   UserId:long
   {
      Timestamp:datetime{
         pageview: integer,
         clicks:integer
      }
   }

我已经读过可以使用它来实现它,supercolumns但同时提到它supercolumns现在已经过时了。如果是真的,我可以使用任何替代方案吗?

您能否提供我 CQL / Java thrift 示例我应该如何在 Cassandra 中创建和插入这种类型的结构?

谢谢!

4

2 回答 2

1

您可以为此使用复合主键,我为该表添加了一个表创建 CQL 查询。您可以使用计数器列进行点击。

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
clicks int,
pageview int,
PRIMARY KEY(userid,time_stamp)

)

于 2014-04-14T14:25:43.770 回答
0

如果您的信息受到特定的使用和访问。例如,如果您在任何时候都需要点击和浏览量,我建议您将其用作 json 存储

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
val text,
PRIMARY KEY(userid,time_stamp)
)

val 是一个 json 对象,包含点击次数、综合浏览量等。

优势

1.您不必担心更改表以添加额外的列,这会为每个先前的条目添加一个空值

  1. 如果指定此数据增长,则势必会节省大量空间,因为每个节点中的列元数据都会减少
于 2014-04-15T13:28:25.863 回答