我正在为卡桑德拉的金融股票存储建模,我需要在那里进行追溯性变更。 我只想到一个仅附加数据库。
CREATE TABLE historical_data (
ticker text,
eoddate timestamp,
price double,
created timestamp,
PRIMARY KEY(ticker, eoddate)
) WITH CLUSTERING ORDER BY (eoddate DESC);"""
例如,记录可能是: ticker = AAPL,eoddate = 2016-09-28,price = 123.4,created = 2016-09-28 16:30:00
一天后,有一个复古数据修复,我再插入另一条记录 ticker = AAPL,eoddate = 2016-09-28,price = 120.9,created = 2016-09-29 09:00:00
如果我想获得AAPL的最新系列(即过滤第一个值),建模/查询此数据的最佳方法是什么? 在SQL中我可以写一个parition查询。在CQL中怎么样?
或者应该在应用程序级别应用过滤器吗?
感谢。
答案 0 :(得分:0)
如果我理解你的需要,你的桌子就好了。 使用此架构,您可以运行以下查询:
SELECT price
FROM historical_data
WHERE ticker = 'AAPL'
LIMIT 1;
它将返回股票代码AAPL的最后价格。
CLUSTERING ORDER BY
子句以特定ticker
的降序对您的数据进行物理排序,它不会对整个表进行排序。所以这个查询应该足够了。