Elasticsearch River 模組以插件形式從外部資料源拉取資料,社群支援眾多來源:
JDBC River 為關聯式資料庫提供統一介面。
./bin/plugin --install jdbc --url xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.1.0.1/elasticsearch-river-jdbc-1.1.0.1-plugin.zip
sqljdbc4.jar 放入 Elasticsearch lib/ 目錄。叢集每個節點皆需執行。PUT /_river/mytest_river/_meta
{
"type": "jdbc",
"jdbc": {
"driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url": "jdbc:sqlserver://MYSQLSERVERNAME;databaseName=MYProductDatabase",
"user": "admin",
"password": "Password",
"sql": "SELECT ProductID as _id, CategoryID, ManufacturerID, MfName, ProductTitle, MfgPartNumber FROM MyProductsTable (nolock)",
"poll": "10m",
"strategy": "simple",
"index": "myinventory",
"type": "product",
"bulk_size": 100,
"max_retries": 5,
"max_retries_wait": "30s",
"max_bulk_requests": 5,
"bulk_flush_interval": "5s"
}
}
River 會依 poll 間隔定期執行 sql 查詢,將結果批次寫入指定索引。