# REST API * see https://gist.github.com/electrum/7710544 * クエリを投げるのは例えば以下のように。クエリの最後に ; (セミコロン)をつけるとダメのようだ。 ```` curl -H "X-Presto-Schema:default" -H "X-Presto-Catalog:hive" -H "X-Presto-User:bob" -d "select count(*) from users" http://presto-coordinator:8080/v1/statement ```` * 以下の手順で使うことになる 1. クエリを /v1/statement に POST する 2. レスポンスの nextUri を見る。終わっていればここに結果が入る。 3. 2.のレスポンスの nextUri を見る。これをやると 1. の nextUri は見れなくなる。 * http://www.slideshare.net/taroleo/presto-as-a-service-at-treasure-data これの 13 ページあたりにも書いてある。 * どのような API があるか、は、ソースコードを "@Path" で grep すればわかる ## REST API 一覧("@Path" で検索した結果) | name | method | 内容 | |---|---|---| | /v1/execute | POST | クエリの実行 | | /v1/node | GET | ノード一覧 | | /v1/node/failed | GET | コケてるノード一覧? | | /v1/query-execution/{queryId} |GET | クエリの実行状況 | | /ui/query-execution?{queryId} |GET | これはブラウザで見る用のクエリ実行状況。緑ノードが実行中、青ノードが完了。かっこいいけど微妙かもしれぬ。| | /v1/query | GET | 実行したクエリの一覧。何件まで出してるかわからん。 | | /v1/query/{queryId} | GET | クエリの情報取得 | | /v1/query | POST | クエリの実行 | | /v1/query/{queryId} | DELETE | クエリのキャンセル | | /v1/query/stage/{stageId} | DELETE | ステージのキャンセル。ステージは1つ以上のタスクを持つ。また、ステージは0個以上のステージを持つ。ステージの親玉は outputStage であり、これはクエリと 1:1 対応である。 | | /v1/stage/{stageId} | DELETE | ステージのキャンセル | | /v1/statement | POST | クエリの実行 | | /v1/statement/{queryId}/{token} | GET | クエリの実行状況 | | /v1/statement/{queryId}/{token} | DELETE | クエリのキャンセル | | /v1/task | GET | 全タスク情報取得。タスクとは、実際に各 worker が処理する単位である。 | | /v1/task/{taskId} | POST | タスク生成? | | /v1/task/{taskId} | GET | タスク情報取得 | | /v1/task/{taskId} | DELETE | タスクのキャンセル | | /v1/task/{taskId}/results/{outputId}/{token} | GET | タスクの結果確認? | | /v1/task/{taskId}/results/{outputId} | DELETE | タスクの削除?中断? | | /v1/thread | GET | 動いているスレッドの状況。 | | /ui/thread | GET | 動いているスレッドの状況を可視化したもの | | /v1/jmx/mbean | GET | JMX の MBean の値全部。よって、かなりでかいレスポンス。これは Presto そのものではなく、 airlift で実装しているもの(jmx-http/src/main/java/io/airlift/jmx/MBeanResource.java) | /v1/service/presto | GET | ノード情報。/v1/node よりわかりやすい |