SlideShare a Scribd company logo
JSONiq - The SQL of NoSQL
msec   William Candillon {wcandillon@28.io}
Two Drivers
Scalability
Flexible Data
NoSQL Checklist   28
NoSQL Checklist                       28
                    Document Stores

High Availability         ✔
NoSQL Checklist                       28
                    Document Stores

High Availability         ✔
Sharding                  ✔
NoSQL Checklist                            28
                         Document Stores

High Availability              ✔
Sharding                       ✔
Available as a Service         ✔
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language
Standardization (1)   28
Standardization (2)   28
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X
Modern Query Processing
Modern Query Processing (2)   28
Modern Query Processing (1)   28
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X
Modern Query Processing             X
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X
Modern Query Processing             X
Rich Data Model
Rich Data Model (1)   28
Rich Data Model (2)   28
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X
Modern Query Processing             X
Rich Data Model                     X
NoSQL Checklist                                 28
                              Document Stores

High Availability                   ✔




                                                Scalability
Sharding                            ✔
Available as a Service              ✔
Standardized Query Language         X




                                                Flexible Data
Modern Query Processing             X
Rich Data Model                     X
The SQL of NoSQL
JSONiq (1)                                28


       Declarative JSON Query Language
               Fully Composable

Extension of XQuery, a mature W3C standard,
          with native JSON support


      Contributors: 28msec, Oracle, EMC
JSONiq (2)                                28


  Updates, Indexes, Search, Transform &
  Filter, Join, Group, and more

  Open Source Implementation: Zorba

  Drivers: MongoDB, CouchDB, AmazonDB,
  SQLite, Oracle NoSQL
{
    "question_id" : 42,
    "title" : "NoSQL: Help me to choose",
    "tags" : [ "mongodb", "couchdb" ],
    "answered" : true,
}
let $question :=
{
  "question_id" : 42,
  "title" : "NoSQL: Help me to choose",
  "tags" : [ "mongodb", "couchdb" ],
  "answered" : true,
}
return $question("title")
for $answers in mongo:find("answers")
group by $id := $answers("question_id")
order by count($answers) descending
let $faq := mongo:find("faq")
return
  <h1>{
    $faq[.("id") eq $id]("title")
  }</h1>


<h1>NoSQL: Help me to Choose</h1>
<h1>What NoSQL solutions for .NET?</h1>
<h1>The Next-gen Databases</h1>
...
for $question in mongo:find("faq")
let $user := $question("owner")
group by $user := $user("user_id")
return {
  "user" : $user[last()]("display_name"),
  "count" : count($question)
}



{ "user": "jbellis", "count": 6 }
{ "user": "user1557698", "count": 5 }
{ "user": "nawroth", "count": 5 }
...
max(
   for tumbling window $answers
                in mongo:find("answers")
   start $start when true
   only end $end next $next
   when $next("date") - $end("date") gt
        xs:dayTimeDuration("P1D")
   return $end("date") - $start("date")
 )

{ "user": "jbellis", "streak": 2 }
{ "user": "user1557698", "streak": 1 }
{ "user": "nawroth", "streak": 1 }
...
"Luke, I am your father"
 contains text "dad"




false
"Luke, I am your father"
 contains text "dad"
 using thesaurus default




true
let $s := "These are not the droids you
 are looking for"
 let $tokens := ft:tokenize-string($s)
 for $token in $tokens
 where not(ft:is-stop-word($token))
 return ft:stem($token)




droid look
...
MongoDB Driver                                       28




   Zorba    Runtime   XDM    Collections   Indexes




MongoDB     MongoS    BSON   Collections   Indexes
28.io                                                    28

• Seamless JSONiq Integration into MongoDB
• Automatic Scale out of the Query Processing


   Zorba     Runtime    XDM      Collections   Indexes




MongoDB      MongoS     BSON     Collections   Indexes
28.io   28
Put the Pressure back to
  the Query Language
Take Away                                28

• JSONiq.org - The SQL of NoSQL
• Open Source Implementation: Zorba
• Next Stop: Automatic Index Detection
             Query Parallelization

• Hosting: 28.io
• Demo: http://28.io/mongodb
Thank You!
msec   Questions?

More Related Content

