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

ElasticSearchをMySQLと統合する方法は?

    ES 5.xの時点で、ログスタッシュ プラグイン。

    これにより、データベースから定期的にデータがインポートされ、ESサーバーにプッシュされます。

    以下に示す簡単なインポートファイルを作成する必要があります(これについては、ここでも説明されています )そしてlogstashを使用してスクリプトを実行します。 Logstashは、このスクリプトをスケジュールどおりに実行することをサポートしています。

    # file: contacts-index-logstash.conf
    input {
        jdbc {
            jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
            jdbc_user => "user"
            jdbc_password => "pswd"
            schedule => "* * * * *"
            jdbc_validate_connection => true
            jdbc_driver_library => "/path/to/latest/mysql-connector-java-jar"
            jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
            statement => "SELECT * from contacts where updatedAt > :sql_last_value"
        }
    }
    output {
        elasticsearch {
            protocol => http
            index => "contacts"
            document_type => "contact"
            document_id => "%{id}"
            host => "ES_NODE_HOST"
        }
    }
    # "* * * * *" -> run every minute
    # sql_last_value is a built in parameter whose value is set to Thursday, 1 January 1970,
    # or 0 if use_column_value is true and tracking_column is set
    

    mysqljarはmavenからダウンロードできますここ 。

    このスクリプトの実行時にESにインデックスが存在しない場合、インデックスは自動的に作成されます。通常のelasticsearchへのポストコールと同じように



    1. Laravel移行の自己参照外部キーの問題

    2. 2017年に最も人気のあるデータベースブログの投稿

    3. MySQLGROUPカウント

    4. 2つの行間の時間差を計算する