25. März 2009 Yahoo! Query Language

in Kategorie Allgemeines

Tags: , , , ,


Die Yahoo! Query Language ist eine REST-API von Yahoo!, mit der sich Daten aus anderen Quellen (APIs, Feeds, HTML, Json, Microformats, etc.) in einer SQL-ähnlichen Syntax abfragen und verarbeiten lassen. Dieses Konzept ist sehr interessant, da sich die meisten Entwickler durch die bekannte Syntax schnell zurechtfinden können und zudem lassen sich so auch komplizierte Verknüpfungen von verschiedenen Datenquellen einfach und schnell realisieren.

Die YQL wird nur über die API von Yahoo! bedient. Sämtliche Verarbeitungsvorgänge finden damit auf den Servern von Yahoo! statt. Um die API nutzen zu können benötigt man einen Key, der mit Hilfe eines Yahoo!-Accounts zu bekommen ist. Ich würde mir wünschen, dass die YQL zusätzlich als OpenSource zur Verfügung gestellt wird, um zum einen die Limits der Yahoo! API umgehen zu können und zum anderen die YQL selbst erweitern zu können. Leider sieht es aber nicht danach aus, dass dies in nächster Zeit geschehen könnte.

Aber nun zum eigentlichen Umgang mit der YQL. Yahoo! bietet für den interessierten Entwickler eine sehr nützliche Umgebung an, um Queries direkt im Browser testen zu können, die YQL Console. Dort finden sich auch einige Beispiele, die bei einfachen Queries an Flickr beginnen (hier um 10 Katzenfotos zu erhalten)…

SELECT * FROM flickr.photos.search 
WHERE text="Cat" LIMIT 10

…aber auch komplizierte Queries mit XPath zeigen:

SELECT * FROM html 
WHERE url="http://finance.yahoo.com/q?s=yhoo" 
AND xpath='//div[@id="yfi_headlines"]/div[2]/ul/li/a'

Diese Abfrage liefert im übrigen die aktuellen Headlines zu Yahoo! aus Yahoo! Finance. XPath sollte man hierbei nicht unterschätzen, damit können auch komplexe Filter formuliert werden. Natürlich ist die YQL nicht (zumindest im moment nicht) so mächtig wie SQL, beispielsweise gibt es keine JOINs. Die einzige möglichkeit zwei Datenquellen miteinander zu Verknüpfen besteht im moment darin Sub-Selects mit WHERE … IN (SELECT …) zu konstruieren.

Seit kurzem können zudem eigene APIs mit den sog. »Open Data Tables« verwendet werden. Dies sind XML-Dateien in denen die einzelnen Methoden, Parameter und Rückgabewerte der API beschrieben werden. Die Open Data Table lässt sich dann mittels USE laden:

USE "http://myserver.com/mytables.xml" AS mytable;
SELECT * FROM mytable WHERE...

Fazit

Leider ist die YQL nicht OpenSource und man macht sich von einem weiteren Dienst abhängig, möchte man diese verwenden, dennoch ist die Idee sehr spannend. Die Arbeit mit APIs wird damit wesentlich beschleunigt und mit der Yahoo! Console erhält der Entwickler ein praktisches Werkzeug um direkt vorab seine Queries zu testen.

Ähnliche Artikel


Der Beitrag wurde am Mittwoch, den 25. März 2009 um 21:11 Uhr veröffentlicht und wurde unter Allgemeines abgelegt. du kannst die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Kommentare

  1. Am 22. Juli 2009 um 10:43 Uhr
    Jörg gravatar

    Einerseits müssen die bei Yahoo natürlich auch sehen wo sie bleiben, aber ich finde auch, dass man so etwas schon als OpenSource anbieten könnte. Vielleicht gäbe das Yahoo auch mal wieder einen kleinen Imagepush, von dem sie dann wiederum noch besser profitieren könnten, als von so einem zwar guten, aber doch regulierten Angebot. Bin wirklich mal gespannt, was in naher Zukunft noch aus Yahoo wieder werden kann. In der letzten Zeit waren die ja doch eher auf dem absteigenden Ast.

Einen Kommentar schreiben