获取cassandra中的所有分区键

时间:2017-08-17 21:29:31

标签: cassandra

我的数据负荷很高(每分钟约50万),这就是我的表格:

CREATE TABLE test.metric (
    key text,
    timestamp bigint,
    value double,
    PRIMARY KEY (key, timestamp) )

我需要获得所有独特的key。我当然可以做SELECT DISTINCT key from metrics;但我想知道是否有更有效的方法(除了创建另一个只包含密钥的表)来获取所有不同的分区键(可能来自某些cassandra表)

1 个答案:

答案 0 :(得分:2)

您要做的是设置一组并行作业,每个作业都执行:

SELECT DISTINCT key FROM metrics WHERE token(key) >= ? AND token(key) < ?

然后将环(你可能正在使用Cassandra的Murmur3分区器,你将从-2 ^ 63转到2 ^ 63)分成合理的多个部分,然后并行发出这些查询。您可以使用nodetool ring的输出来帮助您提供有关分割作业的一些提示 - 将其分解为主机,这样您每个主机只运行少量SELECT查询可能是最佳的。