SQLのようにWebを操作するYahoo Query Language(YQL)がInsert/Update/Deleteをサポート

2009年7月10日

米ヤフーが提供するサービスのYahoo! Query Language(YQL)は、まるでSQLのようにWebを検索できるAPIです。例えば、Flickrから猫の写真を取得したいときには、次のようなYQLになります。

SELECT * FROM flickr.photos.search WHERE text="cat"

このSQL文を次のようにしてYQLのAPIへ渡します。

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM flickr.photos.search WHERE text="Cat"

結果はJSONやXML形式で受け取ることができます。いわばYahoo!の検索エンジンをSQLっぽく操作できる方法だといえるでしょう。

YQLでWebに対してInsertする

このYQLがついにInsert/Update/Deleteをサポートし、Webへの追加、更新、削除ができるようになったと、ReadWriteWebの記事「All the Web's a Database: Yahoo Extends YQL With Insert, Update, Delete」が伝えています。

以下のサンプルは、上記の記事とYQLのマニュアルから引用したものです。例えば、Twitterにメッセージを追加するには、次のようなYQL文になります。

INSERT INTO twitter.status (status,username,password) VALUES ("Playing with INSERT, UPDATE and DELETE in YQL", "twitterusername","twitterpassword")

TwitterのAPIについては、あらかじめXML文書で定義しておき、そのうえで上記のYQLを実行すると、Twitterへのメッセージが追加されます。

bit.lyを用いてURLを圧縮するYQL文は次のようになります。

INSERT INTO bitly.shorten (login, apiKey, longUrl) VALUES ('USERNAME', 'API_KEY', 'http://yahoo.com')

UPDATE文のサンプルも見てみましょう。下記のサンプルは、Yahoo! Profilesの自分のステータスを変更します。

UPDATE social.profile.status SET status="Using YQL UPDATE" WHERE guid=me

DELETE文のサンプルは、Twitterの発言を削除する例です。

DELETE FROM twittertable WHERE tweetid="12345" and username="twitter_username" and password="twitter_password"

上記のtwittertableは、あらかじめXMLで定義されたTwitterのAPIやデータ構造の定義を指す名前です。

どのYQLをみても、まるでSQLのようです。しかしYQLはどのような用途に使えるのでしょうか?

一人で小規模なマッシュアップをするのであれば、APIを直接呼び出すようなプログラミングのほうが手っ取り早い気もします。しかしある程度のチームで、しかもスキルにばらつきがあり、それらがさまざまなマッシュアップを実現する開発を行う場合には有用かもしれません。YQLの狙いは、そうした大規模なマッシュアップを促進することにあるのでしょうか。

関連記事 on Publickey

参考記事 on the Web

このエントリーをはてなブックマークに追加
follow us in feedly

カテゴリ クラウド
タグ  Yahoo!


次の記事
「YQL: select * from internet」

前の記事
SaaSを導入しない最大の理由は価格。日米の調査結果ともに


カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig