按非主键列搜索Cassandra的最佳方法
我正在将历史时间序列数据存储到Cassandra中按非主键列搜索Cassandra的最佳方法,cassandra,data-modeling,cqlsh,secondary-indexes,Cassandra,Data Modeling,Cqlsh,Secondary Indexes,我正在将历史时间序列数据存储到Cassandra中 cassandra@cqlsh>CREATE TABLE data."InstrumentTimeSeries" ( key blob, column1 bigint, value blob, PRIMARY KEY (key, column1) ) WITH COMPACT STORAGE AND bloom_filter_fp_chance = 0.01 AND comment = '' AND dcl
cassandra@cqlsh>CREATE TABLE data."InstrumentTimeSeries" (
key blob,
column1 bigint,
value blob,
PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
AND bloom_filter_fp_chance = 0.01
AND comment = ''
AND dclocal_read_repair_chance = 0.0
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE'
AND caching = {
'keys' : 'ALL',
'rows_per_partition' : 'NONE'
}
AND compression = {
'sstable_compression' : ''
}
AND compaction = {
'class' : 'SizeTieredCompactionStrategy'
};
在“value”列中,我在序列化后存储整个json。
现在,我想根据存储在value列中的json中的一些键来获取记录
最好的方法是什么 如果我的理解是正确的,您可以将价格数据作为json存储在值列中。我认为这基本上就是高基数列的定义。在这种情况下,不建议对其进行索引,尤其是在您有大量记录的情况下 您可以在此处找到进一步的解释: 我不知道创建辅助表是什么意思,但它可以解决您的问题。例如,如果您计划将json完全分解为列,然后对相关列使用索引。
如果你能在文章中添加一些例子,那么理解你的问题就更容易了。如果我的理解是正确的,你可以将价格数据作为json存储在你的值列中。我认为这基本上就是高基数列的定义。在这种情况下,不建议对其进行索引,尤其是在您有大量记录的情况下 您可以在此处找到进一步的解释: 我不知道创建辅助表是什么意思,但它可以解决您的问题。例如,如果您计划将json完全分解为列,然后对相关列使用索引。
如果您可以在文章中添加一些示例,您将更容易理解您的问题。请使用DSE Cassandra的Solr或Spark功能,它为非主键列提供了有用的功能。请使用DSE Cassandra的Solr或Spark功能,它为非主键列提供了有用的功能。谢谢Mehul已经通过基于Solr文本的搜索获得了解决方案。谢谢Mehul,已经通过基于Solr文本的搜索获得了解决方案。