Поле _source ES отсутствует и несоответствие данных между Cassandra и ES
Этот вопрос также здесь.
У меня есть кластер из 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
данные с Кассандры, delete
запись о Кассандре, write
Данные о Кассандре.
Возможно ли, что такое поведение вызвано процессом уплотнения?
Что может вызвать это поведение?
Проблема может быть похожа на #226