我在Cassandra有一个简单的架构,我在建议here中按照模式1存储了大量的金融市场时间序列,即:
大约有2000个代码,每个代码都在它们自己的行中,并且每个代码都有100k到1m的时间序列数据点(“列”)。如何有效地获取股票代码(即2000股票代号?在上面的类比中,蓝色的“WeatherStationID”单元?)。与上面的唯一区别是我有按时间DESC排序的行,所以我的实际表格如下所示:
NTIMES=5
count=0
while [ $count -lt $NTIMES ]
do
mplayer the_sound_file
sleep 1800 # 1800 seconds == 30 min
count=`expr $count + 1`
done
我是否必须从特定时间戳值上方的整个表中选择*并解析它?问题在于,并非所有的代码都有最新的数据,因此我可能需要在时间上相当远,以便全部捕获它们,在这种情况下,对于包含大量最新数据的代码,我可能会通过大量的冗余信息。
答案 0 :(得分:2)
实际上,您应该能够使用DISTINCT
:
SELECT DISTINCT ticker FROM ts.mindesc;
虽然CQL中的100k行可能无法在未绑定的WHERE中执行,但2000分区键不应该是。