当前位置: 首页 > 知识库问答 >
问题:

cassandra划分和聚类密钥

徐涵亮
2023-03-14

是否可以将列作为分区和聚类键?例如,

创建表citylist2(城市varchar,loc list,pop int,zip varchar,state varchar,primary key(city,city,zip)),使用集群顺序BY(城市ASC,zip DESC);

共有1个答案

于嘉许
2023-03-14

问题很可能是您试图在主键定义中引用city两次。

 类似资料:
  • 所以我有一张表,它看起来像这样: 我们依赖该表根据进行分页来正确排序。 问题是:当从cassandra返回结果时,看起来它们是根据ASCII值而不是逻辑的A-Z排序进行排序的。-对于观看它的人来说,这在程序上是有意义的,但在逻辑上是不合理的。 是否有一个选项来改变当前聚类顺序的方法? -或者另一种逻辑排序的方法?

  • 创建TABLE TABLE(int键、time时间戳、度量浮点、主键(key、time)); 我需要创建一个火花作业,这将读取数据从上一个表,在指定的开始和结束时间戳做一些处理,并刷新结果回Cassandra。 因此,我的spark-cassandra-connector必须对集群cassandra表列进行范围查询。 范围查询的选择性约为1%,不可能在查询中包含分区键。 这两种解决方案哪一种更好?

  • 我们大量使用cassandra wide rows来存储每个用户的时间序列,因为它们非常适合那个用例。假设我们有一个表: 如果时间戳上的冲突可能发生(相同的用户可以用相同的时间戳发出两个不同的事件)。假设我们对所有事件都有一个顺序(每个事件都有一个序列int),那么调整这个模式来解决这个问题的最佳方法是什么。 我将无法执行-cassandra不允许这样做。

  • 我正在尝试将以下结构存储在卡桑德拉中。 上面的大多数查询是 这就是为什么将()设置为主键很有用的原因。 根据docu,Cassandra的默认分区键是主键的第一列-在我的例子中是,但我想在Cassandr集群上均匀分布数据,我不能允许一个中的所有数据只存储在一个分区中,因为有些商店有10M条记录,有些只有1k条记录。 我可以设置()作为分区键,然后我可以达到Cassandra集群中记录的统一分布。

  • DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。 通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。 2. DBSCAN密度定义 在上一节我们定性描述了密度聚类