2017-03-09 8 views
1

私は企業のクラウドインフラストラクチャのトポロジを保存するグラフを持っています。これは、オブジェクト(マシン)とエッジというリンクと呼ばれる頂点で構成されています(マシンが互いにどのようにリンクしているかを示す必要に応じて別のマシンに)。エッジのプロパティの値に基づくグラフのトラバーサル| OrientDB

create class Object extends V 

create class link extends E 

オブジェクトの頂点は、マシンの設定を保存するプロパティを示します。

create property Object.ram long 

create property Object.mem long 

create property Object.cpu_core long 

"リンク"エッジはマシンを一緒にリンクしてトポロジを形成します。マシン間のアウトバウンドエッジです。 2つのマシン間でこのエッジが作成された時刻と、最初は無限大であったendTimeを示す2つの時間ベースのプロパティstartTimeを持ちます。

create property link.startTime long 

create property link.endTime long 

create property link.l_id string 

は、私は時間tを言うことを横断しながら、プロパティをリンク(エッジ)の条件を課すそのすべての接続オブジェクトへのオブジェクト(頂点)からトラバースしたい、のstartTime < = T < = endTimeのでなければなりません。たとえばTopologyについては

(リンクをクリックしてください) 私はノードから取り除く#21ダウントラバースしたい:のstartTime> 1488965393とendTimeの< 1498965393.私はOrientDBに非常に新しいですとないリンクのエッジを使用して、すべてのエッジに0を可能なSQLコマンドを見つけることができます。

擬似クエリは、(可能ならば同様の何かを探して):

SELECT * FROM (TRAVERSE out('link') FROM #21:0 while startTime > 1488965393 and endTime < 1498965393) 

答えて

0

Iは、所望の出力を生成したクエリを形成することができた

SELECT IDフォーム((アウトトラバース) #21:0 WHILE(creationTime < = 1488965393、endTime> = 1488965393、AND @ class = 'link'))@クラス= 'オブジェクト'

関連する問題