結果を空間的にフィルタしたり、最近傍分析を行ったりするためのストリーミング・ジョブの実行

post

/spatialviewer/api/v1/spark/streaming

リクエスト

サポートされるメディア・タイプ
問合せパラメータ
本文()
ジョブ詳細
ルート・スキーマ: StreamingJobInfo
型: object
ソースの表示
  • ストリーミング・データをバッチに分割する時間間隔(秒単位)。
    例: 15
  • spatialOperationがWithinDistanceの場合、距離が必要です。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。
    例: 1000
  • フィルタリングの場合に最近傍または問合せ領域を決定するジオメトリ。ジオメトリはGeoJSON形式である必要があります。
    例: {"type":"Point", "coordinates":[2.33139, 48.86864]}
  • データを受信するために接続するホスト名。デフォルトstreamProviderFunctionClassが使用されている場合、すなわち、streamProviderFunctionClassプロパティが指定されていない場合にホスト名を指定します。
    例: localhost
  • カスタムstreamProviderFunctionClassやカスタムRecordInfoProviderのようなユーザー定義クラスを持つJAR名。このjarを使用するには、/opt/oracle/oracle-spatial-graph/spatial/web-server/spatialviewer/WEB-INF/libディレクトリに追加し、サーバーを再起動する必要があります。
    例: myjar.jar
  • 最近傍の数。操作がnearestNeighborsの場合は、このプロパティを指定します。
    例: 10
  • レコードに対して実行する操作です。指定可能な値はfilterおよびnearestNeighborsです。デフォルト値はfilterです。
    例: filter
  • ジョブの出力パス。asynchronousがfalseの場合、このプロパティはオプションです。
    例: /user/oracle/spatialviewer/StreamingResult
  • データを受信するために接続するポート。デフォルトstreamProviderFunctionClassが使用され、つまり、streamProviderFunctionClassプロパティが指定されていない場合にポートを指定します。
    例: 9999
  • 空間情報を提供するクラス。
    例: oracle.spatial.spark.vector.recordinfoprovider.GeoJsonRecordInfoProvider
  • レコードを空間的にフィルタ処理する空間操作。指定できる値は、None、AnyInteract、IsInside、WithinDistanceおよびContainsです。デフォルト値はAnyInteractです。操作がfilterの場合は、このプロパティを指定します。
    例: AnyInteract
  • ジオメトリのSRID。
    例: 8307
  • JavaDStreamと同じタイプ。デフォルト値はjava.lang.Stringです。
    例: java.lang.String
  • ストリームの最大継続時間(秒)。オプションのプロパティ。
    例: 3600
  • 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
  • 空間操作を実行するときに使用される許容差を表すdouble値。
    例: 0.05
先頭に戻る

レスポンス

200レスポンス

要求が成功しました。レスポンスは、プロパティbatchDurationで定義されるとおり、x秒ごとに受信されます。レコードを表す行(レコード・クラスのjava toStringメソッドを使用)が各レコードに出力されます。

202レスポンス

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

次の例では、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メソッドを使用)が各レコードに出力されます。

先頭に戻る