1

JDBC river instance with an index scheduled to run at a specic time.

I expected that it would run on creation but this does not seem to be the case.

Is it possible to use the API to manually notify the instance that it should run the index process now?

elasticsearch-river-jdbc

1 Answer 1

1

The rivers API for Elastic is being deprecated, so I would highly recommend you move to a push model instead of pulling data in via the JDBC river.

We had the same issues with the JDBC river before moving the code to an external process. The JDBC river wouldn't consistently start when we restarted ES, we couldn't manually kick it off and it was just a pain to maintain.

We ended up writing small scripts to push data in and run them as local cron jobs. It's been much more reliable and we can run them at any time and debug them easily.

(As a note if you have a lot of data, you'll need to use the batch API for ES to not overwhelm ES with too many writes.)

Sign up to request clarification or add additional context in comments.

3 Comments

Could you link me a little more information on push models to get me started?
"Pushing" data in is a description of a process, not a specific framework or language. So for example, you might get the JDBC driver for node.js and write some node and put data into Elastic that way. You could also write a small Java program that connects to the database, transforms the data into JSON and then posts that to Elastic. We re-wrote our JDBC rivers in C#. Might pick a language which has an ES client and a JDBC client (which is pretty much all of them!)
PHP Cron job it is... to stay consistent with the rest of the system. Thank you for your time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.