SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Copyright 2014 Emmanuel Bernard and Red Hat Inc.
MythBusters
OxMs and NoSQL
good or bad?
Emmanuel Bernard
Red Hat
Copyright 2014 Emmanuel Bernard and Red Hat Inc.
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
What’s in it for me
• Better understand the usage of NoSQL
• Understand the merits of Object mappers
• Think about overall data in its IT infra
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Emmanuel Bernard
• Data dude at Red Hat (middleware)
• Hibernate projects, Infinispan, Teiid, Modeshape
• JCP and LEADS european projects
• Podcasts
• The rest is at http://emmanuelbernard.com
• @emmanuelbernard
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 1
Once you have chosen a NoSQL product
you don't need any other
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Use case
Create a scalable web shop handling billions of products.
Used by billions of people.
Analyse link and patterns between products and people.
Store gazzillions of comments (last is more meaningful)
Make products searchable in an awesome way.
Just another web property in China ;)
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Storing products
• Document store
• Self-describing
schema
• Nested structure
• Flexible
{
"_id" : "1234-5678-0123-4567",
"title": "iPhone 6",
"type": "Phone",
"brand": "Apple",
"desc": "iBendit",
"options": [
{ "memory": "16 GB",
"price": "$600",
"color": "Space pink" },
{ "memory": "128 GB",
"price": "$999",
"color": "Champagne" } ]
}
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Find patterns
• Graph database
• Good at connections
• (Single node instance)
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Store comments
• Cassandra-like
• Linear scalability
• Awesome for time series
Comments: iPhone 6
20140923000102
{
"text": "Love it",
"star": 5
"author": "John"
}
20140923001002
{
"text": "It bent!",
"star": 1
"author": "Kelly"
}
20140923010643
{
"text": "Like it",
"star": 4
"author": "Victor"
}
...
...
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Other use cases
• Super fast pre computed recommendations
• Key/value store
• Query engine
• Full-text search engine
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Choosing a NoSQL engine
• Based on the read / write characteristics of use case
• Speed, query-ability, CAP theorem
• Distribution topology
• What happens for another use case?
• Duplicate data
• Consistency / reconciliation
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 1
Once you have chosen a NoSQL product
you don't need any other
Busted
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 3
Entities feel awkward in NoSQL
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Mapping types and properties
@Entity
public class News {
@Id
private String id;
private String title;
@Column(name="desc")
private String description;
@Temporal(DATE)
private Date update;
}
// Collection: News
{
"_id" : "1234-5678-0123-4567",
"title": "On the merits of NoSQL",
"desc": "This paper discusses why ...”,
"update": ISODate("2012-07-14T00:00:0.000Z")
}
ENTITY
News
id: 1234-5678-0123-4567
title: On the merits of NoSQL
desc: This paper discusses why ...
update: "2012-07-14T00:00:00Z"
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Embedded
Collections of Embedded
@Entity
public class News {
@Id
String id;
@Embedded
NewsPaper paper;
@ElementCollection
Set<Journalist> authors;
}
 
@Embeddable
public class Journalist {
String firstname;
String lastname;
}
// Collection: News
{
"_id" : "1234-5678-0123-4567",
"paper": {
"name": "NoSQL journal of prophecies",
"owner": "Delphy"
},
"authors": [
{ "firstname": "The",
"lastname": "Duke" },
{ "firstname": "Larry",
"lastname": "Ellison" }
]
}
ENTITY
News
id: 1234-5678-0123-4567
EMBEDDED
NewsPaper
name: NoSQL journal of
prophecies
owner: Delphy
EMBEDDED
Journalist
name: Joseph Pulitzer
EMBEDDED
Journalist
name: Clark Kent
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Association: duplicate on each side
• Mapped to relationships for graph databases!
@Entity
public class Dog {
@Id
String name;
@ManyToMany
Set<Cat> hates;
}
 
