Я использую базу данных Cassandra для сбора и сохранения данных простого сетевого анализатора, но поскольку число строк в таблице превышает 20 миллионов строк +, невозможно выполнить какую-либо статистическую функцию, такую как sum
или count
.
Ниже приведена схема моей таблицы:
CREATE TABLE db.uinfo (
id timeuuid,
created timestamp,
dst_ip text,
dst_mac text,
dst_port int,
protocol int,
src_ip text,
src_mac text,
src_port int,
PRIMARY KEY (id, created)
) WITH CLUSTERING ORDER BY (created ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
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 = '99PERCENTILE';
Теперь, когда я запускаю запрос (с ограничением или без него):
select src_ip, sum(data) as total from db.uinfo;
Выдает следующую ошибку:
OperationTimedOut: errors={'127.0.0.1': 'Client request timeout. See Session.execute[_async](timeout)'}, last_host=127.0.0.1
Есть ли шанс, что кто-нибудь из вас, хорошие люди, может помочь мне сделать то же самое?Я попытался изменить время ожидания в cqlshrc
и cassandra.yaml
соответственно.Я даже пытался запустить cqlsh используя:
cqlsh --connect-timeout=120 --request-timeout=120
.
Я использую [cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]