【问题标题】:cassandra how to select token for compound primary keycassandra如何为复合主键选择令牌
【发布时间】:2019-10-14 02:36:07
【问题描述】:

我想为我的表中的一行获取令牌,其主键如下所示:

PRIMARY KEY ((C1, C2), C3)

我尝试使用以下选择

SELECT token((C1, C2), C3) from myTable

但得到一个错误 SyntaxException: line 1:12 no viable alternative at input '('

这种查询的正确语法是什么

【问题讨论】:

    标签: cassandra cassandra-3.0 cqlsh scylla


    【解决方案1】:

    只能在主键的分区键部分调用令牌。在你的情况下,它会是

    select token(C1, C2) from myTable;
    

    【讨论】:

    • 那我怎样才能对页面进行全表扫描呢?
    • 我认为如果在令牌范围太大并且令牌仅采用“id”时查询超时,您会遇到问题。如果您的集群键范围大于令牌页面大小,您可能会重新读取相同的范围,不是吗?
    • 否...这是 spark cassandra 连接器和其他产品使用的算法。另外 - 集群键没有范围 - 它们仅针对分区键生成
    • 所以我不明白如何分页。如果我每次迭代只想拉 1k 行并且分区键有 5k 行(5k 集群键)
    猜你喜欢
    • 2014-05-19
    • 2014-05-26
    • 2013-09-04
    • 2013-12-31
    • 2016-04-08
    • 2023-03-31
    • 1970-01-01
    • 2012-07-28
    • 2012-12-28
    相关资源
    最近更新 更多