象と戯れ

 | 

2010-11-30

SQL/MED -> Twitter table??

03:06 | SQL/MED -> Twitter table?? - 象と戯れ を含むブックマーク はてなブックマーク - SQL/MED -> Twitter table?? - 象と戯れ

SQL/MEDの可能性を探るべく、こんなクエリを書いてみました。

SELECT from_user, substr(text, 1, 20), age(current_timestamp, created_at) FROM twitter_search;
    from_user    |        substr        |      age       
-----------------+----------------------+----------------
 anndreilla      | Grab @Scrambleface l | 09:02:19.76668
 tebow904        | @sinner_saved_ u ret | 09:02:30.76668
 iphomania_de    | Cydia-Tweak: Pull to | 09:02:31.76668
 developerworks  | The #Social #Network | 09:02:34.76668
 appstorewire    | AppAdvice: Project:  | 09:02:42.76668
 appstorewire    | AppAdvice: Project:  | 09:02:42.76668
 appstorewire    | AppAdvice: A Chance  | 09:02:42.76668
 appstorewire    | AppAdvice: A Chance  | 09:02:42.76668
 appstorewire    | AppAdvice: Infinity  | 09:02:43.76668
 appstorewire    | AppAdvice: Infinity  | 09:02:43.76668
 ChrisCompo      | RT @thedroidguy: #iP | 09:02:46.76668
 DhilipSiva_Aple | #ipad #mac #iphone i | 09:02:48.76668
 brandnewapps    | New iPmart app: iNet | 09:02:48.76668
 brandnewapps    | New iPmart app: A Ne | 09:02:49.76668
 muenchner_kindl | Hard Rock Mobile     | 09:02:59.76668
(15 rows)

現在開発が進むMEDに自作したtwitter_fdwというモジュールを追加すると、Twitterの検索APIからリアルタイム検索の結果を取得して、テーブルの形で返してくれます。from_userが発信者、textが140文字以内の本文、created_atは発言時刻です。他にもto_userとかprofile_image_urlとかが取得できます。

まだ#iphoneの検索結果を返す固定の結果ですが、WHERE句にq='#postgresql'とか書けるようになるのも時間の問題です。内部はcurlのeasyAPIを使っているのですが、OAuth対応モジュールをがりがり書いてCREATE SERVER構文のOPTIONS句でユーザidを指定してやれば個人のタイムラインを返すのも可能です。

書いてみて、やっぱりSQLに統合されるというのは使い勝手がかなり良さそうだと思いました。関数を通したり集計したり、場合によってはJOINも気軽にできるので、これは可能性が広がりそうです。

WHERE句書いて整理したらhackersにポストしようかと思っているのですが、何分FDWのコアの仕様が二点三点しそうなのでちょっと様子見。とはいえこれとCREATE EXTENSIONの両方が入ると9.1はかなり大きな1歩を踏み出すことになりそうです。

textsearch_groongaもMEDがあるといろんな使い方ができそうですし。

 |