Importing Data from SQL to ElasticSearch?


I'd like to know if there is a reliable way to synchronize data from a sql server to Elasticsearch? I've read something about some river plugins, especially a jdbc river to accomplish that. On the other hand I've read something about that rivers are depricated and now I'm a bit confused.

It's really important that the synchronization between our RDBMS and Elasticsearch happens in "realtime".
Is there a way to update Elasticsearch's data immediately after you commit something in the sql database?

Also I've read something about, that the JDBC plugin has some problems with reconstructing deeply nested objects to JSON and process object semantics like object identity. Is there a fix for that?

Thanks for your help!

Don't use rivers, they are no longer supported.
I'd suggest you take a look at Logstash and the JDBC input -

No need to be confused. JDBC river is now JDBC importer.

What do you mean by "realtime"?

Where did you read this? There is no such thing like object identity in relational algebra, there are tuples and sets. All semantics that were necessary to create JSON documents are invented by JDBC river/importer, and this part works really well.

Thanks for your help!

By "realtime" I mean something like a trigger, if I update/instert/delete something in my RMDBS that after the commit the importer immediately updates this to ES.