What's hot (20)

KEY
MongoDB and hadoop
Steven Francia
 
PPTX
Logs @ OVHcloud
OVHcloud
 
PPTX
Introduction to Cassandra (June 2010)
gdusbabek
 
PPT
The NoSQL Way in Postgres
EDB
 
PPT
Wmware NoSQL
Murat Çakal
 
PPTX
Druid realtime indexing
Seoeun Park
 
PDF
Webinar: Schema Patterns and Your Storage Engine
MongoDB
 
PDF
MongoDB .local Paris 2020: Adéo @MongoDB : MongoDB Atlas & Leroy Merlin : et ...
MongoDB
 
PPTX
Transitioning from SQL to MongoDB
MongoDB
 
PPTX
Mongodb introduction and_internal(simple)
Kai Zhao
 
KEY
MongoDB, Hadoop and Humongous Data
Steven Francia
 
PDF
Migrating from RDBMS to MongoDB
MongoDB
 
PPTX
Real-Time Integration Between MongoDB and SQL Databases
MongoDB
 
PDF
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
MongoDB
 
PDF
ManetoDB: Key/Value storage, BigData in Open Stack_Сергей Ковалев, Илья Свиридов
GeeksLab Odessa
 
PDF
MongoDB, Hadoop and humongous data - MongoSV 2012
Steven Francia
 
PPTX
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
Intergen
 
PDF
Tweaking perfomance on high-load projects_Думанский Дмитрий
GeeksLab Odessa
 
PPTX
Python and MongoDB as a Market Data Platform by James Blackburn
PyData
 
PPT
MongoTokyo
Hiroaki Kubota
 
MongoDB and hadoop
Steven Francia
 
Logs @ OVHcloud
OVHcloud
 
Introduction to Cassandra (June 2010)
gdusbabek
 
The NoSQL Way in Postgres
EDB
 
Wmware NoSQL
Murat Çakal
 
Druid realtime indexing
Seoeun Park
 
Webinar: Schema Patterns and Your Storage Engine
MongoDB
 
MongoDB .local Paris 2020: Adéo @MongoDB : MongoDB Atlas & Leroy Merlin : et ...
MongoDB
 
Transitioning from SQL to MongoDB
MongoDB
 
Mongodb introduction and_internal(simple)
Kai Zhao
 
MongoDB, Hadoop and Humongous Data
Steven Francia
 
Migrating from RDBMS to MongoDB
MongoDB
 
Real-Time Integration Between MongoDB and SQL Databases
MongoDB
 
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
MongoDB
 
ManetoDB: Key/Value storage, BigData in Open Stack_Сергей Ковалев, Илья Свиридов
GeeksLab Odessa
 
MongoDB, Hadoop and humongous data - MongoSV 2012
Steven Francia
 
TechEd AU 2014: Microsoft Azure DocumentDB Deep Dive
Intergen
 
Tweaking perfomance on high-load projects_Думанский Дмитрий
GeeksLab Odessa
 
Python and MongoDB as a Market Data Platform by James Blackburn
PyData
 
MongoTokyo
Hiroaki Kubota
 

Viewers also liked (17)

PDF
Jolt Overview-min
J. Eric Marchant
 
PDF
XREST Protocol
William Candillon
 
PDF
XQuery in the Cloud
William Candillon
 
PPT
Memorias ram2
duniazaidi
 
ODP
Aspect-Oriented Programming for PHP
William Candillon
 
PPTX
Ortografía
Mercedes Gómez Bejarano
 
PDF
Carrillo carrillo cevallos_presentacionfinal (1)
Santiago Cevallos Castillo
 
DOCX
распутин григорий ефимович
Budiprasetiya21
 
PDF
Краса у сучасному світі
Даша Олійник
 
PDF
Arbitration and Choice of Law in Sub-Saharan Africa, Peter N. Levenberg, Flor...
Peter Levenberg
 
DOCX
Mapa mental
manuel Díaz
 
PDF
Nrf 237-pemex-2009
jaqueline arias
 
PPTX
D01 c
RIDHA BADREDDINE
 
PPTX
Plan 2017 SOLAIAPPAN
SOLAIAPPAN A
 
