SQL問合せを発行して結果を返す

post

/spatialviewer/api/v1/spark/sqlQuery

SQL問合せをSparkに発行して結果を返します。

リクエスト

サポートされるメディア・タイプ
問合せパラメータ
  • trueの場合、ジオメトリを除くすべての出力列が二重引用符で囲まれます。
    デフォルト値: false
  • 分析の名前。outputAsAnalysisがtrueに設定されている場合、このパラメータは必須です
  • trueの場合、この操作は非同期で実行されます。
    デフォルト値: false
  • falseの場合、非同期の場合、レスポンスにはHDFS内の結果の場所が含まれ、実際の結果は含まれません。
    デフォルト値: true
  • trueの場合、索引はSpatialViewer UIの分析結果に追加されます
    デフォルト値: false
  • trueの場合、マップ上に結果を表示するためにMap APIのデータ・ソースとして使用できる、GeoJSONとしてサービスからレスポンスが返されます。ジオメトリは、geometryという名前のフィールドに戻される必要があります。例: SELECT geometry, friends_count...
    デフォルト値: false
本文()
SQL問合せの詳細
ルート・スキーマ: SQLQueryInfo
型: object
ソースの表示
  • カスタムRecordInfoProviderまたはInputFormatのようなユーザー定義クラスを持つJAR名。InputFormatクラスまたはRecordInfoProviderクラスがAPI、またはHadoop APIクラスにない場合、ユーザー定義クラスのJARが提供されます。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。useIndexがfalseの場合に設定可能なオプションのプロパティ。
    例: myjar.jar
  • ジョブの出力パス。asynchronousがtrueの場合は、このプロパティを指定します。
    例: /user/oracle/spatialviewer/SQLQueryResult
  • SQL問合せ。
    例: SELECT geometry, friends_count, location, followers_count FROM tweets WHERE ST_Contains( ST_Polygon('{"type": "Polygon","coordinates": [[[-106, 25], [-106, 30], [-104, 30], [-104, 25], [-106, 25]]]}', 8307) , ST_Point(geometry, 8307) , 0.05) and followers_count > 50
  • 二重引用符で囲まれる出力列の索引。索引はカンマで区切られています。最初の索引は0です。
    例: 2,3
  • tables
ネストされたスキーマ: tables
型: array
ソースの表示
ネストされたスキーマ: Table
型: object
ソースの表示
ネストされたスキーマ: columnNames
型: array
表の列に含めるRecordInfoProviderの追加フィールド。列ジオメトリは常に最初の列であり、GeoJSON形式のジオメトリが含まれています。
ソースの表示
  • 例: friends_count location followers_count
例:
[
    "friends_count",
    "location",
    "followers_count"
]
先頭に戻る

レスポンス

サポートされるメディア・タイプ

200レスポンス

要求が成功しました。fullResultがfalseの場合、レスポンスには、HDFS内の結果の場所が含まれています。
本文()
ルート・スキーマ: SparkSQLRecordsInfo
型: object
ソースの表示
ネストされたスキーマ: items
型: array
ソースの表示
ネストされたスキーマ: SparkSQLRecordExample
型: object
ソースの表示
ネストされたスキーマ: geometry
型: object
例:
{
    "type":"Point",
    "coordinates":[
        -3.6853,
        40.40197
    ]
}

202レスポンス

非同期リクエストを受け入れました
本文()
ルート・スキーマ: AsyncSparkSQLJobResponse
型: object
ソースの表示
先頭に戻る

次の例では、cURLを使用してRESTリソースに対するPOSTリクエストを発行することによって、Spark SQL問合せを実行する方法を示しています。

curl -v -X POST "http://localhost:8045/spatialviewer/api/v1/spark/sqlQuery?fullResult=true" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"query\": \"SELECT geometry, friends_count, location, followers_count FROM tweets WHERE ST_Contains( ST_Polygon('{\\\"type\\\": \\\"Polygon\\\",\\\"coordinates\\\": [[[-106, 25], [-106, 30], [-104, 30], [-104, 25], [-106, 25]]]}', 8307) , ST_Point(geometry, 8307) , 0.05) and followers_count > 50\",  \"stringTypeColumns\": \"2,3\",  \"tables\": [    {      \"name\": \"tweets\",      \"columnNames\": [        \"friends_count\",        \"location\",        \"followers_count\"      ],      \"srid\": 8307,      \"dataPath\": \"/user/oracle/tweets.json\",      \"inputFormatClass\": \"oracle.spatial.hadoop.vector.geojson.mapred.GeoJsonInputFormat\",      \"keyClass\": \"org.apache.hadoop.io.LongWritable\",      \"valueClass\": \"org.apache.hadoop.io.Text\",      \"recordInfoProviderClass\": \"oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider\"    }  ]}" 

レスポンス・ヘッダーの例

次に、レスポンス・ヘッダーの例を示します。

HTTP/1.1 200 OK Date: Wed, 15 Nov 2017 17:50:38 GMT Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, DELETE, PUT Access-Control-Allow-Headers: Content-Type, Accept Transfer-Encoding: chunked  Content-Type: application/json

レスポンス本文の例

次の例は、レスポンス本文の内容をJSON形式で示したものです(1つのレコードを含みます)。

{"items":[{"geometry":{"type":"Point","coordinates":[-104.41002,29.5404]},"friends_count":72,"location":"Chihuahua","followers_count":"94"}]} 
先頭に戻る