Oracle Big Data Spatial and Graphのこのリリースの変更点

Big Data Spatial and Graphのリリース2.4の製品には次の変更が含まれています。

リリース2.5の変更点

次の変更は、Big Data Spatial and Graphリリース2.5に適用されます。

リリース2.5でのSpark VectorのAPIの変更点

次の機能がBig Data Spatial and Graph 2.5のSpark Vector APIに追加されました。

  • 空間索引にカウント・アクションが追加されました

マルチメディア分析機能の非推奨化

Big Data Spatial and Graphのマルチメディア分析機能は、このリリースでは非推奨となり、将来のリリースでサポートされなくなる可能性があります。マルチメディア・アナリティクス機能の代替機能はありません。

マルチメディア分析機能については、現在、マルチメディア分析の使用に記載されています。

リリース2.4の変更点

次の変更は、Big Data Spatial and Graphリリース2.4に適用されます。

インメモリー・アナリスト(PGX) - 関連する変更

次の変更は、Big Data Spatial and Graphのインメモリー・アナリスト(PGX)機能に関連しています。

サイクル検出用の新しいPGX組込みアルゴリズム

インメモリー・アナリスト(PGX)のリリース2.4では、サイクルを検出するために次の2つのインメモリー・アルゴリズムが導入されています。強力なバージョンは、いくつかのDFSトラバースを実行して常にグラフ全体をスキャンし、軽量なバージョンは、タスクに対して1度だけDFSトラバースを実行します。軽量なバージョンの方が高速ですが、グラフ全体が検索されない場合があるため、一部のサイクルの検出に失敗する可能性があります。

analyst.findCycle() APIを介して新しいアルゴリズムを使用できます。

PGXでの一時的なデータ型のサポート

リリース2.4のインメモリー・アナリスト(PGX)では、SQLの5つの一時的なタイプおよび新しいJava 8の日時タイプに直接マップされる5つの一時的なデータ型のサポートによって、時間に関連するプロパティをより正確に制御できます。dateプロパティ・タイプは非推奨になり、local_date、time、timestamp、time_with_timezoneおよびtimestamp_with_timezoneに置き換えられました。次の表にまとめるように、新しいタイプはPGX APIとPGQLの両方でサポートされます。

表-1 PGXでの一時的なデータ型のサポート

PGXプロパティ・タイプ 例のプレーン・テキスト 例のPGQLリテラル PGQL ResultSet API

TIMESTAMP WITH TIMEZONE

timestamp_with_timezone

"2017-08-18 20:15:00+08"

TIMESTAMP '2017-08-18 20:15:00+08'

java.time.OffsetDateTime getTimestampWithTimezone(..)

TIMESTAMP

timestamp

"2017-08-18 20:15:00"

TIMESTAMP '2017-08-18 20:15:00'

java.time.LocalDateTime getTimestamp(..)

TIME WITH TIMEZONE

time_with_timezone

"20:15:00+08"

TIME '20:15:00+08'

java.time.OffsetTime getTimeWithTimezone(..)

TIME

time

"20:15:00"

TIME '20:15:00'

java.time.LocalTime getTime(..)

DATE

local_date

"2017-08-18"

DATE '2017-08-18'

java.time.LocalDate getDate(..)

PGX Java APIの改良

