Этот вопрос также здесь .
У меня есть кластер из 3 узлов с Elassandra 6.2.3.7.Я создал пространство ключей и таблицу в Cassandra, а затем создал соответствующий индекс в ES с помощью PUT API .
Я также изменил gc_grace_seconds
на 21600, здесь структура:
CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1'} AND durable_writes = true;
CREATE TABLE mykeyspace .mytable(
event_datetime timestamp,
agent text,
f1 text,
....
PRIMARY KEY (f1, event_datetime)
) WITH CLUSTERING ORDER BY (event_datetime DESC)
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 = 21600
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';
CREATE CUSTOM INDEX elastic_mytable_idx ON mykeyspace .mytable () USING 'org.elassandra.index.ExtendedElasticSecondaryIndex';
После вставки некоторых данных в Cassandra, используя драйвер cassandra NodeJS, я заметил, что в индексе ES слишком много документов, относящихся к Cassandra.Это вызвано тем, что некоторые документы в ES в некотором роде являются «пустыми», присутствуют только поля _id
, _index
, _type
и _score
, и нет поля _source
, содержащего мои данные.
Пример документа без поля _source
....
"hits": {
"total": 4,
"max_score": 10.738641,
"hits": [
{
"_index": "myindex",
"_type": "mytype",
"_id": """["p1",1543540357000]""",
"_score": 10.738641
},
...
Я также запросил у Кассандры _id
, и результат верный, там нет странных записей.
После того, как rebuild_index
эти пустые документы исчезли, но после ночной работы вернулись пустые документы.
Вариант использования: Программа nodejs создает: read
s данныес Кассандры, delete
запись на Кассандре, write
данные на Кассандре.
возможно, что такое поведение вызвано процессом сжатия ?
Чтоможет вызвать такое поведение?
Проблема может быть похожа на # 226