@Entity
public class Cat {
@Id
String name;
@ManyToMany(mappedBy="hates")
Set<Dog> hated;
}
// Collection: Dog
{
"_id": "Snoopy",
"hates": [
"Garfield"
]
}
// Collection: Cat
{
"_id": "Garfield",
"hated": [
"Snoopy"
]
}
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Many more details
for a natural mapping
• Embedded id
• Identifier generators
• Big associations
• Native optimistic version field
• Label vs properties in Neo4J
• More query-friendly patterns (graph)
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
NoSQL is schemaless
• Well no - at least not without
schema
• Schema
• Evolutive
• (Self describing)
• Low (upfront) cost on the dev team
• Java is schemaful
• Classes
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Handling evolution
• Separate the app constructs from the DB constructs
• n apps - 1 DB
• Evolve app without DB field migration
• JPA logical vs physical model
• @Entity / @Table | @OneToMany / @JoinTable
• Declarative converters
• Tuple <-> Database model
• Structural migration
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Handling unknown properties
• Unknown to the application
• Carried over transparently by the persistence engine
• Tuple level applies change operations
• Explicit API to access them
@Entity
public class Profile {
 
@Id
private long id;
private String name;
 
@AdditionalProperties
private Map<String, Object> additionalProperties;
}
Profile profile = entityManager.find(Profile.class, id);
profile.getAdditionalProperties().put("instagram nick", “robert_doisneau");
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 3
Entities feel awkward in NoSQLBeing
busted
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 4
You need native APIs for real NoSQL use
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 4
You need native APIs for real NoSQL use
Part I: CRUD
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
OO stuff
• Domain model description
• JPA covers it
• What about NoSQL specific tweaks and options?
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Depends on the option scope…
• Declarative options: natural way to attach them
• Globally, per entity, per property
• Also for a specific session
• Possible options
• R+W > N quorum
• Custom mapping structure
@Entity
@WriteConcern(JOURNALED)
@ReadPreference(PRIMARY_PREFERRED)
public class Zoo {
}
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 4
You need native APIs for real NoSQL use
Part I: CRUD
Maybe
Maybe not
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 5
You need native APIs for real NoSQL use
Part II: Query language
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
JP-QL as the query language
• Queries over object properties and associations
• JP-QL to native query
• Split query into individual predicates
• Translate into native
• JP-QL to inverted index
• Hibernate Search QL / Lucene query
• No joins on all arbitrary associations
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Specific constructs?
• Full-text search
• Geolocation search
• JP-QL has functions
• Hierarchical queries on arbitrary levels
select news
from News news
where within(
news.event.location,
2km,
Paris)
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Native QL to managed objects
• Taking the problem upside down
• Use native query
• Map the result as managed objects
• Best of both worlds
• Cost is adherence to the specific NoSQL backend
@NamedNativeQuery(
name="poems-by-author",
query="MATCH ( n:Poem { author:{author_param} } ) return n",
resultClass=Poem.class
)
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 5
You need native APIs for real NoSQL use
Part II: Query language
Possibly true
But that’s OK
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 6
Object mappers don’t add enough value
for NoSQL
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Abstraction
• What does abstraction
brings?
• Automated better
• More knowledge
• Of the data and links
• Of the changes
News
id: 1234-5678-0123-4567
title: On the merits of NoSQL
description: This paper
discuss why ...
NewsPaper
id: 1234-5678-0123-4566
name: NoSQL journal of
prophecies
owner: Delphy
Journalist
id: 1234-5678-0123-4565
name: Joseph Pulitzer
Journalist
id: 1234-5678-0123-4564
name: Clark Kent
Change title in News 1234-5678-0123-4567 by On the merits of NoSQL
Create new Journalist named Clark Kent
Add Journalist 1234-5678-0123-4564 to News 1234-5678-0123-4567
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Natural mappings
• Offer natural data mapping
• Specific for each storage
• Declarative -> less bugs
• Storage structure
• Optimistic locking
• Type conversion
• … ?
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Denormalization engine
• Object and relations are the canonical form
• Can create “materialized views” aka queries
• Consistency handled by the ORM engine
• Declarative approach
• Less bug, or at least not yours
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Polyglot persistence
• Different queries, different backends
• Domain model as the canonical logical structure
News
id: 1234-5678-0123-4567
title: On the merits of NoSQL
description: This paper
discuss why ...
NewsPaper
id: 1234-5678-0123-4566
name: NoSQL journal of
prophecies
owner: Delphy
Journalist
id: 1234-5678-0123-4565
name: Joseph Pulitzer
Journalist
id: 1234-5678-0123-4564
name: Clark Kent
NewsPaper: Delphy
20140923
{
"title": "Life on Mars"
"desc": "..."
}
20140925
{
"title": "Debunking
climate change"
"desc": "..."
}
20140928
{
"title": "On the
merits of NoSQL"
"desc": "..."
}
...
...
// Collection: News
{
"_id" : "1234-5678-0123-4567",
"title": "On the merits of NoSQL",
"desc": "This paper discusses why ...",
"paper": {
"name": "NoSQL journal of prophecies",
"owner": "Delphy"
},
"authors": [
{ "firstname": "Joseph",
"lastname": "Pulitzer" },
{ "firstname": "Clark",
"lastname": "Kent" }
]
}
For single news detail
For news as
"time series"
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Feed event based logics
• Data validation (Hibernate Validator)
• Full-text search (Hibernate Search)
• Data historization (Hibernate ORM Envers)
• Compensation API
• Your own event based magic
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Myth 6
Object mappers don’t add enough value
for NoSQL
Busted
Copyright 2014 Emmanuel Bernard and Red Hat Inc.
Object mappers for NoSQL
Heresy or Awesomeness
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Where is Hibernate OGM at
• Increased adoption
• Backends
• MongoDB, Infinispan,
EhCache, Neo4J
• JP-QL / native query
• Per NoSQL Options
• Mapping of entities
and associations
• Future
• <Your feature>
• Compensation API
• Cassandra, CouchDB
• Multi-denormalization
• Multi-backends
Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc.
Q&A
• Try Hibernate OGM
• Contribute (feedback, doc, code, hatred/love)
• http://hibernate.org/ogm/
+ =

Weitere ähnliche Inhalte

Mehr von NoSQLmatters

Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...NoSQLmatters
 
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015NoSQLmatters
 
Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...NoSQLmatters
 
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...NoSQLmatters
 
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...NoSQLmatters
 
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015NoSQLmatters
 
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...NoSQLmatters
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...NoSQLmatters
 
David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...NoSQLmatters
 
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015NoSQLmatters
 
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015NoSQLmatters
 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...NoSQLmatters
 
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015NoSQLmatters
 
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...NoSQLmatters
 
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...NoSQLmatters
 
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...NoSQLmatters
 
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...NoSQLmatters
 
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...NoSQLmatters
 
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...NoSQLmatters
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014NoSQLmatters
 

Mehr von NoSQLmatters (20)

Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
Akmal Chaudhri - How to Build Streaming Data Applications: Evaluating the Top...
 
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
Michael Hackstein - NoSQL meets Microservices - NoSQL matters Dublin 2015
 
Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...Chris Ward - Understanding databases for distributed docker applications - No...
Chris Ward - Understanding databases for distributed docker applications - No...
 
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
Philipp Krenn - Host your database in the cloud, they said... - NoSQL matters...
 
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
Lucian Precup - Back to the Future: SQL 92 for Elasticsearch? - NoSQL matters...
 
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
Bruno Guedes - Hadoop real time for dummies - NoSQL matters Paris 2015
 
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
DuyHai DOAN - Real time analytics with Cassandra and Spark - NoSQL matters Pa...
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
 
David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...David Pilato - Advance search for your legacy application - NoSQL matters Par...
David Pilato - Advance search for your legacy application - NoSQL matters Par...
 
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
Tugdual Grall - From SQL to NoSQL in less than 40 min - NoSQL matters Paris 2015
 
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
Gregorry Letribot - Druid at Criteo - NoSQL matters 2015
 
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
Michael Hackstein - Polyglot Persistence & Multi-Model NoSQL Databases - NoSQ...
 
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
Rob Harrop- Key Note The God, the Bad and the Ugly - NoSQL matters Paris 2015
 
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...
Alexandre Vasseur - Evolution of Data Architectures: From Hadoop to Data Lake...
 
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
Ameya Kanitkar – Scaling Real Time Analytics with Storm & HBase - NoSQL matte...
 
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...
Rafael Gimenez – Scaling up in a world of geolocated data - NoSQL matters Bar...
 
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...
Frank Celler – Processing large-scale graphs with Google(TM) Pregel - NoSQL m...
 
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...
Aleksei Udatšnõi – Crunching thousands of events per second in nearly real ti...
 
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...
Salvatore Sanfilippo – How Redis Cluster works, and why - NoSQL matters Barce...
 
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
Sebastian Cohnen – Building a Startup with NoSQL - NoSQL matters Barcelona 2014
 

Kürzlich hochgeladen

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Kürzlich hochgeladen (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

Emmanuel Bernard - MythBusters: ORMs and NoSQL - Good or Evil? - NoSQL matters Paris 2015

  • 1. Copyright 2014 Emmanuel Bernard and Red Hat Inc. MythBusters OxMs and NoSQL good or bad? Emmanuel Bernard Red Hat
  • 2. Copyright 2014 Emmanuel Bernard and Red Hat Inc.
  • 3. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. What’s in it for me • Better understand the usage of NoSQL • Understand the merits of Object mappers • Think about overall data in its IT infra
  • 4. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Emmanuel Bernard • Data dude at Red Hat (middleware) • Hibernate projects, Infinispan, Teiid, Modeshape • JCP and LEADS european projects • Podcasts • The rest is at http://emmanuelbernard.com • @emmanuelbernard
  • 5. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 1 Once you have chosen a NoSQL product you don't need any other
  • 6. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Use case Create a scalable web shop handling billions of products. Used by billions of people. Analyse link and patterns between products and people. Store gazzillions of comments (last is more meaningful) Make products searchable in an awesome way. Just another web property in China ;)
  • 7. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Storing products • Document store • Self-describing schema • Nested structure • Flexible { "_id" : "1234-5678-0123-4567", "title": "iPhone 6", "type": "Phone", "brand": "Apple", "desc": "iBendit", "options": [ { "memory": "16 GB", "price": "$600", "color": "Space pink" }, { "memory": "128 GB", "price": "$999", "color": "Champagne" } ] }
  • 8. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Find patterns • Graph database • Good at connections • (Single node instance)
  • 9. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Store comments • Cassandra-like • Linear scalability • Awesome for time series Comments: iPhone 6 20140923000102 { "text": "Love it", "star": 5 "author": "John" } 20140923001002 { "text": "It bent!", "star": 1 "author": "Kelly" } 20140923010643 { "text": "Like it", "star": 4 "author": "Victor" } ... ...
  • 10. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Other use cases • Super fast pre computed recommendations • Key/value store • Query engine • Full-text search engine
  • 11. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Choosing a NoSQL engine • Based on the read / write characteristics of use case • Speed, query-ability, CAP theorem • Distribution topology • What happens for another use case? • Duplicate data • Consistency / reconciliation
  • 12. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 1 Once you have chosen a NoSQL product you don't need any other Busted
  • 13. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 3 Entities feel awkward in NoSQL
  • 14. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Mapping types and properties @Entity public class News { @Id private String id; private String title; @Column(name="desc") private String description; @Temporal(DATE) private Date update; } // Collection: News { "_id" : "1234-5678-0123-4567", "title": "On the merits of NoSQL", "desc": "This paper discusses why ...”, "update": ISODate("2012-07-14T00:00:0.000Z") } ENTITY News id: 1234-5678-0123-4567 title: On the merits of NoSQL desc: This paper discusses why ... update: "2012-07-14T00:00:00Z"
  • 15. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Embedded Collections of Embedded @Entity public class News { @Id String id; @Embedded NewsPaper paper; @ElementCollection Set<Journalist> authors; }   @Embeddable public class Journalist { String firstname; String lastname; } // Collection: News { "_id" : "1234-5678-0123-4567", "paper": { "name": "NoSQL journal of prophecies", "owner": "Delphy" }, "authors": [ { "firstname": "The", "lastname": "Duke" }, { "firstname": "Larry", "lastname": "Ellison" } ] } ENTITY News id: 1234-5678-0123-4567 EMBEDDED NewsPaper name: NoSQL journal of prophecies owner: Delphy EMBEDDED Journalist name: Joseph Pulitzer EMBEDDED Journalist name: Clark Kent
  • 16. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Association: duplicate on each side • Mapped to relationships for graph databases! @Entity public class Dog { @Id String name; @ManyToMany Set<Cat> hates; }   @Entity public class Cat { @Id String name; @ManyToMany(mappedBy="hates") Set<Dog> hated; } // Collection: Dog { "_id": "Snoopy", "hates": [ "Garfield" ] } // Collection: Cat { "_id": "Garfield", "hated": [ "Snoopy" ] }
  • 17. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Many more details for a natural mapping • Embedded id • Identifier generators • Big associations • Native optimistic version field • Label vs properties in Neo4J • More query-friendly patterns (graph)
  • 18. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. NoSQL is schemaless • Well no - at least not without schema • Schema • Evolutive • (Self describing) • Low (upfront) cost on the dev team • Java is schemaful • Classes
  • 19. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Handling evolution • Separate the app constructs from the DB constructs • n apps - 1 DB • Evolve app without DB field migration • JPA logical vs physical model • @Entity / @Table | @OneToMany / @JoinTable • Declarative converters • Tuple <-> Database model • Structural migration
  • 20. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Handling unknown properties • Unknown to the application • Carried over transparently by the persistence engine • Tuple level applies change operations • Explicit API to access them @Entity public class Profile {   @Id private long id; private String name;   @AdditionalProperties private Map<String, Object> additionalProperties; } Profile profile = entityManager.find(Profile.class, id); profile.getAdditionalProperties().put("instagram nick", “robert_doisneau");
  • 21. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 3 Entities feel awkward in NoSQLBeing busted
  • 22. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 4 You need native APIs for real NoSQL use
  • 23. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 4 You need native APIs for real NoSQL use Part I: CRUD
  • 24. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. OO stuff • Domain model description • JPA covers it • What about NoSQL specific tweaks and options?
  • 25. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Depends on the option scope… • Declarative options: natural way to attach them • Globally, per entity, per property • Also for a specific session • Possible options • R+W > N quorum • Custom mapping structure @Entity @WriteConcern(JOURNALED) @ReadPreference(PRIMARY_PREFERRED) public class Zoo { }
  • 26. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 4 You need native APIs for real NoSQL use Part I: CRUD Maybe Maybe not
  • 27. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 5 You need native APIs for real NoSQL use Part II: Query language
  • 28. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. JP-QL as the query language • Queries over object properties and associations • JP-QL to native query • Split query into individual predicates • Translate into native • JP-QL to inverted index • Hibernate Search QL / Lucene query • No joins on all arbitrary associations
  • 29. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Specific constructs? • Full-text search • Geolocation search • JP-QL has functions • Hierarchical queries on arbitrary levels select news from News news where within( news.event.location, 2km, Paris)
  • 30. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Native QL to managed objects • Taking the problem upside down • Use native query • Map the result as managed objects • Best of both worlds • Cost is adherence to the specific NoSQL backend @NamedNativeQuery( name="poems-by-author", query="MATCH ( n:Poem { author:{author_param} } ) return n", resultClass=Poem.class )
  • 31. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 5 You need native APIs for real NoSQL use Part II: Query language Possibly true But that’s OK
  • 32. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 6 Object mappers don’t add enough value for NoSQL
  • 33. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Abstraction • What does abstraction brings? • Automated better • More knowledge • Of the data and links • Of the changes News id: 1234-5678-0123-4567 title: On the merits of NoSQL description: This paper discuss why ... NewsPaper id: 1234-5678-0123-4566 name: NoSQL journal of prophecies owner: Delphy Journalist id: 1234-5678-0123-4565 name: Joseph Pulitzer Journalist id: 1234-5678-0123-4564 name: Clark Kent Change title in News 1234-5678-0123-4567 by On the merits of NoSQL Create new Journalist named Clark Kent Add Journalist 1234-5678-0123-4564 to News 1234-5678-0123-4567
  • 34. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Natural mappings • Offer natural data mapping • Specific for each storage • Declarative -> less bugs • Storage structure • Optimistic locking • Type conversion • … ?
  • 35. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Denormalization engine • Object and relations are the canonical form • Can create “materialized views” aka queries • Consistency handled by the ORM engine • Declarative approach • Less bug, or at least not yours
  • 36. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Polyglot persistence • Different queries, different backends • Domain model as the canonical logical structure News id: 1234-5678-0123-4567 title: On the merits of NoSQL description: This paper discuss why ... NewsPaper id: 1234-5678-0123-4566 name: NoSQL journal of prophecies owner: Delphy Journalist id: 1234-5678-0123-4565 name: Joseph Pulitzer Journalist id: 1234-5678-0123-4564 name: Clark Kent NewsPaper: Delphy 20140923 { "title": "Life on Mars" "desc": "..." } 20140925 { "title": "Debunking climate change" "desc": "..." } 20140928 { "title": "On the merits of NoSQL" "desc": "..." } ... ... // Collection: News { "_id" : "1234-5678-0123-4567", "title": "On the merits of NoSQL", "desc": "This paper discusses why ...", "paper": { "name": "NoSQL journal of prophecies", "owner": "Delphy" }, "authors": [ { "firstname": "Joseph", "lastname": "Pulitzer" }, { "firstname": "Clark", "lastname": "Kent" } ] } For single news detail For news as "time series"
  • 37. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Feed event based logics • Data validation (Hibernate Validator) • Full-text search (Hibernate Search) • Data historization (Hibernate ORM Envers) • Compensation API • Your own event based magic
  • 38. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Myth 6 Object mappers don’t add enough value for NoSQL Busted
  • 39. Copyright 2014 Emmanuel Bernard and Red Hat Inc. Object mappers for NoSQL Heresy or Awesomeness
  • 40. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Where is Hibernate OGM at • Increased adoption • Backends • MongoDB, Infinispan, EhCache, Neo4J • JP-QL / native query • Per NoSQL Options • Mapping of entities and associations • Future • <Your feature> • Compensation API • Cassandra, CouchDB • Multi-denormalization • Multi-backends
  • 41. Copyright 2014-2015 Emmanuel Bernard and Red Hat Inc. Q&A • Try Hibernate OGM • Contribute (feedback, doc, code, hatred/love) • http://hibernate.org/ogm/ + =