sql >> データベース >  >> RDS >> Mysql

ElasticSearch RiverJDBCMySQLがレコードを削除しない

    この質問が行われたため、パラメーターが大幅に変更され、バージョン管理とダイジェストが廃止され、ポーリングがスケジュールに置き換えられました。これにより、川を再実行する頻度に関するcron式が使用されます(以下は5分ごとに実行されるようにスケジュールされています)。 )

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

    しかし、主な質問については、開発者から得た答えは次のとおりです。 https: //github.com/jprante/elasticsearch-river-jdbc/issues/213

    バージョン管理を使用してハウスキーピングを試しましたが、増分更新や行の追加と一緒にうまく機能しませんでした。

    良い方法は、ウィンドウ化された索引付けです。時間枠ごとに(おそらく1日または1週間に1回)、川の新しいインデックスが作成され、エイリアスに追加されます。古いインデックスはしばらくすると削除されます。このメンテナンスはlogstashインデックスに似ていますが、川の範囲外です。

    私がエイリアシングを研究するときに現在使用している方法は、インデックスと川を毎晩再作成し、川が数時間ごとに流れるようにスケジュールすることです。これにより、入力された新しいデータがその日にインデックスに登録され、削除が24時間ごとに反映されます



    1. PostgreSQLでEXCLUDEを使用して隣接/重複するエントリを防止する

    2. Wufooのデータベーススキーマ-どのように設計しますか?

    3. SQL Server、ML.NET、C#を使用した機械学習モデルの構築

    4. MySQLでIPをLongに変換する