Skip to content

fax4ever/mapping-framework-evaluation

Repository files navigation

Mapping Framework Evaluation

Slides

Project slides:

slides.pptx

Play with the project

  1. Run MongoDB server container
docker run -i --rm -p 27017:27017 --name=mongodb-sever mongo:latest

Container data is ephemeral, stop and re-run the container to reset all the data.

  1. Compile and run the tests
mvn clean install

MongoDB OGM Application

goto the subproject directory > [mongodb-ogm-application]

  1. Run the MongoDb Hibernate OGM application
mvn spring-boot:run
  1. See current data report
http http://localhost:8080/report
  1. To import a data set (amazon-prime, disney-plus, hbo-max, netflix)
http POST http://localhost:8080/load/amazon-prime
  1. Given a name of a person, find all credits referred to that person, presenting also the all the titles with scores and details associated to those credits.
http --raw "Oscar Isaac" http://localhost:8080/findCredits
  1. Given a genre, return the nth page of size m of all titles ordered by Tmdb score in descendant order. All title attributes should be presented, including the genres, the countries and the platforms providing it.
http http://localhost:8080/titlesOrderByScore/genre/scifi/page/1/page-size/10
  1. Find all movies provided by a given platform having releaseYear included in a range of years. All title attributes should be presented, including the genres, the countries and the platforms providing it.
http http://localhost:8080/findMovies/platform/disney-plus/start-year/2018/end-year/2019

MongoDB Native Application

goto the subproject directory > [mongodb-ogm-application]

  1. Run the MongoDb native application
mvn spring-boot:run
  1. Run the people pipeline
http POST http://localhost:8081/people
  1. Run the titles pipeline
http POST http://localhost:8081/titles
  1. See current data report
http http://localhost:8081/report
  1. Given a name of a person, find all credits referred to that person, presenting also the all the titles with scores and details associated to those credits.
http --raw "Oscar Isaac" http://localhost:8081/findCredits
  1. Given a genre, return the nth page of size m of all titles ordered by Tmdb score in descendant order. All title attributes should be presented, including the genres, the countries and the platforms providing it.
http http://localhost:8081/titlesOrderByScore/genre/scifi/page/1/page-size/10
  1. Find all movies provided by a given platform having releaseYear included in a range of years. All title attributes should be presented, including the genres, the countries and the platforms providing it.
http http://localhost:8081/findMovies/platform/disney-plus/start-year/2018/end-year/2019

Compare the times

The queries are exposed using the exact same entry points, so we can run the same HTTP on the two different ports 8080 (for OGM) and 8081 (for the native) and have an idea (this is not a performance test!) of the performances.

http --raw "Oscar Isaac" http://localhost:8080/findCredits -m
http --raw "Oscar Isaac" http://localhost:8081/findCredits -m
http http://localhost:8080/titlesOrderByScore/genre/scifi/page/1/page-size/10 -m
http http://localhost:8081/titlesOrderByScore/genre/scifi/page/1/page-size/10 -m
http http://localhost:8080/findMovies/platform/disney-plus/start-year/2018/end-year/2019 -m
http http://localhost:8081/findMovies/platform/disney-plus/start-year/2018/end-year/2019 -m

Dataset

That are distributed under CCO: Public Domain A special thanks to https://www.kaggle.com/victorsoeiro for them!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages