如何检测数据库中的更改并自动向elasticsearch索引添加新行

时间:2015-04-04 13:00:21

标签: elasticsearch

我已经做过的事情:

我通过本教程将我的hbase与elasticsearch联系起来:

http://lessc0de.github.io/connecting_hbase_to_elasticsearch.html

我获得了hbase表内容的索引,但是在向hbase添加新行之后,它不会自动添加到elasticsearch索引中。我试着将这一行添加到我的conf:

"schedule" : "* 1/5 * ? * *"

和映射:

"mappings": {
        "jdbc" : {
             "_id" : {
                 "path" : "ID"
             }
         }
} 

指定_id = ID,ID在我的hbase表中具有唯一值。

它运作良好:当我向hbase添加新行时,它会在不到5分钟的时间内上传到索引。但它对性能不利,因为它每5分钟执行一次查询并且不会将旧内容添加到索引中,因为_id必须是唯一的。这对小型数据库很有用,但我的hbase表中有超过1000万行,所以我的索引一直在运行。

弹性搜索的任何解决方案或插件都能自动检测db中的更改并仅将新行添加到索引中吗?

我使用:

创建索引
curl -XPUT 'localhost:9200/_river/jdbc/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:phoenix:localhost",
        "user" : "",
        "password" : "",
        "sql" : "select ID, MESSAGE from test",
        "schedule" : "* 1/5 * ? * *"
    }
}'

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你正在寻找一条名为“河流”的东西。插入。各种各样的数据库甚至物理文件系统都有各种各样的支持。但是,您正在寻找的是HBase River Plugin