PDF
Nrf 053-pemex-2006 (1)
jaqueline arias
 
DOCX
Cibernetica 2
gaby_cd2003
 
PDF
Concierge development program 2016
Bagus Widi Kurnianto
 
Jolt Overview-min
J. Eric Marchant
 
XREST Protocol
William Candillon
 
XQuery in the Cloud
William Candillon
 
Memorias ram2
duniazaidi
 
Aspect-Oriented Programming for PHP
William Candillon
 
Carrillo carrillo cevallos_presentacionfinal (1)
Santiago Cevallos Castillo
 
распутин григорий ефимович
Budiprasetiya21
 
Краса у сучасному світі
Даша Олійник
 
Arbitration and Choice of Law in Sub-Saharan Africa, Peter N. Levenberg, Flor...
Peter Levenberg
 
Mapa mental
manuel Díaz
 
Nrf 237-pemex-2009
jaqueline arias
 
Plan 2017 SOLAIAPPAN
SOLAIAPPAN A
 
Nrf 053-pemex-2006 (1)
jaqueline arias
 
Cibernetica 2
gaby_cd2003
 
Concierge development program 2016
Bagus Widi Kurnianto
 
Ad

Similar to JSONiq - The SQL of NoSQL (20)

PPTX
Lviv EDGE 2 - NoSQL
zenyk
 
PPTX
DMDW Extra Lesson - NoSql and MongoDB
Johannes Hoppe
 
PDF
Introduction to MongoDB
Mike Dirolf
 
PDF
Mongo db transcript
foliba
 
PPTX
mongodb_DS.pptx
DavoudSalehi1
 
PPTX
NoSQL Roundup
Daniel Fields
 
PDF
MongoDB: a gentle, friendly overview
Antonio Pintus
 
PPTX
Nosql seminar
Shreyashkumar Nangnurwar
 
PDF
Drupal Day 2011 - Drupal and the rise of the documents
DrupalDay
 
PPTX
NoSql evaluation
Karthik Mohan
 
PDF
MySQL Document Store -- SCaLE 17x Presentation
Dave Stokes
 
PDF
HPTS 2011: The NoSQL Ecosystem
Adam Marcus
 
PDF
The NoSQL Ecosystem
yarapavan
 
PDF
No SQL Technologies
Cris Holdorph
 
PDF
MongoDB at FrozenRails
Mike Dirolf
 
PPTX
Mongo db
Akshay Mathur
 
PPTX
Top 5 Considerations When Evaluating NoSQL
MongoDB
 
PPTX
Why Organizations are Looking at Alternative Database Technologies – Introduc...
DATAVERSITY
 
KEY
Using NoSQL MongoDB with ColdFusion
indiver
 
Lviv EDGE 2 - NoSQL
zenyk
 
DMDW Extra Lesson - NoSql and MongoDB
Johannes Hoppe
 
Introduction to MongoDB
Mike Dirolf
 
Mongo db transcript
foliba
 
mongodb_DS.pptx
DavoudSalehi1
 
NoSQL Roundup
Daniel Fields
 
MongoDB: a gentle, friendly overview
Antonio Pintus
 
Drupal Day 2011 - Drupal and the rise of the documents
DrupalDay
 
NoSql evaluation
Karthik Mohan
 
MySQL Document Store -- SCaLE 17x Presentation
Dave Stokes
 
HPTS 2011: The NoSQL Ecosystem
Adam Marcus
 
The NoSQL Ecosystem
yarapavan
 
No SQL Technologies
Cris Holdorph
 
MongoDB at FrozenRails
Mike Dirolf
 
Mongo db
Akshay Mathur
 
Top 5 Considerations When Evaluating NoSQL
MongoDB
 
Why Organizations are Looking at Alternative Database Technologies – Introduc...
DATAVERSITY
 
Using NoSQL MongoDB with ColdFusion
indiver
 
Ad

More from William Candillon (6)

PDF
XQuery Rocks
William Candillon
 
PDF
Cutting Edge Data Processing with PHP & XQuery
William Candillon
 
PDF
Not your Grandma's XQuery
William Candillon
 
PDF
XQuery Design Patterns
William Candillon
 
PDF
Extending and scripting PDT
William Candillon
 
