Presentation is loading. Please wait.

Presentation is loading. Please wait.

Yahoo! Query Language (Web Service)

Similar presentations


Presentation on theme: "Yahoo! Query Language (Web Service)"— Presentation transcript:

1 Yahoo! Query Language (Web Service)
Peter Piják Róbert Šišaj

2 Osnova Jazyk Yahoo! Query Language Yahoo! Query Language Web Service
konštrukcie zdroje dát Yahoo! Query Language Web Service použitie prístup

3 Motivácia - Čo je YQL WS? Internet
mnoho služieb rôzne rozhrania Yahoo! Query Language Web Service (YQL WS) sprístupniť dáta služieb Yahoo! a iných z Internetu jedno rozhranie Jazyk YQL jednoduchá syntax SQL Demonštratívny dotaz SELECT * FROM internet (…)

4 Možnosti YQL WS Preddefinované tabuľky Tabuľky rozšíriteľné Formát
Yahoo! osobný účet Yahoo! služby a siete: Search, Flickr, Social, MyBlogLog Tabuľky rozšíriteľné Open Data tables ľubovoľná iná služba Formát vstup: HTML, XML, JSON, RSS, Atom výstup: XML, JSON (JavaScript Object Notation)

5 Ukážkový dotaz Dotaz Výsledok
SELECT givenName, familyName FROM social.profile WHERE guid=me Výsledok <results> <profile xmlns=…> <givenName>Peter</givenName> <familyName>Piják</familyName> </profile> </results>

6 Prístup k YQL WS YQL Console HTTP dotaz Yahoo! PHP SDK
interaktívne prostredie HTTP dotaz SELECT * FROM social.profile WHERE guid=me Yahoo! PHP SDK webové aplikácie

7 Prístup cez YQL Console
Dotazy vloženie, výsledok, predchádzajúce dotazy prevod na http dotaz Zoznam tabuliek Príklady dotazov

8 Prístup cez HTTP Príklad SELECT * FROM geo.places WHERE text=“prague“
public/yql?q=select * from geo.places where text=%22prague%22

9 Prístup cez HTTP Adresy URL podľa potreby autorizácie
pre tabuľky vyžadujúce autentifikáciu Parametre [query] príklad: q=[yql_query]&format=xml Názov Preddefinová hodnota q (povinný) YQL dotaz format xml formát (xml, json) callback názov funkcie v Javascripte pre zavolanie diagnostics true debug zapisovanie záznamov (logovanie)

10 Prístup cez HTTP HTTP protokol Pre dotaz v YQL dotaz:
GET / HTTP/1.1 Host: definovaných 8 metód: HEAD, GET, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT Pre dotaz v YQL SELECT dotaz používa GET INSERT –– PUT UPDATE –– POST DELETE –– DELETE

11 Yahoo! PHP SDK Knižnica PHP od Yahoo!
trieda YahooSession, pre YQL dotaz metóda query <?php require ("Yahoo.inc"); $session = YahooSession::requireSession (USER_KEY, USER_SECRET, APPLICATION_ID); $query = sprintf (“SELECT * FROM geo.places WHERE text='ballard';“); $response = $session->query ($query); print_r ($response); ?>

12 Nesprávny dotaz Syntakticky alebo sémanticky nesprávny dotaz
SELECT * FROMm social.profile WHERE guid=me <error xmlns:yahoo=... > <description>Syntax error(s) [line 1:9 missing FROM at 'FROMm'] </description> </error> SELECT * FROM abc <error xmlns:yahoo=... > <description> No definition found for Table abc </description> </error>

13 SELECT Dáta z YQL tabuliek alebo web. služieb Syntax
SELECT cols FROM table WHERE filter [| function] cols –– polia / stĺpce na výstup table –– YQL tabuľka filter –– filtrovanie záznamov function –– funkcia upravujúca poradie (sort) Pozn.: nezáleží na veľkosti písmen Vracia dáta v XML alebo JSON formáte riadok –– XML element / JSON objekt stĺpec –– podelement / podobjekt

