アプリケーションプログラミングインターフェースガイド> REST API> TDVサーバーREST API> Execute API
 
Execute(実行)API
実行APIは、クエリ、プロシージャ、および複数のDSLステートメントを実行する機能を提供します。
POST/execute/query
POST/execute/procedure
POST/execute/cancel
GET/execute/nextBatch
POST/execute/DSL
POST/execute/sqlscript
POST/実行/クエリ
このAPIは、TDVサーバーに対してSQLクエリを実行するために使用されます。
パラメーター:
なし
リクエスト本文
値の例-スキーマ
{"standardSQL": true,
“query”: “string”,
“skipRows”: 0,
“maxRows”: 0
“dataServiceName”: “string”
“blocking”: true
}
standardSQL -デフォルト値はtrueです。データプレビューを実行するには、これをfalseに設定します。クエリは複合クエリ(非標準)である必要があります。
isBlocking-デフォルト値はtrueです。非同期でクエリを実行するには、これをfalseに設定します。
skipRows-この値が設定されている場合、結果を返す前に、その数の行が実行出力でスキップされます。 'skipRows'が可能な行の総数よりも大きい場合、行は返されません。デフォルト値は0です。
maxRows-この値が設定されている場合、結果には最大で「maxRows」の行数が含まれます。 'maxRows'が使用可能なデータの行の総数よりも少ない場合、残りの使用可能なデータを取得するには、「getNextBatch」への追加の呼び出しを行う必要があります。 'maxRows'が設定されていない場合、結果の行数はリクエストメモリにバインドされます。
:skipRowsとmaxRowsは、クエリの実行をブロックするために使用されます。
返されるステータスコードは次のとおりです。
206(部分的なコンテンツ)-この例外は、メモリの制約のために部分的な結果が取得された場合に発生します。結果はエンティティに設定されます。
409(競合)-この例外は、リクエストが完全に消費される前にキャンセルされた場合に発生します。
406(受け入れられません)-この例外は、入力リクエストIDがブロッキングリクエストを表す場合に発生します。
500(内部サーバーエラー)または400(不正なリクエスト)-これは、リクエストが失敗した場合に発生します。
200(OK)-maxRowsが設定され、結果で使用可能な行の数よりも大きい場合、使用可能なすべての行がこのステータスコードで返されます。
クエリを実行してSQLスクリプトプロシージャのプロパティを取得する例
curl -u "admin:admin" -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d "{\"query\":\"SELECT * FROM model.ALL_RESOURCE_PROPERTIES WHERE property_name = 'script' AND metadata_id = (SELECT PROCEDURE_ID FROM model.ALL_PROCEDURES WHERE PROCEDURE_NAME = 'ctasScript' AND parent_path = '/shared/examples')\", \"standardSQL\":true}"
「商品」を検索する例
curl -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d '{\"standardSQL\":false, \"query\":\"select * from /lib/resource/\"Search\"('product',null,null,null,null,null,null,null)\", \"blocking\":false}'
「product」を検索し、「column」と「parameter」のフィールドタイプをフィルタリングし、「table」と「procedure」のリソースタイプをフィルタリングする例
curl -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d '{\"standardSQL\":false, \"query\":\"select * from /lib/resource/\"Search\"('product','column,parameter','table,procedure',null,null,null,null,null)\", \"blocking\":false}'
「product」を検索し、「annotation」フィールドタイプをフィルタリングし、検索の開始を{、検索の停止を}としてマークする例
curl -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d '{\"standardSQL\":false, \"query\":\"select * from /lib/resource/\"Search\"('product','annotation',null,'StartSel:<,StopSel:>',null,null,null,null)\", \"blocking\":false}'
「製品」を検索してデータフローを報告する例
curl -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d '{\"standardSQL\":false, \"query\":\"select * from /lib/resource/\"Search\"('product',null,null,null,1,null,null,null)\", \"blocking\":false}'
「product」を検索する例、「column」フィールドと「parameter」フィールドにfieldRanksを割り当て、rowOffsetを10に設定して、結果の10行をスキップし、rowLimitを結果の30行に設定します。
curl -X POST "http://localhost:9400/rest/execute/v1/actions/query/invoke" -H "Content-Type:application/json" -d '{\"standardSQL\":false, \"query\":\"select * from /lib/resource/\"Search\"('product',null,null,null,null,'column:3,parameter:3',10,30)\", \"blocking\":false}'
POST/実行/手順
このAPIは、パス/タイプで指定されたプロシージャを実行するために使用されます。
パラメーター:
なし
リクエスト本文
値の例-スキーマ
[
"includeMetadata": true,
“parameterBeanList”: [
{
“definition”: “string”,
“value”: “string”
}
],
“path”: “string”,
“type”: “string”,
“blocking”: true
]
プロシージャ「/shared/examples/LookupProduct」を実行する例
curl -X POST -u admin:admin "http://localhost:9400/rest/execute/v1/actions/procedure/invoke" -H "Content-Type:application/json" -d "{\"blocking\":\"true\",\"includeMetadata\":\"true\", \"parameterBeanList\":[{\"definition\":\"INTEGER\", \"value\":\"1\"}],\"path\":\"/shared/examples/LookupProduct\", \"type\":\"PROCEDURE\"}"
POST/実行/キャンセル
このAPIは、指定された実行IDを持つ非同期/同期SQLリクエストをキャンセルするために使用されます。手続きのリクエストはキャンセルできません。h
パラメーター:
なし
リクエスト本文
値の例-スキーマ
[
"string"
]
リクエストをキャンセルする例
curl -X POST "http://localhost:9400/rest/execute/v1/actions/cancel/invoke" -H "Content-Type: application/json" -d "[\"400014-0\"]"
GET/execute/nextBatch
このAPIは、データの次のバッチを取得するために使用されます。非同期SQLリクエストの実行IDのみを指定できます。バッチサイズが指定されていない場合、デフォルトでサーバー構成 'defaultFetchRows'になります。返されるさまざまなステータスコードは次のとおりです。
206(部分的なコンテンツ)-この例外は、メモリの制約のために部分的な結果が取得された場合に発生します。結果はエンティティに設定されます。
409(競合)-この例外は、リクエストが完全に消費される前にキャンセルされた場合に発生します。
406(受け入れられません)-この例外は、入力リクエストIDがブロッキングリクエストを表す場合に発生します。
500(内部サーバーエラー)または400(不正なリクエスト)-これは、リクエストが失敗した場合に発生します。
200(OK)-このステータスコードは、エラーが発生していないことを示します。以下にいくつかのシナリオを示します。
batchSizeが結果の使用可能な行数よりも大きい場合、使用可能なすべての行がこのステータスコードで返されます。
結果が完全に消費されると、このステータスコードとともに空の結果セットが返されます。
指定されたリクエストIDのリクエストが見つからない場合、このステータスコードとともに空の結果セットが返されます。
パラメーター:
名前
説明
パラメータータイプ
executionId
executionId
string
batchSize
フェッチするバッチサイズ。 'batchSize'が設定されていない場合、サーバー構成 'defaultFetchRows'で設定された値が使用されます。
integer
データの次のバッチを取得する例
curl -X GET -u admin:admin "http://localhost:9400/rest/execute/v1/actions/nextBatch/invoke?executionId=400014-0&batchSize=5" -H "Content-Type:application/json"
POST/実行/DSL
このAPIは、指定されたDSLステートメントのリストを実行するために使用されます。
パラメーター:
なし
リクエスト本文
値の例-スキーマ
[
"string"
]
SQLスクリプトプロシージャを削除し、2つのDSLステートメントを使用して作成する例
curl -d "[\"CREATE SCRIPT /shared/examples/ctasScript DEFINE AS PROCEDURE ctasScript() BEGIN CREATE TABLE /shared/examples/ds_inventory/tutorial/sampleTable as select OrderId, ProductID, Discount, OrderDate, CompanyName, CustomerContactFirstName, CustomerContactLastName, CustomerContactPhone FROM /shared/examples/ViewOrder; END\",\"DROP SCRIPT /shared/examples/ctasScript\"]" -u "admin:admin" -X POST "http://localhost:9400/rest/execute/v1/actions/dsl/invoke" -H "Content-Type:application/json"
POST/execute/sqlscript
このAPIは、scriptTextで指定されたプロシージャを実行するために使用されます。
パラメーター:
なし
リクエスト本文
値の例-スキーマ
[
"includeMetadata": true,
“parameterBeanList”: [
{
“definition”: “string”,
“value”: “string”
}
],
“scriptText”: “string”,
“blocking”: true
]
スクリプトテキストを使用してプロシージャを実行する例
curl -X POST -u admin:admin "http://localhost:9400/rest/execute/v1/actions/sqlscript/invoke" -H "Content-Type:application/json" -d "{\"blocking\":\"true\",\"includeMetadata\":\"true\", \"parameterBeanList\":[{\"definition\":\"INTEGER\", \"value\":\"1\"}],\"scriptText\":\"PROCEDURE LookupProduct(IN desiredProduct INTEGER,OUT result CURSOR (ProductName VARCHAR(50),ProductID INTEGER,ProductDescription VARCHAR(255))) BEGIN OPEN result FOR SELECT products.ProductName, products.ProductID, products.ProductDescription FROM /shared/examples/ds_inventory/tutorial/products products WHERE products.ProductID = desiredProduct; END\"}"