結果を空間的にフィルタしたり、最近傍分析を行ったりするためのストリーミング・ジョブの実行
post
/spatialviewer/api/v1/spark/streaming
リクエスト
サポートされるメディア・タイプ
- application/json
問合せパラメータ
- asynchronous: boolean
trueの場合、この操作は非同期で実行されます。デフォルト値:
false
ジョブ詳細
ルート・スキーマ: StreamingJobInfo
型:
ソースの表示
object
- batchDuration(optional): number(long)
ストリーミング・データをバッチに分割する時間間隔(秒単位)。例:
15
- distance(optional): number(double)
spatialOperationがWithinDistanceの場合、距離が必要です。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。例:
1000
- geometry(optional): string
フィルタリングの場合に最近傍または問合せ領域を決定するジオメトリ。ジオメトリはGeoJSON形式である必要があります。例:
{"type":"Point", "coordinates":[2.33139, 48.86864]}
- hostname(optional): string
データを受信するために接続するホスト名。デフォルトstreamProviderFunctionClassが使用されている場合、すなわち、streamProviderFunctionClassプロパティが指定されていない場合にホスト名を指定します。例:
localhost
- jarWithNeededClasses(optional): string
カスタムstreamProviderFunctionClassやカスタムRecordInfoProviderのようなユーザー定義クラスを持つJAR名。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。例:
myjar.jar
- k(optional): integer(int32)
最近傍の数。操作がnearestNeighborsの場合は、このプロパティを指定します。例:
10
- operation(optional): string
レコードに対して実行する操作です。指定可能な値はfilterおよびnearestNeighborsです。デフォルト値はfilterです。例:
filter
- outputPath(optional): string
ジョブの出力パス。asynchronousがfalseの場合、このプロパティはオプションです。例:
/user/oracle/spatialviewer/StreamingResult
- port(optional): integer(int32)
データを受信するために接続するポート。デフォルトstreamProviderFunctionClassが使用され、つまり、streamProviderFunctionClassプロパティが指定されていない場合にポートを指定します。例:
9999
- recordInfoProviderClass(optional): string
空間情報を提供するクラス。例:
oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider
- spatialOperation(optional): string
レコードを空間的にフィルタ処理する空間操作。指定できる値は、None、AnyInteract、IsInside、WithinDistanceおよびContainsです。デフォルト値はAnyInteractです。操作がfilterの場合は、このプロパティを指定します。例:
AnyInteract
- srid(optional): integer(int32)
ジオメトリのSRID。例:
8307
- streamDataTypeClass(optional): string
JavaDStreamと同じタイプ。デフォルト値はjava.lang.Stringです。例:
java.lang.String
- streamDuration(optional): number(long)
ストリームの最大継続時間(秒)。オプションのプロパティ。例:
3600
- streamProviderFunctionClass(optional): string
org.apache.spark.streaming.api.java.JavaDStreamを返すクラス。JavaDStreamは、連続的なデータ・ストリームを表すSparkストリーミングにおける基本的な抽象化です。このクラスは、java.util.function.Function <JavaStreamingContext, JavaDStream>を実装する必要があります。適用関数のデフォルト実装は次のとおりです": "return sc.socketTextStream(host, port).map(record->{return record.toString();});例:
mypackage.MyFunction
- tolerance(optional): number(double)
空間操作を実行するときに使用される許容差を表すdouble値。例:
0.05
レスポンス
200レスポンス
要求が成功しました。レスポンスは、プロパティbatchDurationで定義されるとおり、x秒ごとに受信されます。レコードを表す行(レコード・クラスのjava toStringメソッドを使用)が各レコードに出力されます。
202レスポンス
非同期リクエストを受け入れました
ルート・スキーマ: AsyncStreamingJobResponse
型:
ソースの表示
object
- o:successCode(optional): string
成功コード。例:
SV-05014
- response(optional): string
レスポンスには、ジョブを追跡するためのリソース・マネージャWebアプリケーションのURLの場所が含まれています(Hadoopパラメータyarn.resourcemanager.webapp.addressの構成を参照してください)。例:
http://resource.manager.webapp:8088
- status(optional): string
成功またはエラー例:
success
- title(optional): string
サービスのタイトル。例:
Streaming job started.
例
次の例では、cURLを使用してRESTリソースに対するPOSTリクエストを発行することによって、ストリーミング・ジョブを実行する方法を示しています。
curl -v -X POST "http://localhost:8045/spatialviewer/api/v1/spark/streaming" -H "accept: application/json" -H "content-type: application/json" -d "{ \"operation\": \"filter\", \"hostname\": \"myhost.example.com\", \"port\": 7777, \"recordInfoProviderClass\": \"oracle.spatial.hadoop.vector.console.api.action.CSVRecordInfoProvider\", \"jarWithNeededClasses\": \"myjar.jar\", \"geometry\": \"{\\\"type\\\":\\\"Point\\\", \\\"coordinates\\\":[-122.460449, 37.743520]}\", \"srid\": 8307, \"tolerance\": 0.05, \"spatialOperation\":\"WithinDistance\", \"distance\":5000, \"batchDuration\": 15, \"streamDuration\": 60}"
レスポンス・ヘッダーの例
次に、レスポンス・ヘッダーの例を示します。
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
レスポンス本文
レスポンスは、プロパティbatchDurationで定義されるとおり、x秒ごとに受信されます。レコードを表す行(レコード・クラスのjava toStringメソッドを使用)が各レコードに出力されます。