14 SELECT, vstupné polia Čiarkou oddelené polia (stĺpce) alebo hviezdička
SELECT * FROM social.profile WHERE guid=me <profile ...> <birthdate>...</birthdate> <givenName>Peter</givenName> <image> <imageUrl>...</imageUrl><size>...</size> </image> <location>Zilina, Zilinsky</location> <status>...</status> </profile>

15 SELECT, vstupné polia Prístup k podelementom bodkou
z elementu image iba imageUrl SELECT givenName, image.imageUrl FROM social.profile WHERE guid=me <profile ...> <givenName>Peter</givenName> <image> <imageUrl> </image> </profile>

16 Filtrovanie záznamov Dotaz Typy filtrov
SELECT * FROM flickr.photos.search WHERE text='Barcelona' Typy filtrov vzdialené lokálne

17 Vzdialené filtrovanie
YQL WS preloží podmienku do tvaru vzdialenej služby Filtrovanie záznamov vo vzdialenej službe dotaz v tvare input_key=literal alebo kombinácia OR Príklad SELECT * FROM flickr.photos.info WHERE photo_id=' ' preklad na: flickr.photos.get-Info&photo_id=' '

18 Vzdialené filtrovanie, príklad
Vyhľadávanie cez Yahoo! Search Dotaz SELECT url FROM search.web WHERE query='univerzita praha' t%20url%20from%20search.web%20where%20query%3D'u niverzita%20praha'

19 Lokálne filtrovanie YQL WS preberá všetky dáta, filtruje ich Syntax:
Príklad SELECT * FROM search.web WHERE query='univerzita praha' AND title LIKE '%metr%' query –– vzdialene title –– lokálne Syntax: field comp_operator literal operátory: =, !=, >, <, >=, <=, IN (values), [NOT] LIKE (pattern), [NOT] MATCHES (pattern), IS [NOT] NULL alebo kombinácia AND a OR

