ステートメントリソース

POST /v1/statement()
クエリ query:

実行するSQLクエリ

リクエストヘッダー X-Presto-User:

ステートメントを実行するユーザー(オプション)

リクエストヘッダー X-Presto-Source:

クエリのソース

リクエストヘッダー X-Presto-Catalog:

クエリを実行するカタログ

リクエストヘッダー X-Presto-Schema:

クエリを実行するスキーマ

実行のためにPrestoにステートメントを送信します。Prestoクライアントは、カタログとスキーマに対してユーザーに代わってクエリを実行します。Presto CLIでクエリを実行すると、Prestoコーディネーター上のステートメントリソースを呼び出しています。

ステートメントリソースへのリクエストは、標準のX-Presto-Catalog、X-Presto-Source、X-Presto-Schema、およびX-Presto-Userヘッダーとともに、実行するSQLクエリをポストとして含みます。

ステートメントリソースからのレスポンスには、クエリの詳細情報を収集するために使用できるクエリ識別子が含まれています。この最初のレスポンスには、Prestoワーカーでこのクエリを実行するために作成されたステージに関する情報も含まれています。すべてのクエリにはルートステージがあり、ルートステージには次の例レスポンスに示すように「0」のステージ識別子が与えられます。

このルートステージは、Prestoワーカーで実行されている他のステージからのレスポンスを集約し、Prestoコーディネーターを介してクライアントに配信します。クライアントがこのPOSTに対するレスポンスを受け取ると、「nextUri」プロパティが含まれ、クライアントはクエリから追加の結果を取得するためにこのアドレスを照会するように指示されます。

リクエスト例:

POST /v1/statement HTTP/1.1
Host: localhost:8001
X-Presto-Catalog: jmx
X-Presto-Source: presto-cli
X-Presto-Schema: jmx
User-Agent: StatementClient/0.55-SNAPSHOT
X-Presto-User: tobrie1
Content-Length: 41

select name from "java.lang:type=runtime"

レスポンス例:

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
Transfer-Encoding: chunked

{
  "id":"20140108_110629_00011_dk5x2",
  "infoUri":"http://localhost:8001/v1/query/20140108_110629_00011_dk5x2",
  "partialCancelUri":"http://10.193.207.128:8080/v1/stage/20140108_110629_00011_dk5x2.1",
  "nextUri":"http://localhost:8001/v1/statement/20140108_110629_00011_dk5x2/1",
  "columns":
  [
      {
        "name":"name",
        "type":"varchar"
      }
  ],
  "stats":
  {
     "state":"RUNNING",
     "scheduled":false,
     "nodes":1,
     "totalSplits":0,
     "queuedSplits":0,
     "runningSplits":0,
     "completedSplits":0,
     "cpuTimeMillis":0,
     "wallTimeMillis":0,
     "processedRows":0,
     "processedBytes":0,
     "rootStage":
     {
        "stageId":"0",
        "state":"SCHEDULED",
        "done":false,
        "nodes":1,
        "totalSplits":0,
        "queuedSplits":0,
        "runningSplits":0,
        "completedSplits":0,
        "cpuTimeMillis":0,
        "wallTimeMillis":0,
        "processedRows":0,
        "processedBytes":0,
        "subStages":
        [
           {
              "stageId":"1",
              "state":"SCHEDULED",
              "done":false,
              "nodes":1,
              "totalSplits":0,
              "queuedSplits":0,
              "runningSplits":0,
              "completedSplits":0,
              "cpuTimeMillis":0,
              "wallTimeMillis":0,
              "processedRows":0,
              "processedBytes":0,
              "subStages":[]
           }
        ]
     }
  }
}
GET /v1/statement/{queryId}/{token}()
クエリ queryId:

/v1/statementへの最初のPOSTから返されたクエリ識別子

クエリ token:

/v1/statementへの最初のPOST、またはこの同じ呼び出しへの以前の呼び出しから返されたトークン

Prestoクライアントが実行のためにステートメントを送信すると、Prestoはクエリを作成し、クライアントにnextUriを返します。この呼び出しは、そのnextUri呼び出しに対応しており、進行中のクエリのステータス更新を含む場合もあれば、最終結果をクライアントに配信する場合もあります。

リクエスト例:

GET /v1/statement/20140108_110629_00011_dk5x2/1 HTTP/1.1
Host: localhost:8001
User-Agent: StatementClient/0.55-SNAPSHOT

レスポンス例:

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
Vary: Accept-Encoding, User-Agent
Transfer-Encoding: chunked

383
{
  "id":"20140108_110629_00011_dk5x2",
  "infoUri":"http://localhost:8001/v1/query/20140108_110629_00011_dk5x2",
  "columns":
  [
     {
        "name":"name",
        "type":"varchar"
     }
  ],
  "data":
  [
     ["4165@domU-12-31-39-0F-CC-72"]
  ],
  "stats":
  {
     "state":"FINISHED",
     "scheduled":true,
     "nodes":1,
     "totalSplits":2,
     "queuedSplits":0,
     "runningSplits":0,
     "completedSplits":2,
     "cpuTimeMillis":1,
     "wallTimeMillis":4,
     "processedRows":1,
     "processedBytes":27,
     "rootStage":
     {
        "stageId":"1",
        "state":"FINISHED",
        "done":true,
        "nodes":1,
        "totalSplits":1,
        "queuedSplits":0,
        "runningSplits":0,
        "completedSplits":1,
        "cpuTimeMillis":0,
        "wallTimeMillis":0,
        "processedRows":1,
        "processedBytes":32,
        "subStages":
        [
            {
              "stageId":"1",
              "state":"FINISHED",
              "done":true,
              "nodes":1,
              "totalSplits":1,
              "queuedSplits":0,
              "runningSplits":0,
              "completedSplits":1,
              "cpuTimeMillis":0,
              "wallTimeMillis":4,
              "processedRows":1,
              "processedBytes":27,
              "subStages":[]
           }
        ]
     }
  }
}
DELETE /v1/statement/{queryId}/{token}()
クエリ queryId:

/v1/statementへの最初のPOSTから返されたクエリ識別子

リクエストヘッダー X-Presto-User:

ステートメントを実行するユーザー(オプション)

リクエストヘッダー X-Presto-Source:

クエリのソース

リクエストヘッダー X-Presto-Catalog:

クエリを実行するカタログ

リクエストヘッダー X-Presto-Schema:

クエリを実行するスキーマ