sql >> Databáze >  >> RDS >> Mysql

ElasticSearch river JDBC MySQL nemaže záznamy

Od té doby, co byla položena tato otázka, se parametry výrazně změnily, verzování a trávení byly zastaralé a hlasování bylo nahrazeno plánem, který bude mít cron výraz o tom, jak často opakovat řeku (níže je naplánováno spuštění každých 5 minut )

    curl -XPUT 'localhost:9200/_river/account_river/_meta' -d '{
        "type" : "jdbc",
        "jdbc" : {
            "driver" : "com.mysql.jdbc.Driver",
            "url" : "jdbc:mysql://localhost:3306/test",
            "user" : "test_user",
            "password" : "test_pass",
            "sql" : "SELECT `account`.`id` as `_id`, `account`.`id`, `account`.`reference`, `account`.`company_name`, `account`.`also_known_as` from `account` WHERE NOT `account`.`deleted`",
            "strategy" : "simple",
            "schedule": "0 0/5 * * * ?" ,
            "autocommit" : true,
            "index" : "headphones",
            "type" : "Account"
        }
    }'

Ale na hlavní otázku, odpověď, kterou jsem dostal od vývojáře, je tatohttps://github.com/jprante/elasticsearch-river-jdbc/issues/213

Zkoušel jsem úklid s verzováním, ale to spolu s postupnými aktualizacemi a přidáváním řádků nefungovalo dobře.

Dobrou metodou by bylo indexování v okně. V každém časovém rámci (možná jednou za den nebo za týden) se pro řeku vytvoří nový index a přidá se k aliasu. Staré indexy mají být po nějaké době vyřazeny. Tato údržba je podobná indexování logstash, ale je mimo rozsah řeky.

Metoda, kterou v současné době používám při výzkumu aliasingu, je, že každý večer znovu vytvořím index a řeku a naplánuji, aby řeka běžela každých pár hodin. Zajišťuje, že nově vkládaná data budou indexována ten den a mazání se projeví každých 24 hodin



  1. Jak přejmenuji index v MySQL

  2. Neznámý sloupec v chybě 'seznam polí' v dotazu aktualizace MySQL

  3. Funkce IF v H2 pro kompatibilitu s MySQL

  4. Vlastní pořadí Mysql podle a abecední pořadí podle: