Prestoを利用する事で、TreasureDataへのクエリ発行がアドホックに使いやすくなりました。
さらにPrestogresというライブラリによるゲートウェイが整備され、postgresqlクライアントからの接続をサポートしました。
これを用いればダッシュボード機能を有するWebアプリケーションなどから、動的にクエリ発行も出来ますね。
そういった事を実現する手前、まずはどのように接続してクエリ発行ができるのか検証してみました。
コマンドラインで接続
基本のコマンドラインからの接続を試してみます。
まずは必要となるライブラリなどが入っていなければインストールしましょう。
# Postgresqlクライアントをインストール
## OSXの場合
$ brew install postgresql
## CentOSの場合
$ sudo yum install postgresql
# Rubyから利用するためにpgをインストール
## CentOSの場合には事前に sudo yum install postgresql-devel を実行しましょう
$ gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.18.1
1 gem installed
psqlコマンドを用いて、Presto PostgreSQL Gateway | Treasure Dataの接続情報に従い実行します。
700ms程度で集計が完了して結果が返ってきました。Prestoさまさまのスピードです。
$ psql -h pggw.treasuredata.com -p 5439 -U TD1 -W
Password for user TD1:
psql (9.4.0, server 9.3.5)
SSL connection (protocol: TLSv1, cipher: AES256-SHA, bits: 256, compression: off)
Type "help" for help.
TD1=> \t
Tuples only is on.
TD1=> SELECT count(1) FROM sample_datasets.nasdaq;
8807278
TD1-> \q
GUIクライアントから接続
続けてOSXからPG Commanderを利用してみましょう。
次のページによると無料枠でも割と使えるようです。
- MacOSX - Macで使えるPostgreSQL GUI client - Qiita
http://qiita.com/fukayatsu/items/0a0befefcf026de80773
解凍して出来たPG Commander.appをアプリケーションフォルダへ移動して起動します。
Presto PostgreSQL Gateway | Treasure Dataの接続情報に従い、入力しましょう。
Execute Queryボタンを押すと、次のように結果が表示されます。
但し、このソフトから発行されるクエリとの相性問題により、テーブルのプレビューは出来ません。
しかしながらselect句を発行すれば支障なく結果が見えるので、そこまで大きな問題では無さそうです。