Mysql
 sql >> Base de données >  >> RDS >> Mysql

ElasticSearch river JDBC MySQL ne supprime pas les enregistrements

Depuis que cette question a été posée, les paramètres ont beaucoup changé, la gestion des versions et la digestion ont été obsolètes et le sondage a été remplacé par le calendrier, qui prendra une expression cron sur la fréquence de réexécution de la rivière (ci-dessous, il est prévu de s'exécuter toutes les 5 minutes )

    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"
        }
    }'

Mais pour la question principale, la réponse que j'ai obtenue du développeur est la suivantehttps ://github.com/jprante/elasticsearch-river-jdbc/issues/213

J'ai essayé le ménage avec la gestion des versions, mais cela n'a pas bien fonctionné avec les mises à jour incrémentielles et l'ajout de lignes.

Une bonne méthode serait l'indexation fenêtrée. À chaque période (peut-être une fois par jour ou par semaine), un nouvel index est créé pour la rivière et ajouté à un alias. Les anciens indices doivent être supprimés après un certain temps. Cette maintenance est similaire à l'indexation logstash, mais elle sort du cadre d'une rivière.

La méthode que j'utilise actuellement en tant que recherche d'alias consiste à recréer l'index et la rivière tous les soirs et à programmer la rivière pour qu'elle s'exécute toutes les quelques heures. Il garantit que les nouvelles données introduites seront indexées ce jour-là et que les suppressions seront reflétées toutes les 24 heures