20 Spájanie tabuliek Spojenie rôznych tabuliek / rôznych služieb
Pomocou zhodnosti hodnôt Spojenie – operátor IN a sub-dotaz Dotaz SELECT * FROM search.web WHERE query IN (SELECT title FROM rss WHERE url= " | truncate (count=1) )

21 Spájanie tabuliek Vnútorný dotaz Celkový výsledok
SELECT title FROM rss WHERE url= "..." | truncate(count=1) <item><title> Senate to vote on $1.1 trillion spending bill </title></item> Celkový výsledok <results> <result xmlns="..."><title> <![CDATA[FOXNews.com - <b>Senate</b> Poised to Advance $1.1T <b>Spending</b> <b>Bill</b>]]> </title></result> <result ... /> </results>

22 Spájanie tabuliek, viacnásobný kľúč
Vnútorný dotaz SELECT * FROM local.search WHERE (latitude,longitude) IN (SELECT centroid.latitude, centroid.longitude FROM geo.places WHERE text="north beach, san francisco" ) AND radius=1 AND query="pizza"

23 Spájanie tabuliek, viac subdotazov
Vnorenie subdotazov, povolené SELECT * FROM search.siteexplorer.pages WHERE query IN (SELECT url FROM search.web WHERE query IN (SELECT Artist.name FROM music.release.popular LIMIT 1) LIMIT 1) Viacnásobné subdotazy s operátorom IN nepovolené SELECT * FROM flickr.photos.search WHERE lat IN (SELECT centroid.latitude FROM geo.places WHERE text="sfo") AND lon IN (SELECT centroid.longitude FROM geo.places WHERE text="sfo") Only a single subselect with a key field is allowed in a branch.

24 SELECT, obmedzenie kapacity dát
Obmedzenia Maximálny počet vrátených riadkov 5000 Maximálny výpočtový čas 30 sekúnd Obmedzenia vzdialenej služby obmedzenia za tabuľkou: SELECT columns FROM table [([offset, ]count)] count – počet, offset – začiatočný záznam SELECT title FROM search.web (10, 30) WHERE query="pizza" predvolené (0, 10) bez obmedzenia (0)

25 SELECT, obmedzenie kapacity dát
Obmedzenia YQL WS služby SELECT columns FROM table WHERE condition [LIMIT limit [OFFSET offset]] predvolené LIMIT 10, OFFSET 0 Obmedzenia vzdialenej služby a lokálnej služby je možné kombinovať

26 Triediace a iné funkcie
Syntax SELECT columns FROM table (| function)* Príklad: SELECT name, centroid.latitude FROM geo.places WHERE text="victoria" | SORT (field='centroid.latitude') <place><name>Victoria</name> <centroid><latitude> </...></...> </place> <place><name>Vitoria</name> <centroid><latitude> </...></...> </place>

27 Triediace a iné funkcie
Syntax SELECT columns FROM table (| function)* Funkcia Argument Príklad sort field [descending] sort (field="name", descending="true") tail count tail (count=4) truncate truncate (count=4) reverse reverse () unique field unique (field="foo") sanitize [field] sanitize (field="foo") sanitize - prevedie znaky na HTML entity

28 Extrahovanie HTML obsahu
Obsah web. stránky SELECT * FROM html WHERE url=" <results> <body lang="en"> <div id="outer"><a id="top" name="top"/> <div id="contain-all"> <div id="logo"> <img alt=““ src="..."/> </body> </results>

29 Extrahovanie HTML obsahu, XPath
Extrahovanie pomocou XPath SELECT * FROM html WHERE url=" AND <results> <h1 id="faculty"> Faculty of Mathematics and Physics </h1> </results>

30 Nápoveda k tabuľke Dotaz Príklad DESC table_name DESC html
<table name="html" security="ANY"> <meta> <sampleQuery>select * from html where url=" and </sampleQuery> </meta> <request> <select> <key name="browser" type="xs:boolean"/> <key name="charset" type="xs:string"/> <key name="url" required="true" type="xs:string"/> <key default="/html/body" name="xpath" type="xs:string"/> </select> </request> </table>

31 I/U/D dotazy I/U/D –– INSERT, UPDATE, DELETE Ale
nie je možné pri každej tabuľke nutná autentifikácia

32 INSERT Syntax INSERT INTO (table) (list_of_columns) VALUES (list_of_values) Príklad ... (vysvetlené neskôr) INSERT INTO bitly.shorten (login, apiKey, longUrl) VALUES ('YOUR_LOGIN', 'YOUR_API_KEY', '

33 DELETE Syntax Príklad DELETE FROM table_name WHERE filter
DELETE FROM twittertable WHERE tweetid="12345" AND username="twitter_username" AND password="twitter_password"

34 UPDATE Syntax Príklad UPDATE table SET field = value WHERE filter
UPDATE social.profile.status SET status="Prednáška" WHERE guid=me

35

36 Open Data Tables Definícia ODT Sprístupnenie ODT v YQL
Nastavenie kľúčových hodnôt pre ODT Zabezpečenie ODT a kontrola prístupu Dávkové spracovanie volaní Debuggovanie ODT a YQL

37 Definícia ODT ODT je definovaná pomocou XML súboru
root element <table> obsahuje atribúty xmlns - odkaz na XML schému securityLevel - určuje autorizáciu potrebnú pre prístup východzia hodnota 'any' - anonymný prístup (bez obmedzenia) https - ak je true, tabuľka je prístupná len cez HTTPS, v opačnom prípade je prístupná cez HTTP i HTTPS ak tabuľka vyžaduje citlivé údaje (heslo, autentifikačný kľúč, ...), je HTTPS nutnosťou <meta> element poskytuje doplňujúce informácie k tabuľke sampleQuery - vzorový dotaz (1 alebo viac) description author

38 Definícia ODT element select (insert, update, delete)
nachádzajú sa v elemente <bindings>, definujú prístup k zdrojom z externých webových služieb element <select> definuje, ako má YQL čítať dáta z WS itemPath - definuje 'riadok' tabuľky, opakujúci sa element v odpovedi z API, používa sa '.' notácia feed.entry, root.station JSON na rozdiel od XML nemá root element, preto YQL vytvorí 'pseudo' root element nazvaný 'json' produces - typ dát z WS <url> element označuje zdroj, odkiaľ YQL čerpá dáta pre tabuľku <key> element - označuje pomenovaný kľúč, ktorý YQL berie z klauzule WHERE (pri SELECTe) a doplní ho do URL - až potom odošle požiadavok do WS

39 Definícia ODT - príklad
<?xml version="1.0" encoding="UTF-8"?> <table xmlns=" <meta> <author>You</author> <documentationURL>None</documentationURL> <description>Uses the Google Base feed search</description> <sampleQuery>SELECT * FROM {table} WHERE brand = "Canon"</sampleQuery> </meta> <bindings> <select itemPath="feed.entry" produces="XML"> <urls> <url> </urls> <inputs> <key id="bq" type="xs:string" paramType="query"/> </inputs> </select> </bindings> </table>

40 Definícia ODT - príklad
odkaz na popis schémy tabuľky <?xml version="1.0" encoding="UTF-8"?> <table xmlns=" meta informácie <meta> <author>You</author> <documentationURL>None</documentationURL> <description>Uses the Google Base feed search</description> vzorový dotaz {table} zastupuje názov tabuľky, vzorový odkaz bude fungovať aj keď si užívateľ tabuľku premenuje <sampleQuery>SELECT * FROM {table} WHERE brand = "Canon" </sampleQuery> </meta>

41 Definícia ODT - príklad
definícia zdrojových dát pre tabuľku <bindings> <select itemPath="feed.entry" produces="XML"> zdrojová webová služba <urls> <url> </urls> definícia kľúča, ktorým možno preniesť hodnotu z WHERE klauzule SELECTu až do zdrojovej URL <inputs> <key id="bq" type="xs:string" paramType="query"/> </inputs> </select> </bindings> </table>

42 Definícia ODT - príklad
Dotaz s použitím kľúča SELECT title,price,brand FROM {table} WHERE bq = "digital+camera" AND brand LIKE "%Canon%" YQL použije kľúč pri získavaní dát z webovej služby Výsledné dáta spracuje a vráti len výsledky, kde element brand obsahuje podslovo Canon <entry> <title type="text">Canon EOS 5D Mark II Digital Camera (Body only)</title> <g:price type="floatUnit"> usd</g:price> <g:brand type="text">Canon</g:brand> </entry>

43 Sprístupnenie ODT v YQL
Príkaz USE importuje definíciu ODT USE ' AS mytable; Ak vynecháme kľúčové slovo AS, YQL použije názov súboru (bez .xml prípony) na pomenovanie tabuľky Definícia tabuľky musí odpovedať schéme Následne sa môžeme dotazovať SELECT * FROM mytable WHERE... Vhodné sprístupniť potrebné ODT v súbore s príponou .env tatables.org/alltables.env typicky obsahuje príkazy USE a SET

44 Nastavenie kľúčových hodnôt pre ODT
Dôležité kľúče (password, API kľúč, ...) je možné nastaviť nezávisle od YQL príkazov (tieto kľúče musí ODT definovať) SELECT * FROM guardian.content.search WHERE api_key=" " AND q='environment' Nastavenie kľúča api_key: SET api_key=" " ON guardian; SELECT * FROM guardian.content.search WHERE query="environment"

45 Nastavenie kľúčových hodnôt pre ODT
Explicitne uvedená kľúčová hodnota v YQL príkaze má prednosť pred hodnotou nastavenou pomocou SET Ak je hodnota nastavená viackrát, prednosť má najviac upresňujúca definícia – merané dĺžkou prefixu tabuľky Ak je hodnota nastavená viackrát rovnako upresňujúcou definíciou, použije sa posledná definícia

46 Nastavenie kľúčových hodnôt pre ODT
Príklad súboru .env USE " AS bart_table; USE " AS google_base_table; SET bq="digital+camera" ON google_base_table;

47 Príklad I Dotaz s využitím prednastaveného kľúča pomocou SET Výsledok
v&q=SELECT title,brand,target_country,price FROM google_base_table&format=xml Výsledok <diagnostics> ... <url execution-time="235" proxy="DEFAULT"> </diagnostics> <results> <entry> <title type="text">Canon EOS 5D Mark II Digital Camera (Body only)</title> <g:price type="floatUnit"> usd</g:price> <g:target_country type="text">US</g:target_country> <g:brand type="text">Canon</g:brand> </entry>

48 Príklad II Dotaz Výsledok
/~sisar4am/my.env&q=SELECT title,brand,target_country,price FROM google_base_table WHERE bq = "digital+camera+europe"&format=xml Výsledok <entry> <title type="text"> Hewlett Packard C C315 Digital Camera (Europe Only)</title> <g:price type="floatUnit"> usd</g:price> <g:target_country type="text">US</g:target_country> <g:brand type="text">Hewlett Packard</g:brand> </entry>

49 Príklad II <entry> <title type="text">
Hewlett Packard Q EXCH120 Digital Camera-Europe Order Only</title> <g:price type="floatUnit"> usd</g:price> <g:target_country type="text">US</g:target_country> <g:brand type="text">Hewlett Packard</g:brand> </entry> ... HP Hewlett Packard Q New Q PhotoSmart 120 Digital Camera - Europe only</title> <g:price type="floatUnit"> gbp</g:price> <g:target_country type="text">GB</g:target_country> <g:brand type="text">HP Hewlett Packard</g:brand>

50 Zabezpečenie ODT a kontrola prístupu
Využíva sa otvorený protokol OAuth Zabezpečenie tabuľky (securityLevel) any app user Anonymný prístup (bez autorizácie) áno nie 2-legged OAuth 3-legged OAuth

51 Dávkové spracovanie volaní
URI pre profile v rámci Social Directory API V YQL prístup cez tabuľku social.profile SELECT * FROM social.profile WHERE guid IN (SELECT guid FROM social.connections WHERE owner_guid = me) Sub-select potrebuje niekoľko volaní do Social Directory API (predpoklad – užívateľ má 3 connections)

52 Dávkové spracovanie volaní
Social Directory API umožňuje dávkové spracovanie ile Kľúč guid musí byť definovaný ako 'batchable' <key id="guid" type="xs:string" paramType="path" batchable="true" maxBatchItems="3"/> ODT definícia musí umožnovať viacnásobnú hodnotu guid <url env="int"> ({-listjoin|,|guid})/profile</url> Pôvodný SELECT využije dávkové volanie

53 Debuggovanie ODT a YQL Debug režim sa vyvolá pridaním parametru debug=true %20social.profile%20where%20guid%3Dme&format=xml&en v=http%3A%2F%2Fdatatables.org%2Falltables.env&debug =true V debug režime sa nepoužíva cachovanie Odpoveď obsahuje element <diagnostics> - obsahuje záznam všetkých volaní Každý záznam má unikátne id platné 5 minút, to je možné použiť na získanie podrobného logu konkrétneho volania 4-11eb-43a5-866bb e

54 Debuggovanie ODT a YQL Dotaz pomocou HTTP
~sisar4am/my.env&q=SELECT title%2Cprice FROM google_base_table WHERE bq="printer"&format=xml&debug=true Element diagnostics v odpovedi <diagnostics> <url execution-time="130" id="839b341f-9e8c-44a7-b249-f00b00cdd01f" proxy="DEFAULT"> <url execution-time="61" id="4368fdc8-34d3-43de-b99c-e65fa3e71f28" proxy="DEFAULT"> <url execution-time="314" id="609e6403-d9b2-4c3b-84af-48155c5b3362" proxy="DEFAULT"> <user-time>513</user-time> ... </diagnostics>

55 Debuggovanie ODT a YQL Získanie logu z druhého volania YQL
b99c-e65fa3e71f28 Log volania (request) GET Client-IP: X-Forwarded-For: User-Agent: Yahoo Pipes 2.0 YahooRemoteIPSig: eETIOY9_2R68uOZGKOLPfw--~A YahooRemoteIP: X-YQL-Depth: 1 Cache-Control: max-age=1

56 Debuggovanie ODT a YQL Log volania (response) HTTP/1.1 200 OK Age: 2
ETag: "76ef00ec-275-4b263188" Content-Length: 629 Last-Modified: Mon, 14 Dec :37:28 GMT X-Cache-Lookup: MISS from yqlcache2.pipes.ch1.yahoo.com:3128 X-Cache: MISS from yqlcache2.pipes.ch1.yahoo.com Server: YTS/ Vary: YahooTransform Date: Mon, 14 Dec :51:33 GMT Via: 1.0 yqlcache2.pipes.ch1.yahoo.com:3128 (squid/2.7.STABLE6) Content-Type: text/xml Accept-Ranges: bytes

57 Debuggovanie ODT a YQL Samotný obsah odpovede
<?xml version="1.0" encoding="UTF-8"?> <table xmlns=" <meta> <author>You</author> <documentationURL>None</documentationURL> <description>Uses the Google Base feed search</description> <sampleQuery>SELECT * FROM {table} WHERE bq = "digital+camera"</sampleQuery> </meta> <bindings> <select itemPath="feed.entry" produces="XML"> <urls><url> <inputs> <key id="bq" type="xs:string" paramType="query"/> </inputs> </select> </bindings> </table>

58 JavaScript v ODT Použitie JavaScriptu v ODT umožňuje pridať podmienkovú logiku a jemnejšie spracovať dáta Môže pracovať na úrovni requests - responses ovplyvňovať dotaz posielaný do webovej služby a spracovať odpoveď Umožňuje špeciálny prístup k WS niektoré webové služby používajú vlastné bezpečnostné mechanizmy, JavaScriptom je možné pridať autentifikačný header do WS requestu Lepšia podpora pre vkladanie, úpravu a mazanie dát WS

59 JavaScript v ODT JavaScript je vnorený v elemente <execute>
<![CDATA[ // JavaScript code goes here // this does exactly the same as original ODT response.object = request.get().response; y.log("javascript here"); ]]> </execute> logové správy sa zobrazia na výstupe v elemente <diagnostics> <log>javascript here</log> YQL neposiela request na endpoint, umožní 'iba' vykonať JavaScriptový kód - ten musí vrátiť dáta odpovedajúce pôvodnému YQL príkazu

60 JavaScript v ODT JavaScript objekty Globálne objekty
y - obsahuje metódy YQL: query, use, include, exit, rest, xmlToJson, jsonToXml, log, ... metóda rest vyšle GET request metóda query vykoná 'klasický' YQL príkaz (SELECT,...) request - je v podstate objekt, ktorý normálne vzniká zavolaním metódy y.rest vhod response - zvyčajne na konci skriptu obsahuje požadovaný výstup vygenerovaný dotazom

61 JavaScript v ODT Využívanie existujúcich JS knižníc
y.include(" javascript/oauth.js"); y.include(" javascript/sha1.js"); y.include(" uploads/flickr.js"); y.include(" util.js");

62 Obmedzenia JavaScriptu v ODT
Celkový počet jednotiek výpočtu maximálne 50 miliónov jednotiek jednotka znamená prístup do pamäte alebo operáciu y.query() má cenu 2000 jednotiek y.log(), y.rest() - cena 1000 jednotiek spájanie reťazcov - 1 znak má cenu 1 jednotky operácia s objektom vytvoreným pomocou new - cena 500 jednotiek za operáciu ! pridanie elementu (XML) - cena 50 jednotiek cena spojenia 2 XML stromov, každý nech obsahuje 10 elementov (10 elementov + 10 elementov) * 50 jednotiek = jednotiek

63 Obmedzenia JavaScriptu v ODT
Celkový čas výpočtu limitovaný na max 30 sekúnd Veľkosť zásobníku hĺbka zásobníku nesmie presiahnuť 100 úrovní Počet súčasných YQL dotazov maximálne 5 dotazov súčasne Počet objektov vytvorených pomocou new 1 milión objektov Počet elementov v E4X objekte 1 milión elementov v každom E4X objekte

64 Hosted Storage YQL poskytuje 2 ODT: yql.storage a yql.storage.admin
práca s dátami pomocou SELECT, INSERT, UPDATE, DELETE dáta sú uložené v Yahoo! Sherpa cloud distribuované úložište (aj geograficky) - vysoká dostupnosť, nízka latencia Limity úložišťa každý záznam môže mať veľkosť maximálne 100KB maximálne 1000 záznamov záznamy bez prístupu po dobu 30 dní môžu byť odstránené SELECT, UPDATE, prípadne execute záznamy musia byť textové JavaScript kód, XML súbor, ODT, YQL environment súbor (.env) prístup do yql.storage.admin vyžaduje 2-legged OAuth prístup do yql.storage nevyžaduje autentifikáciu

65 Hosted Storage Uloženie nového záznamu
INSERT INTO yql.storage.admin (value) VALUES ("example text content") Odpoveď vráti 3 prístupové kľúče <results> <inserted> <execute>store://yWblhURrET76rOdAwrRYxB</execute> <select>store://OY4YK9Qbn7OtK5iV5TCvp4</select> <update>store://IvY7M2SbVzYpS0J0FmJO6e</update> </inserted> </results> <select> - používa sa v príkazoch SELECT <update> - v príkazoch UPDATE, DELETE <execute> - v príkazoch, ktoré obsahujú USE alebo sa odkazujú na .env súbory

66 Hosted Storage Prístup k záznamom Zmazanie záznamu
SELECT * FROM yql.storage WHERE name="store://OY4YK9Qbn7OtK5iV5TCvp4" <results> <result> <value>example text content</value> </result> </results> Zmazanie záznamu opäť pomocou yql.storage DELETE FROM yql.storage WHERE name="store://IvY7M2SbVzYpS0J0FmJO6e"

67 Záver YQL poskytuje intuitívne rozhranie hlavne k Yahoo! službám (Flickr, Search, ...) Definovaním ODT je možné rozšíriť YQL, aby pristupoval k akejkoľvek webovej službe, ktorá poskytuje dáta vo vhodnom formáte (XML, JSON, ...) Webová aplikácia môže s pomocou YQL vyhľadávať, filtrovať a kombinovať dáta z rôznych zdrojov umiestnených na Internete YQL má určité (väčšinou kapacitné) obmedzenia, ktoré sú ale pochopiteľné a v praxi vadia len vo výnimočných prípadoch Je treba myslieť na to, že kvalita dát z rôznych zdrojov sa môže líšiť (na rozdiel od SQL nemôžeme spoliehať na obmedzujúce podmienky - constraints)

68 Použitá literatúra [1] http://developer.yahoo.com/social/sdk/php/
[1] [2] Yahoo! Query Language (YQL) Guide [3]


Download ppt "Yahoo! Query Language (Web Service)"

Similar presentations


Ads by Google