Лучший способ поиска Cassandra по столбцу без первичного ключа

Я сохраняю исторические данные временных рядов в 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 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'
};

В столбце «значение» я сохраняю весь json после его сериализации. Теперь я хочу получить записи на основе некоторых ключей из json, хранящихся в столбце значений.

  1. Я могу создать дублирующую таблицу, добавив новые столбцы кластеризации в соответствии с требованиями. или же
  2. Я могу думать о вторичном ИНДЕКСЕ

У меня более 20 миллионов записей в таблице.

Как лучше всего это сделать?


person Anil Kapoor    schedule 26.04.2018    source источник


Ответы (2)


Если я правильно понимаю, вы сохраняете данные о цене как json в столбце значений. Я думаю, что в основном это определение столбца высокой мощности. В этом случае не рекомендуется индексировать это, особенно если у вас много записей.

Дополнительные пояснения можно найти здесь: https://docs.datastax.com/en/cql/3.3/cql/cql_using/useWhenIndex.html#useWhenIndex__when-no-index

Я не уверен, что вы подразумеваете под созданием вторичной таблицы, но это может решить вашу проблему. Например, если вы планируете полностью разложить свой json на столбцы, а затем использовать индексацию для соответствующих столбцов. Было бы легче понять вашу проблему, если бы вы добавили пример в свой пост.

person Andrea Nagy    schedule 26.04.2018

Пожалуйста, используйте функцию Solr или Spark DSE Cassandra, которая предоставляет полезные функции для столбцов, не являющихся первичными ключами.

person Mehul Gupta    schedule 13.06.2018
comment
Спасибо, Mehul, уже нашел решение, используя текстовый поиск Solr. - person Anil Kapoor; 13.06.2018