DEV Community

nigilan
nigilan

Posted on

5

Migrating Data from Oracle to ElasticSearch

Environment : Windows

Prerequisites

  1. Installing elasticsearch is very straight forward in Windows. Download the latest version of it and extract it in a folder. link to download and run Elasticsearch as a service

  2. In environment variables section, set the JAVA_HOME path.

  3. Now, if you go to [http://localhost:9200/] in the browser, you can see that elasticsearch is running.

  4. Install Logstash for migrating data from Oracle to Elasticsearch.

  5. To extract the data, make sure your Oracle server is up and running.

Steps for Migration

  1. Edit the file logstash-ora.conf under config folder in Logstash as below
input {
 jdbc {
       jdbc_validate_connection => true
       jdbc_connection_string => "jdbc:oracle:thin:@192.168.1.2:1521/xe"
       jdbc_user => "user_details"
       jdbc_password => "tiger"
       jdbc_driver_library => "D:\elk\OJDBC-Full\ojdbc7.jar"
       jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
       statement => "select * from search"
   }
}

output {
 elasticsearch {
   hosts => ["http://localhost:9200"]
   index => "rawsearchdata"
   #user => "elastic"
   #password => "changeme"
 }
}
Enter fullscreen mode Exit fullscreen mode
Input

'jdbc_connection_string' = connection string for Oracle

'jdbc_user' = schema_name

'jdbc_driver_library' = path to ojdbc7.jar (OJDBC is freely available for download)

Output

index = Index where the data is going to get stored

  1. Save the file and run the command logstash.bat -f ../config/logstash-ora.conf

  2. Once this is done, data will be loaded in the rawsearchdata index

Check the data

  1. First of all, lets check the index creation by running this in the browser [http://localhost:9200/_cat/indices?v]

  2. We should see the rawsearchdata in the list of indices.

  3. Now, we can query the elasticsearch using CURL.

curl -X GET "localhost:9200/rawsearchdata/_search" -H 'Content-Type: application/json' -d'
{
   "query": {
       "query_string": {
           "fields": [
               "search_column"
           ],
           "query": "customer data"
       }
   }
}'
Enter fullscreen mode Exit fullscreen mode

Pass the column name under the fields

Thanks for reading...

Heroku

Deliver your unique apps, your own way.

Heroku tackles the toil — patching and upgrading, 24/7 ops and security, build systems, failovers, and more. Stay focused on building great data-driven applications.

Learn More

Top comments (0)

Sentry image

Make it make sense

Only the context you need to fix your broken code with Sentry.

Start debugging →

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, cherished by the supportive DEV Community. Coders of every background are encouraged to bring their perspectives and bolster our collective wisdom.

A sincere “thank you” often brightens someone’s day—share yours in the comments below!

On DEV, the act of sharing knowledge eases our journey and forges stronger community ties. Found value in this? A quick thank-you to the author can make a world of difference.

Okay