ODP
My Summer of Code
William Candillon
 
XQuery Rocks
William Candillon
 
Cutting Edge Data Processing with PHP & XQuery
William Candillon
 
Not your Grandma's XQuery
William Candillon
 
XQuery Design Patterns
William Candillon
 
Extending and scripting PDT
William Candillon
 
My Summer of Code
William Candillon
 

JSONiq - The SQL of NoSQL

  • 1. JSONiq - The SQL of NoSQL msec William Candillon {[email protected]}
  • 6. NoSQL Checklist 28 Document Stores High Availability ✔
  • 7. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔
  • 8. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔
  • 9. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language
  • 12. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language X
  • 13. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language X Modern Query Processing
  • 16. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language X Modern Query Processing X
  • 17. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language X Modern Query Processing X Rich Data Model
  • 18. Rich Data Model (1) 28
  • 19. Rich Data Model (2) 28
  • 20. NoSQL Checklist 28 Document Stores High Availability ✔ Sharding ✔ Available as a Service ✔ Standardized Query Language X Modern Query Processing X Rich Data Model X
  • 21. NoSQL Checklist 28 Document Stores High Availability ✔ Scalability Sharding ✔ Available as a Service ✔ Standardized Query Language X Flexible Data Modern Query Processing X Rich Data Model X
  • 22. The SQL of NoSQL
  • 23. JSONiq (1) 28 Declarative JSON Query Language Fully Composable Extension of XQuery, a mature W3C standard, with native JSON support Contributors: 28msec, Oracle, EMC
  • 24. JSONiq (2) 28 Updates, Indexes, Search, Transform & Filter, Join, Group, and more Open Source Implementation: Zorba Drivers: MongoDB, CouchDB, AmazonDB, SQLite, Oracle NoSQL
  • 25. { "question_id" : 42, "title" : "NoSQL: Help me to choose", "tags" : [ "mongodb", "couchdb" ], "answered" : true, }
  • 26. let $question := { "question_id" : 42, "title" : "NoSQL: Help me to choose", "tags" : [ "mongodb", "couchdb" ], "answered" : true, } return $question("title")
  • 27. for $answers in mongo:find("answers") group by $id := $answers("question_id") order by count($answers) descending let $faq := mongo:find("faq") return <h1>{ $faq[.("id") eq $id]("title") }</h1> <h1>NoSQL: Help me to Choose</h1> <h1>What NoSQL solutions for .NET?</h1> <h1>The Next-gen Databases</h1> ...
  • 28. for $question in mongo:find("faq") let $user := $question("owner") group by $user := $user("user_id") return { "user" : $user[last()]("display_name"), "count" : count($question) } { "user": "jbellis", "count": 6 } { "user": "user1557698", "count": 5 } { "user": "nawroth", "count": 5 } ...
  • 29. max( for tumbling window $answers in mongo:find("answers") start $start when true only end $end next $next when $next("date") - $end("date") gt xs:dayTimeDuration("P1D") return $end("date") - $start("date") ) { "user": "jbellis", "streak": 2 } { "user": "user1557698", "streak": 1 } { "user": "nawroth", "streak": 1 } ...
  • 30. "Luke, I am your father" contains text "dad" false
  • 31. "Luke, I am your father" contains text "dad" using thesaurus default true
  • 32. let $s := "These are not the droids you are looking for" let $tokens := ft:tokenize-string($s) for $token in $tokens where not(ft:is-stop-word($token)) return ft:stem($token) droid look ...
  • 33. MongoDB Driver 28 Zorba Runtime XDM Collections Indexes MongoDB MongoS BSON Collections Indexes
  • 34. 28.io 28 • Seamless JSONiq Integration into MongoDB • Automatic Scale out of the Query Processing Zorba Runtime XDM Collections Indexes MongoDB MongoS BSON Collections Indexes
  • 35. 28.io 28
  • 36. Put the Pressure back to the Query Language
  • 37. Take Away 28 • JSONiq.org - The SQL of NoSQL • Open Source Implementation: Zorba • Next Stop: Automatic Index Detection Query Parallelization • Hosting: 28.io • Demo: http://28.io/mongodb
  • 38. Thank You! msec Questions?