SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Jiří Kosek: Potřebujeme dotazovací jazyky pro NoSQL
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.
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, …)
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.
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.
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.
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.
FLWOR výrazy
FOR
LET
WHERE
GROUP BY
ORDER BY
COUNT
RETURN
14.
FLWOR výrazy
FOR
LET
WHERE
GROUP BY
ORDER BY
COUNT
RETURN
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.
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.
Vyžadujte od své oblíbené NoSQL databáze
dotazovací jazyk hodný roku 2013
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.
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
0 likes
Be the first to like this
Views
Total views
758
On SlideShare
0
From Embeds
0
Number of Embeds
3
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.