Apache TinkerPop™グラフ・コンピューティング・フレームワーク
Apache TinkerPopフレームワークについて説明します。
Apache TinkerPop™はグラフの抽象化層で、さまざまなグラフ・データベースやグラフ・プロセッサーで機能します。TinkerPopは、構造APIとプロセスAPIという2つの要素で構成されます。
TinkerPop構造APIの主なコンポーネントは、次のとおりです。
- Graph
- 一連の頂点とエッジを保持する。
- Vertex
- 一般クラスElementを拡張し、一連の内向きエッジと外向きエッジのほかにプロパティの集合と頂点タイプを保持する。DSE Graphスキーマは、VertexLabel – ID、name、Time-To-Live(TTL)を格納する。
- Edge
- Elementを拡張し、内向き頂点と外向き頂点のほかにプロパティの集合とエッジ・タイプを保持する。DSE Graphスキーマは、EdgeLabel – ID、name、TTL、multiplicity(multi、simple)、unidirected、visible、sort-keyを格納する。
- Property
- 値と関連付けられた文字列キー。DSE Graphスキーマは、PropertyKey – ID、name、TTL、datatype、cardinality(single、list)を格納する。
- VertexProperty
- 値およびメタデータ・プロパティの集合に関連付けられた文字列キー(頂点のみ)。
TinkerPopプロセスAPIの主なコンポーネントは、次のとおりです。
- TraversalSource
- 特定のグラフ、ドメイン固有言語(DSL)、および実行エンジン探索のジェネレーター。
- Traversal<S,E>
S
型のオブジェクトをE
型のオブジェクトに変換する機能的なデータ・フロー・プロセス。
- GraphTraversal
- 生のグラフのセマンティクス(頂点、エッジなど)指向の探索ドメイン固有言語(DSL)。
- GraphComputer
- グラフを並行処理し、複数マシンのクラスターに分散させる可能性があるシステム。
- VertexProgram
- メッセージを渡して行う相互通信で、すべての頂点で論理的に同じ方法で実行されるコード。
- MapReduce
- グラフ内のすべての頂点を同時に分析し、1つの結果を出す計算。
TinkerPopの重要な特長は、グラフ探索言語兼仮想マシンであるGremlinです。TinkerPopとGremlinのグラフ・データベースに対する関係は、JDBCとSQLのリレーショナル・データベースに対する関係と同じです。Gremlinバリアントは多くの言語、Java、Groovy、Pythonなど。