我正在为 ElasticSearch 配置 JDBC river,但找不到任何好的配置示例。 我已阅读全部 pages在 elasticsearch-river-jdbc GitHub.
我有一个 SQL 查询,我需要每隔 X 秒从所有表列中获取更改。我如何告诉 JDBC river 某些行已更改并且应该重新编制索引?
数据在 ES 服务器启动期间获取,正在进行轮询,但更改不会从 DB 获取到 ES。
我的配置:
curl -XPUT 'localhost:9200/_river/itemsi/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"driver" : "com.mysql.jdbc.Driver",
"url" : "jdbc:mysql://mydb.com:3306/dbname",
"user" : "yyy",
"password" : "xxx",
"sql" : "SELECT ii.id AS _id, ii.id AS myid, ... FROM ... LEFT JOIN .. ON...",
"poll" : "6s",
"strategy" : "simple"
},
"index" : {
"index" : "invoiceitems",
"bulk_size" : 600,
"max_bulk_requests" : 10,
"bulk_timeout" : "5s",
}
}'
谢谢。
最佳答案
您可以使用 schedule 参数启用 jdbc river 插件的重复运行。
计划参数示例:
"schedule" : "0 0-59 0-23 ? * *"
这每分钟、每小时、每周/每月/每年的所有日子都执行 JDBC river。
有关计划参数阅读文档的更多详细信息, https://github.com/jprante/elasticsearch-river-jdbc
关于mysql - 使用 ElasticSearch JDBC river 从表中获取更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18248067/