Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Potřebujeme dotazovací jazyky
pro NoSQL?
@jirkakosek
Potřebujeme dotazovací jazyky
pro NoSQL?
@jirkakosek
NoSQL
Photo by Marshall Astor
Typické charakteristiky NoSQL
•
•
•
•
•

žádné nejsou
velké objemy dat
distribuované zpracování
odolnost proti výpadku
jed...
Způsoby dotazování v NoSQL
• jednoduché dotazy pomocí URL parametrů
přes REST rozhraní
• dotazy zapsané jako JSON
• map/re...
by John Muellerleile
JSON is simply cool!
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "drama"
}
},
"filter": {
"term": { "...
Photo by Atelier Graphique
XQuery
• dotazovací jazyk pro nestrukturované
dokumenty (původně XML)
• úsporná a jednoduchá syntaxe
• mnoho let vývoje a ...
XQuery
• dotazovací jazyk pro nestrukturované
dokumenty (původně XML)
• úsporná a jednoduchá syntaxe
• mnoho let vývoje a ...
JSONiq
• JSONiq = XQuery – XML + JSON
Vstup
{
"name" : "Sarah",
"age" : 13,
"gender" : "female",
"friends" : [ "Jim", "Mar...
JSONiq
• JSONiq = XQuery – XML + JSON
Vstup
{
"name" : "Sarah",
"age" : 13,
"gender" : "female",
"friends" : [ "Jim", "Mar...
FLWOR výrazy
FOR
LET
WHERE
GROUP BY
ORDER BY
COUNT
RETURN
FLWOR výrazy
FOR
LET
WHERE
GROUP BY
ORDER BY
COUNT
RETURN
Jednotný dotazovací jazyk
• JSONiq/XQuery engine mapuje dotaz na
primitivní operace a indexy použitého úložiště
• Možnosti...
Implementace
• Zorba (zorba.io)
– JSONiq dotazy nad CouchDB, MongoDB, relačními
DB, SQLLite, Oracle NoSQL, …
– přidat podp...
Vyžadujte od své oblíbené NoSQL databáze
dotazovací jazyk hodný roku 2013
Kde se dozvědět více
• Stahujte a zkoušejte
• http://jsoniq.org/
• Seznamte se s horkými novinkami na poli
dotazovacích ja...
Kde se dozvědět více
• Stahujte a zkoušejte
• http://jsoniq.org/
• Seznamte se s horkými novinkami na poli
dotazovacích ja...
Jiří Kosek: Potřebujeme dotazovací jazyky pro NoSQL
Upcoming SlideShare
Loading in …5
×

Jiří Kosek: Potřebujeme dotazovací jazyky pro NoSQL

638 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Jiří Kosek: Potřebujeme dotazovací jazyky pro NoSQL

  1. 1. Potřebujeme dotazovací jazyky pro NoSQL? @jirkakosek
  2. 2. Potřebujeme dotazovací jazyky pro NoSQL? @jirkakosek
  3. 3. NoSQL Photo by Marshall Astor
  4. 4. Typické charakteristiky NoSQL • • • • • žádné nejsou velké objemy dat distribuované zpracování odolnost proti výpadku jednoduché úložiště – klíč/hodnota – dokumenty (JSON)
  5. 5. Způsoby dotazování v NoSQL • jednoduché dotazy pomocí URL parametrů přes REST rozhraní • dotazy zapsané jako JSON • map/reduce dotazy zapsané jako funkce (JS, Ruby, Erlang, …)
  6. 6. by John Muellerleile
  7. 7. JSON is simply cool! { "query": { "filtered": { "query": { "query_string": { "query": "drama" } }, "filter": { "term": { "year": 1962 } } } } }
  8. 8. Photo by Atelier Graphique
  9. 9. XQuery • dotazovací jazyk pro nestrukturované dokumenty (původně XML) • úsporná a jednoduchá syntaxe • mnoho let vývoje a zkušeností • přes 20 různých implementací • další moduly jazyka – XQuery Update (CRUD) – XQuery Full-text
  10. 10. XQuery • dotazovací jazyk pro nestrukturované dokumenty (původně XML) • úsporná a jednoduchá syntaxe • mnoho let vývoje a zkušeností • přes 20 různých implementací • další moduly jazyka – XQuery Update (CRUD) – XQuery Full-text
  11. 11. JSONiq • JSONiq = XQuery – XML + JSON Vstup { "name" : "Sarah", "age" : 13, "gender" : "female", "friends" : [ "Jim", "Mary", "Jennifer"] } Dotaz for $sarah in collection("users"), $friend in collection("users") where $sarah.name eq "Sarah" and (some $name in $sarah.friends[] satisfies $friend.name eq $name) return $friend Výsledek { "name" : "Jim", "age" : 13, "gender" : "male", "friends" : [ "Sarah" ] { "name" : "Jim", "age" : 13, "gender" : "male", "friends" : [ "Sarah" ] } }
  12. 12. JSONiq • JSONiq = XQuery – XML + JSON Vstup { "name" : "Sarah", "age" : 13, "gender" : "female", "friends" : [ "Jim", "Mary", "Jennifer"] } Dotaz for $sarah in collection("users"), $friend in collection("users") where $sarah.name eq "Sarah" and (some $name in $sarah.friends[] satisfies $friend.name eq $name) return $friend Výsledek { "name" : "Jim", "age" : 13, "gender" : "male", "friends" : [ "Sarah" ] { "name" : "Jim", "age" : 13, "gender" : "male", "friends" : [ "Sarah" ] } }
  13. 13. FLWOR výrazy FOR LET WHERE GROUP BY ORDER BY COUNT RETURN
  14. 14. FLWOR výrazy FOR LET WHERE GROUP BY ORDER BY COUNT RETURN
  15. 15. Jednotný dotazovací jazyk • JSONiq/XQuery engine mapuje dotaz na primitivní operace a indexy použitého úložiště • Možnosti JSONiq/XQuery splňují pravidlo 80/20 • Velice specifické vlastnosti jednotlivých NoSQL databází mohou být mapovány na nové funkce nebo operátory
  16. 16. Implementace • Zorba (zorba.io) – JSONiq dotazy nad CouchDB, MongoDB, relačními DB, SQLLite, Oracle NoSQL, … – přidat podporu pro nové úložiště je relativně jednoduché • Lux (github.com/msokolov/lux) – XQuery dotazy nad Lucene/Sorl • Komeční XML databáze často podporují i přímou práci a ukládání JSON
  17. 17. Vyžadujte od své oblíbené NoSQL databáze dotazovací jazyk hodný roku 2013
  18. 18. Kde se dozvědět více • Stahujte a zkoušejte • http://jsoniq.org/ • Seznamte se s horkými novinkami na poli dotazovacích jazyků a semistrukturovaných dat Konference XMLPrague 2014 14. až 16. únor 2014 http://xmlprague.cz http://m.doporucim.cz/Kosek
  19. 19. Kde se dozvědět více • Stahujte a zkoušejte • http://jsoniq.org/ • Seznamte se s horkými novinkami na poli dotazovacích jazyků a semistrukturovaných dat Konference XMLPrague 2014 14. až 16. únor 2014 http://xmlprague.cz http://m.doporucim.cz/Kosek

×