如何有效地获取 Cassandra table 中的所有行名称?

How do I obtain all the row names in a Cassandra table, efficiently?

我在 Cassandra 中有一个简单的模式,我根据建议 here 中的模式 1 存储了大量金融市场时间序列,即: 大约有 2000 个代码,每个代码都在自己的行中,每个代码都有 100k 到 1m 的时间序列数据点 ("columns")。我如何有效地获取代码名称(即 2000 个代码名称?在上面的类比中,蓝色 "WeatherStationID" 单元格?)。与上面的唯一区别是我有按时间 DESC 排序的行,所以我的实际 table 看起来像这样:

CREATE TABLE ts.mindesc (
    ticker text,
    time timestamp,
    close float,
    high float,
    low float,
    numevents int,
    open float,
    source text,
    value float,
    PRIMARY KEY (ticker, time)
) WITH CLUSTERING ORDER BY (time DESC)

我是否必须 select * 从整个 table 超过某个时间戳值并解析它?这样做的问题是,并非所有的代码都有最新数据,所以我可能不得不在时间上回溯很久才能捕获它们,在这种情况下,对于具有大量最新数据的代码,我可能会获得大量冗余信息.

实际上,您应该能够通过使用 DISTINCT:

非常快速地查询分区键
SELECT DISTINCT ticker FROM ts.mindesc;

虽然 CQL 中的 10 万行在未绑定 WHERE 的情况下可能表现不佳,但 2000 个分区键不应该成为问题。