リリース2.4では、PGX Java APIにいくつかの追加および改良が加えられました。

  • セッションでプライベートに使用されるすべてのグラフの取得、および名前によるグラフの取得のためのJava APIが追加されました(PgxSession#getGraphs()PgxSession#getGraph(String))。

  • グラフに頂点/エッジ・ラベルがあるかどうかを確認するためのAPIが追加されました(PgxGraph#hasVertexLabelsPgxGraph#hasEdgeLabel)。

  • GraphConfigビルダーは、既存のGraphConfigsから値をコピーできるようになり、GraphConfigビルダーからプロパティを削除できるようになりました。(copyFrom(GraphConfig)copyBaseFrom(GraphConfig)removeVertexProperty(String)、removeEdgeProperty(String))。

  • ランダムなエッジを取得するためのAPIが追加されました(PgxGraph#getRandomEdge))。

PGQLの新機能

リリース2.4では、次を含むPGQLのいくつかの新機能が導入されています。

準備済の文

準備済の文によって、アプリケーションを問合せインジェクションから保護する方法が提供されます。また、準備済の文を使用すると、バインド値が変更されるたびに問合せを再コンパイルする必要がないため、問合せの実行が高速になります。PGQLでは、バインド変数を示すために疑問符記号(?)を使用します。バインド変数の値は、PreparedStatement APIを介して割り当てられます

方向のないエッジ問合せ

PGQLで、方向のないエッジ問合せがサポートされるようになりました。これは、方向のないグラフの問合せや、方向のあるグラフでのエッジ方向を無視した問合せに使用できます。これらの2つのユースケースを次の2つの問合せに示します。

SELECT d1.name WHERE (d1:Device) -[:connects_to]- (d2:Device), d1.name = 'LoadTransformer 2533'
SELECT m.name WHERE (n:Person) -[:follows]- (m:Person) , n.name = 'Bono'

最初の問合せは、connects_toというラベルが付けられた方向のないエッジと一致し、2番目の問合せは、'Bono'という名前の人の前または後のすべての人と一致します。

PGQLのその他の追加および改良

  • PGQLにall_different(a, b, c, ...)関数が導入されました。これは、値のセット(通常は頂点またはエッジ)がすべて互いに異なることを指定できます。

  • 文字列値の比較に対する、次より大きい、次以上、次より小さいおよび次以下がサポートされます(Java APIのフィルタ式に対しても機能します)。

  • 次の例のように、PATHパターンでの頂点に関する制約のサポートが追加されました。以前は、PATHパターンのエッジに関する制約のみがサポートされていました。次に例を示します。

    PATH connects_to_high_volt_dev := (:Device) -> (:Device WITH voltage > 35000) SELECT ...
PGXローダーの改良

リリース2.4のPGXグラフ・ローダーには次の拡張機能があります。

  • Apache Sparkローダーで、oracle.pgx.api.spark2.PgxSparkContextクラスを介してSpark 2.Xがサポートされるようになりました。oracle.pgx.api.spark1のクラスを使用すると、引き続きSpark 1.xからロードできます。

  • 2つの表形式のOracle RDBMSからのロード時に、列名を構成できるようになりました。

  • 2つの表形式で、頂点IDタイプとしてstring、integerおよびlongがサポートされるようになりました。

  • アーカイブを最初に解凍する必要がない、圧縮された(gzip)グラフ・データの直接ロードのサポートが追加されました。

PGX分散エンジンの改良

リリース2.4に含まれるインメモリー・アナリスト(PGX)の分散グラフ処理実行エンジンに、いくつかの改良が加えられました。

  • PGX.Dで、stringプロパティに対するtop-kおよびbottom-kがサポートされるようになりました。

  • NULL値に関するバグが修正されました(Oracleバグ25491165)。

  • 頂点タイプのエッジ・プロパティのサポートが追加されました。

  • クライアント/サーバーAPIでサポートされるエンドポイントが拡張されました: rename()getNeighbours()getEdges()getRandomVertex()getRandomEdge()getSource()およびgetDestination()のサポートが追加されました。

PGXの非推奨

非推奨になったものは次のとおりです。

  • oracle.pgx.apiPgxSparkContextが非推奨になりました。かわりに、oracle.pgx.api.spark1パッケージでこのクラスを使用してください。

  • RESTエンドポイント/core/graph/<graphname>/randomNodeが非推奨になりました。かわりに/core/graph/<graphname/randomEntityを呼び出してください

  • Sparkのグラフ構成フィールドskip_nodesおよびskip_edgesが非推奨になりました。かわりに、グラフ・ロード構成フィールドloading.skip_verticesおよびloading.skip_edgesを使用してください。

  • グラフ構成メソッドisSkipNodes()およびisSkipEdges()が非推奨になりました。かわりに、skipVertexLoading()およびskipEdgeLoading()メソッドを使用してください。

  • SALSAアルゴリズムalgorithms/link_prediction/salsa_deprecated.gmが非推奨になりました。かわりに、algorithms/ranking_and_walking/salsa.gmを使用してください。

  • CALLER_THREAD PoolTypeが非推奨になりました。

  • targetPoolを指定したRESTエンドポイント/core/analysis/<analysisId>が非推奨になりました。かわりに、workloadCharacteristicsフィールドを使用してください

  • パス検索フィルタ引数タイプの使用が非推奨になりました。

  • プロパティ・タイプDATEが非推奨になりました。かわりに、LOCAL_DATE、TIME、TIMESTAMP、TIME_WITH_TIMEZONEまたはTIMESTAMP_WITH_TIMEZONEを使用してください。

  • RESTエンドポイントGET /core/graph/<graphname>/queryが非推奨になりました。問合せでは/core/graph/<graphname>/queryへのPOST、およびJSONペイロードではセマンティック・オプションを使用してください

  • PGQLでは、ユーザー定義のパターン一致セマンティック(つまり、ISOMORPHISM / HOMOMORPHSIM)が非推奨になりました。homomorphismはデフォルト・セマンティックのままですが、新しい組込みPGQL関数all_different(v1, v2, ...)または非等価制約(たとえば、v1 != v2)のいずれかを使用して、isomorphismの制約を指定する必要があります。非推奨は次のとおりです。

    • メソッドPgxGraph.queryPgql(String, PatternMatchingSemantic) (かわりに、PgxGraph.queryPgql(String)を使用してください)

    • メソッドPgxSession.setPatternMatchingSemantic(..)

    • 構成フィールドpattern_matching_semantic

リリース2.4でのSpark Vector APIの変更点

次の機能がSpark Vector APIのリリース2.4に追加されました。

  • Spark Streaming APIの空間の変換

    • Filter、flatMap、nearestNeighbors

    • Java APIおよびScala API

  • 2つの空間索引を使用した空間の結合

  • Streaming APIのGeoEnrich変換

Vector REST APIの追加

次のAPIを使用できます。

  • 次の操作を使用できるVector Hadoop REST API:

    • 空間索引のリスト/作成/削除

    • 空間索引を使用したレコードの空間的フィルタ処理

    • カテゴリ化、クラスタ化、ビニング

  • 次の操作を使用できるVector Spark REST API:

    • 空間索引のリスト/作成/削除

    • 空間索引を使用したレコードの空間的フィルタ処理

SpatialViewerの変更

Big Data Spatial Image Serverは、Oracle Big Data SpatialViewer Webアプリケーションに統合されました。SpatialViewerは、豊富なUIコンポーネントのセットを提供するOracle JETを使用します。