Elasticsearch如何与MySQL同步
巴扎黑
巴扎黑 2017-04-17 13:11:19
0
2
719
  • 这几天在尝试使用Elasticsearch,遇到一个问题。

  • 我现在通过如下将MySQL的数据通过elasticsearch-jdbc导入至Elasticsearch

curl -XPUT localhost:9200/_river/my_jdbc_river/_meta -d '
 {
     "type" : "jdbc",
     "jdbc" : {
         "driver" : "com.mysql.jdbc.Driver",
         "url" : "jdbc:mysql://localhost:3306/excel",
         "user" : "root",
         "password" : "123456",
         "sql" : "select * from excel.projects", 
         "index" : "excel",
         "type" : "project",
         "bulk_size" : 100,
         "max_bulk_requests" : 30,
         "bulk_timeout" : "10s",
         "flush_interval" : "5s",
         "schedule" : "0 0-59 0-23 ? * *"
     }
 }'
  • 当然这是存在问题的:"schedule" : "0 0-59 0-23 ? * *"会将新产生的数据连同原来的数据一起导入ES

  • 所以我现在的问题是如何应对MySQL中新产生的数据和被更新的数据(暂时不考虑被删除的数据),我在数据库的表中设置了一个时间戳,但是具体怎么利用它我还不清楚。

巴扎黑
巴扎黑

全員に返信(2)
伊谢尔伦

如果你的是时间戳在更新数据的时候也会更新,那么只要每次导入指定时间区段的数据就就行了

いいねを押す +0
刘奇
"type" : "jdbc",
"jdbc" : {
    "url" : "jdbc:mysql://localhost:3306/test",
    "user" : "",
    "password" : "",
    "sql" : [
        {
            "statement" : "select * from \"products\" where \"mytimestamp\" > ?",
            "parameter" : [ "$metrics.lastexecutionstart" ]
        }
    ],
    "index" : "my_jdbc_index",
    "type" : "my_jdbc_type"
}

示例,看sql部分

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!