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

TechTalk Spring Data – nur noch eine API für SQ...

TechTalk Spring Data – nur noch eine API für SQL, NoSQL & ElasticSearch?

Spring Data wird oft dazu verwendet, DAOs für relationale Datenbanken ohne lästigen Boilerplate Code zu entwickeln (siehe bspw. TechTalk vom 19.05.2016). Ähnlich einfach kann Spring Data auch im Zusammenspiel mit NoSQL-Datenbanken verwendet werden.
Im Talk schauen wir uns anhand verschiedener NoSQL-Technologien (insbesondere ElasticSearch) an, wie das geht. Wir geben auch eine Antwort auf die Frage „Wie viele verschiedene DAOs braucht das Land?“.

@wolkenarchitekt

August 25, 2016
Tweet

More Decks by @wolkenarchitekt

Other Decks in Programming

Transcript

  1. CandyShop Recap @Entity public class Candy { @Id @GeneratedValue private

    long id; @Column(unique = true) private String name; private String brand; private int price; private int rating; }
  2. Spring Data Recap (JPA) public interface CandyRepository extends PagingAndSortingRepository<Candy, Long>

    { Candy findById(long id); Page<Candy> findByNameAndBrand(String name, String brand, Pageable pageable); Collection<Candy> findByName(String name); Iterator<Candy> findDistinctByBrand(String brand); Candy findFirstByBrandOrderByRatingAsc(String brand); ... }
  3. JPA MongoDB Redis Solr Gemfire KeyValue REST Aerospike* Cassandra* Couchbase*

    Elasticsearch* Neo4J* * = Community modules Spring Data modules DynamoDB*
  4. CandyShop-Erweiterung DynamoDB • New Feature: CalorieMeter • Wie viele Kalorien

    hat ein User gekauft? @DynamoDBTable(tableName = "CalorieMeter") public class CalorieMeterEntry { @DynamoDBHashKey private long userId; private String userName; @DynamoDBRangeKey private long candyId; private String candyName; public long caloriesTotal; }
  5. DynamoDB in Kürze • NoSQL database managed by AWS •

    Key features: • Einzelne Tabellen mit skalaren Werten, Dokumenten oder Wertemengen (Sets) anlegen • Beliebiger (garantierter) Datendurchsatz • Automatische Verteilung auf Availability Zones • Neue URL für Sping Data DynamoDB Community Project: https://github.com/derjust/spring-data-dynamodb
  6. ElasticSearch in Kürze • Verteilte, sehr schnelle Echtzeit-Suchmachine • Open-source

    und im Kern Apache Lucene • Es werden Dokumente verwaltet und jedes Feld indiziert • RESTful JSON API