2015-05-20 4 views
0

Когда я подключаю Elasticsearch к моей базе данных MySQL, используя этот JDBC.Elasticsearch, вставляющий повторяющиеся данные?

Я хочу, чтобы он регулярно выбирал, чтобы получать последние изменения из базы данных, но похоже, что из журналов он копирует все данные на каждой итерации, а не только самые последние изменения. Хотя, когда я выполняю поиск с использованием REST API, я не вижу никаких дубликатов. Это нормально?

Журнал говорит, что это каждая минута (с rows увеличивается с ~ 3000 каждый раз):

[INFO] [river.jdbc.RiverMetrics] трубопровод org.xbib.elasticsearch.plugin.jdbc.RiverPipeline @ 273cf2ca complete: river jdbc/items metrics: 24745 rows, 61.24885239965816 mean, (56.52859885706843 11.685682148116433 3.916887460538012), показатели ingest: прошло 0 секунд, 291,25 Кбайт байт, 12,0 байт, 1,061 МБ/с [2015-05-20 22 : 22: 15,607] [INFO] [cluster.routing.allocation.decider] [Гидеон] водяной знак с низким диском [15%] превышен на [6TQNFDctRSaYVFyKjQahJA] [Gideon] бесплатно: 26.6gb [11.4%], реплики не будут назначены этот узел

Это то, что я использую для запуска JDBC

curl -XPUT 'localhost:9200/_river/items/_meta' -d '{ 
    "type" : "jdbc", 
    "jdbc" : { 
     "url" : "jdbc:mysql://localhost:3306/mydb", 
     "user" : "root", 
     "password" : "123", 
     "sql" : "select items.id as _id from items", 
     "index": "items", 
     "type": "item", 
     "schedule" : "0 0-59 0-23 ? * *" 
    } 
}' 

Это нормальное поведение?

ответ

0

Да, это нормально. ES всегда будет переинсталлировать все строки, возвращаемые из запроса sql.

Вы можете проверить поле своих документов и посмотреть, что оно увеличивается после каждого речного исполнения.

Действительно, вам следует избегать использования рек, потому что они deprecated.

+0

Однако река JDBC является [будущим доказательством] (https://github.com/jprante/elasticsearch-jdbc#this-plugin-is-future-proof) в соответствии с ее авторами, поскольку она может использоваться как автономная модуль, который является одним из способов продвижения вперед в соответствии с статьей «устаревших рек». – Val

+0

Я бы добавил, что запросы Elasticsearch являются идемпотентными, поэтому нет дубликатов, даже если вы индексируете один и тот же документ сто раз –

Смежные вопросы