Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeMotionRome: Advanced search for your Legacy application

CodeMotionRome: Advanced search for your Legacy application

How to mix SQL and NoSQL worlds without a revolution?

This live coding talk will show you how to add elasticsearch in your legacy application without changing all your habits. Your application will be able to have advanced search features without the need of writing complex SQL code!

David will start from a RestX, Hibernate, Postgresql application and will add live during this session a complete integration of elasticsearch:

* Why should we add NoSQL search?
* bad practices (JDBC river, external batch...)
* how to represent business entities in NoSQL documents?
* elasticsearch beyonder project
* How to live without transactions inside a transactional application?

098332e9d988080a9057816f84d668f7?s=128

Elasticsearch Inc

March 28, 2015
Tweet

Transcript

  1. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited for your legacy app advanced search David Pilato Developer | Evangelist @dadoonet
  2. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited our use case
  3. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited our legacy platform WEB APP HTTP / REST JDBC DATABASE SQL
  4. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited our legacy domain / database
  5. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited our legacy app demo time $ git clone https://github.com/dadoonet/legacy-search.git $ git checkout 00-legacy $ mvn clean install jetty:run
  6. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited architecture connecting with our app
  7. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited ETL using a ETL DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON
  8. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited JDBC RIVER JDBC river DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON SQL JSON
  9. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited JDBC river DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON SQL
  10. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited
  11. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited direct connection Do It Yourself
  12. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited direct connection DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON ES-CLIENT
  13. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited JSON document design PUT /person/person/1 { "name":"Joe Pink", "dateOfBirth":"1971-12-26", "address_id":"2", "marketing_id":"3" } PUT /person/address/2 { "city":"Paris", "country":"France" } PUT /person/marketing/3 { "cars":1000, "food":1500 }
  14. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited JSON document design PUT /person/person/1 { "name":"Joe Pink", "dateOfBirth":"1971-12-26", "address":{ "city":"Paris", "country":"France" }, "marketing":{ "cars":1000, "food":1500 } }
  15. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited direct connection demo time $ git checkout 01-direct $ git checkout 02-bulk $ git checkout 03-mapping $ git checkout 04-aggs $ git checkout 05-compute $ mvn clean install jetty:run $ cat README.markdown
  16. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited asynchronous synchronous vs
  17. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited using brokers DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON ES-CLIENT
  18. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited using brokers DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON ES-CLIENT
  19. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited using brokers DATABASE SQL WEB APP HTTP / REST JDBC ELASTICSEARCH REST / JSON ES-CLIENT
  20. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited
  21. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited
  22. www.elastic.co Copyright Elastic 2015 Copying, publishing and/or distributing without written

    permission is strictly prohibited Grazie mille David Pilato Developer | Evangelist @dadoonet https://www.elastic.co/subscriptions