1Jonathan LeBlanc – Technology EvangelistYahoo! Developer NetworkTwitter: @jcleblanc
2
3YQL Query StructureSELECT * FROM Internet
4YQL Test ConsoleAvailable At: http://developer.yahoo.com/yql/console
5Running Queries - SELECT Query StructureSELECTmyColumn, myTitleFROM myTable(0, 50)WHEREmyColumn = 'value' ANDmyTitle = 'title‘LIMIT3 OFFSET 10 |sort(field='myColumn') | reverse()
6Running Queries - INSERT / UPDATE / DELETEModify Data on the InternetCreate Tweets, Add Blog Entries, Update DatabasesCurrent Tables Using I/U/DTwitter Status, bit.ly URL Shortner, Yahoo! Profile Status / Update Stream, Amazon SimpleDB
7Running Queries - INSERT Query StructureINSERT INTObitly.shorten (login, apiKey, longUrl) VALUES (’ME', 'API_KEY', 'http://yahoo.com')
8Running Queries - UPDATE Query StructureUPDATE social.profile.statusSET status="Using YQL UPDATE" WHEREguid=“NJFIDHVPVVISDXZKT7UKED2WHU”
9Running Queries - DELETE Query StructureDELETE FROM twittertableWHERE tweetid="12345" AND username="twitter_username" AND password="twitter_password
10Running Queries – Sub-selects with the IN clauseSELECT * FROM flickr.photos.searchWHERE (lat, lon) IN (SELECT centroid.latitude, centroid.longitude FROM geo.places WHERE text="SFO")
11Running Queries – Available TablesYQL Command: SHOW TablesNumber of Standard Tables: 113Number of Community Tables: 610Total Number of Tables: 723Contribute Tables to: http://www.github.com/yql/yql-tables/
12Running Queries – Table SyntaxYQL Command: DESC tablename
Running Queries – URL Formathttp://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params]Paramsq=[QUERY]format=[XML / JSON] diagnostics=[true / false]debug=[true / false]env=[.env file link]callback=[function name]13
14Running Queries – URL Formathttp://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params]Paramsq=[QUERY]
format=[XML / JSON / JSONP / JSONP-X]
diagnostics=[true / false]
debug=[true / false]
env=[.env file link]
callback=[function name]15Query Aliasing – Creating Your Aliashttp://queries.yahooapis.com/v1/public/yql/[user_alias]/[query_alias]Create Your User AliasINSERT INTO yql.queries (alias) VALUES (”jcleblanc")Insert a new Query AliasINSERT INTO yql.queries.query (name, query) VALUES ("weather", ”SELECT * FROM weather.forecast WHERE location=90210")
16YQL Open Data TablesWrap Your Own API or Data Source
17Open Data Tables – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta>        <bindings></bindings></table>
18Open Data Tables – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta>     <bindings></bindings></table>
19Open Data Tables – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta>        <author>Jonathan LeBlanc</author>                   <description>My Table</description>         <documentationURL>www.site.com</documentationURL>               <sampleQuery>SELECT * FROM {table} </sampleQuery>    </meta>        <bindings></bindings></table>
20Open Data Tables – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta>    <bindings></bindings></table>
21Open Data Tables – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta> <bindings><select itemPath="" produces="XML" >             <urls>                 <urlenv="all”>http://www.site.com/{user}</url>             </urls>             <inputs>                <key id="user" type="xs:string" paramType="path"                    required="true" /> </inputs>         </select>     </bindings></table>
22Open Data Tables – Invoking a Table DefinitionThe USE clauseUSE 'http://github.com/yql/yql-tables/raw/master/google/google.buzz.updates.xml'AS buzz.updates; SELECT * FROM buzz.updatesWHERE user='nakedtechnologist'
23Open Data Tables – .env Fileshttp://datatables.org/alltables.envUSE 'http://www.datatables.org/amazon/amazon.ecs.xml' AS amazon.ecs;USE 'http://www.datatables.org/bitly/bit.ly.shorten.xml' AS bit.ly.shorten;USE 'http://www.datatables.org/dopplr/dopplr.auth.xml' AS dopplr.auth;USE 'http://www.datatables.org/dopplr/dopplr.city.info.xml' AS dopplr.city.info;
Google Buzz TableAvailable At: http://github.com/yql/yql-tables
25YQL ExecuteExtending Open Data Tables
26YQL Execute – XML File SyntaxAugment datacity / state to APIs that just return zip codeCreate APIs from web pagescelebrity birthdays scraped from IMDBData Transformationsconvert the results from xml to Google's kml formatMove business logic of your application to the cloud
27YQL Execute – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta>     <bindings><select itemPath="" produces="XML" >             <urls></urls>             <inputs></inputs>         </select>     </bindings></table>
28YQL Execute – XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">        <meta></meta>     <bindings><select itemPath="" produces="XML" >             <urls></urls>             <inputs></inputs><execute></execute>         </select>     </bindings></table>

YQL Overview

  • 1.
    1Jonathan LeBlanc –Technology EvangelistYahoo! Developer NetworkTwitter: @jcleblanc
  • 2.
  • 3.
  • 4.
    4YQL Test ConsoleAvailableAt: http://developer.yahoo.com/yql/console
  • 5.
    5Running Queries -SELECT Query StructureSELECTmyColumn, myTitleFROM myTable(0, 50)WHEREmyColumn = 'value' ANDmyTitle = 'title‘LIMIT3 OFFSET 10 |sort(field='myColumn') | reverse()
  • 6.
    6Running Queries -INSERT / UPDATE / DELETEModify Data on the InternetCreate Tweets, Add Blog Entries, Update DatabasesCurrent Tables Using I/U/DTwitter Status, bit.ly URL Shortner, Yahoo! Profile Status / Update Stream, Amazon SimpleDB
  • 7.
    7Running Queries -INSERT Query StructureINSERT INTObitly.shorten (login, apiKey, longUrl) VALUES (’ME', 'API_KEY', 'http://yahoo.com')
  • 8.
    8Running Queries -UPDATE Query StructureUPDATE social.profile.statusSET status="Using YQL UPDATE" WHEREguid=“NJFIDHVPVVISDXZKT7UKED2WHU”
  • 9.
    9Running Queries -DELETE Query StructureDELETE FROM twittertableWHERE tweetid="12345" AND username="twitter_username" AND password="twitter_password
  • 10.
    10Running Queries –Sub-selects with the IN clauseSELECT * FROM flickr.photos.searchWHERE (lat, lon) IN (SELECT centroid.latitude, centroid.longitude FROM geo.places WHERE text="SFO")
  • 11.
    11Running Queries –Available TablesYQL Command: SHOW TablesNumber of Standard Tables: 113Number of Community Tables: 610Total Number of Tables: 723Contribute Tables to: http://www.github.com/yql/yql-tables/
  • 12.
    12Running Queries –Table SyntaxYQL Command: DESC tablename
  • 13.
    Running Queries –URL Formathttp://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params]Paramsq=[QUERY]format=[XML / JSON] diagnostics=[true / false]debug=[true / false]env=[.env file link]callback=[function name]13
  • 14.
    14Running Queries –URL Formathttp://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params]Paramsq=[QUERY]
  • 15.
    format=[XML / JSON/ JSONP / JSONP-X]
  • 16.
  • 17.
  • 18.
  • 19.
    callback=[function name]15Query Aliasing– Creating Your Aliashttp://queries.yahooapis.com/v1/public/yql/[user_alias]/[query_alias]Create Your User AliasINSERT INTO yql.queries (alias) VALUES (”jcleblanc")Insert a new Query AliasINSERT INTO yql.queries.query (name, query) VALUES ("weather", ”SELECT * FROM weather.forecast WHERE location=90210")
  • 20.
    16YQL Open DataTablesWrap Your Own API or Data Source
  • 21.
    17Open Data Tables– XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings></bindings></table>
  • 22.
    18Open Data Tables– XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings></bindings></table>
  • 23.
    19Open Data Tables– XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <author>Jonathan LeBlanc</author> <description>My Table</description> <documentationURL>www.site.com</documentationURL> <sampleQuery>SELECT * FROM {table} </sampleQuery> </meta> <bindings></bindings></table>
  • 24.
    20Open Data Tables– XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings></bindings></table>
  • 25.
    21Open Data Tables– XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings><select itemPath="" produces="XML" > <urls> <urlenv="all”>http://www.site.com/{user}</url> </urls> <inputs> <key id="user" type="xs:string" paramType="path" required="true" /> </inputs> </select> </bindings></table>
  • 26.
    22Open Data Tables– Invoking a Table DefinitionThe USE clauseUSE 'http://github.com/yql/yql-tables/raw/master/google/google.buzz.updates.xml'AS buzz.updates; SELECT * FROM buzz.updatesWHERE user='nakedtechnologist'
  • 27.
    23Open Data Tables– .env Fileshttp://datatables.org/alltables.envUSE 'http://www.datatables.org/amazon/amazon.ecs.xml' AS amazon.ecs;USE 'http://www.datatables.org/bitly/bit.ly.shorten.xml' AS bit.ly.shorten;USE 'http://www.datatables.org/dopplr/dopplr.auth.xml' AS dopplr.auth;USE 'http://www.datatables.org/dopplr/dopplr.city.info.xml' AS dopplr.city.info;
  • 28.
    Google Buzz TableAvailableAt: http://github.com/yql/yql-tables
  • 29.
  • 30.
    26YQL Execute –XML File SyntaxAugment datacity / state to APIs that just return zip codeCreate APIs from web pagescelebrity birthdays scraped from IMDBData Transformationsconvert the results from xml to Google's kml formatMove business logic of your application to the cloud
  • 31.
    27YQL Execute –XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings><select itemPath="" produces="XML" > <urls></urls> <inputs></inputs> </select> </bindings></table>
  • 32.
    28YQL Execute –XML File Syntax<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta></meta> <bindings><select itemPath="" produces="XML" > <urls></urls> <inputs></inputs><execute></execute> </select> </bindings></table>
  • 33.
    Global Disaster Alertand Coordination System TableAvailable At: http://github.com/yql/yql-tables
  • 34.
  • 35.
    This Presentation http://www.slideshare.net/jcleblanc/yql-overviewYQLDocumentationhttp://developer.yahoo.com/yqlYQL Consolehttp://developer.yahoo.com/yql/consoleYQL Github Account (Contribute Tables)http://github.com/yql/yql-tables
  • 36.