Edited at

Prestogresを用いてGUIアプリからPrestoへアドホッククエリを発行する方法

More than 3 years have passed since last update.

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を利用してみましょう。

次のページによると無料枠でも割と使えるようです。

まずは左側に囲ったボタンからダウンロードしましょう。

pgcommander-web.png

解凍して出来たPG Commander.appをアプリケーションフォルダへ移動して起動します。

Presto PostgreSQL Gateway | Treasure Dataの接続情報に従い、入力しましょう。

pgcommander-start.png

2回目からはこのようにショートカットが出来ます。

pgcommander-welcome.png

データベースやテーブルの一覧もこのように見えます。

pgcommander-dbs.png

SQL Terminalより、クエリを実行してみましょう。

pgcommander-sql-terminal.png

Execute Queryボタンを押すと、次のように結果が表示されます。

pgcommander-sql-result.png

但し、このソフトから発行されるクエリとの相性問題により、テーブルのプレビューは出来ません。

しかしながらselect句を発行すれば支障なく結果が見えるので、そこまで大きな問題では無さそうです。

pgcommander-error.png