TigerGraphについて

TigerGraphはグラフデータベース進化の次のステップをお届けします。ウェブ規模のデータをリアルタイムで分析できる世界初のシステムです。当社のNative Parallel Graph™ (NPG)は、保管と演算の両方に重点を置いて設計されており、リアルタイムでグラフが更新できるほか、並列計算機能が組み込まれています。当社固有のグラフクエリ言語GSQL は、SQLのように使うことができ、ビッグデータのアドホック探索やインタラクション解析に使うこともできます。豊かな表現が可能なGSQLとすばやいNPGを組み合わせることによって、従来、経路が複雑で到達できなかったり、適切に表現することが難しかった接続が明らかになり、ディープリンク分析が可能になります。

新規開発

TigerGraphのコアシステムは、C++ とシステムプログラム概念を使用してゼロから新規開発されたもので、統合されたデータテクノロジースタックが構築されています。ネイティブなグラフ蓄積エンジン(GSE)は、グラフ処理エンジンと隣接させて、データとアルゴリズム処理を迅速で効率良く実行できるように開発されています。グラフ処理エンジンには、並列計算機能が備わっており、API を介して利用できるMapReduceに基づいた計算モデルに対応しています。DB グラフはディスクとメモリの両方に格納されるので、システム処理はディスク、メモリ、CPUキャッシュなどデータの保管場所に適応して最適化されます。

TigerGraphの使用事例

優秀なデータ圧縮率

TigerGraphシステムは効率的なデータ圧縮を行い、メモリとCPUキャッシュを活用します。圧縮率(圧縮後のデータが元のデータのどのくらいの情報量に減ったかを表す割合)は、データと構造によって異なりますが、10倍の圧縮率が目安です。たとえば、1TBのインプットデータをグラフに変換して読み込んだ場合、システムメモリは100GBしか必要ありません。

このように優秀な圧縮機能は、メモリの負荷を軽減するだけでなく、キャッシュのエラーも削減して全体的なクエリパフォーマンスを向上します。

MPP 計算モデル

TigerGraphでは、グラフの各頂点と各エッジが、1つの並列ユニットとして保管と計算に同時に使われます。

このアプローチによって、グラフは静的なデータ保管庫の集合ではなくなり、膨大な並列計算エンジン(MPP)になります。頂点は、他の頂点にエッジを介してメッセージを送受信することができ、頂点やエッジは、任意の情報をいくらでも保管できます。TigerGraphシステムは、マルチコアCPUのマシンやインメモリーコンピューティングを活用して、個々の頂点とエッジのすべてを参照して、並列計算を実行します。

並列計算エンジンとなるTigerGraphのグラフ

自動分割

分散システムでは、なんらかの方法でデータを複数のサーバーに分配しなければなりません。TigerGraphはデータの分割を自動的に行うので、分割プログラムを書く手間やプログラミングのもろさを避けることができます。そもそも分散グラフとして構築されているTigerGraphは、高性能が発揮できるようにデータを均等に分配するので、クラスターを拡張したり縮小したりするニーズが生じた場合、クラスター拡張、縮小機能が自動的にデータを再分配します。手動の分配方法を選択する必要はまったくありません。

変換技術

TigerGraphのNative Parallel Graphが提供する変換技術は、現在市場にある知名度の高いグラフデータベースソリューションの大半に比べて、はるかに有利な点があります。

現在の業界最大手のソリューションは、グラフデータベースの機能や文書化は充実しているものの、TigerGraph に比べると処理速度がかなり劣っています。ベンチマーキングテストでは、TigerGraph が1時間で読み込めたバッチデータを某ソリューションが読み込むのに丸1日、24時間かかりました。

さらに、並列計算機能を大規模なグラフ分析に適用できるTigerGraphは、超大規模グラフ(VLG)のためのグラフ並列アルゴリズムに対応しています。これは、技術的に大きな優位点であり、グラフの容量が必然的に拡大するに従って重要となる利点です。グラフの一部分としか接触しないような制限のある高速なクエリから、数百万の頂点やエッジに及ぶクエリまで、グラフ内のすべての頂点を考慮に入れなければならない複雑な分析にも十分に機能します。その上、リアルタイムでグラフデータを追加して更新できるので、リアルタイムのグラフ分析に適しており、これは他のソリューションと差別化できる要因です。

TigerGraphの優位性は、グラフを計算モデルとして捉えているところにあります。計算機能をグラフ内の各頂点とエッジと関連させることが可能で、頂点とエッジが並列計算保管要素に変換されて計算に活用されます。この動作は、人の頭脳でニューロンの働きに見られるものと同じです。

グラフ内の頂点は、エッジを介してメッセージを送受信できるので、巨大な規模の並列計算が迅速に実行されます。TigerGraphのNative Parallel Graphは、従来のモデルにはなかった、全く新しい計算のパラダイムを提供して、真の変換技術となる資質を備えています。

次の例について考えてみましょう。一般開業医のダグラス・トマス博士が、心臓治療において3人の外科医(ヘレン・スー医師、リック・サマーズ医師、ゼーン・アダムス医師)と2人の心臓専門医(ヘンリー・チャン医師とニール・パテル医師)への紹介を多く行っています。ドン・カーク医師はこの地域の別の医師で、2人の外科医(ヘレン・スー医師とリック・サマーズ医師)と1人の心臓専門医(ラリー・コ医師)への紹介を多く行っています。

グラフアルゴリズムPageRankは、医師ごとの一意のランキングを作成します。これが完成すると、PageRankスコアが3.9のダグラス・トマス医師が最も影響力のある医師であることがわかります。そしてドン・カーク医師は、PageRankが2.5で、2番目に影響力のある医師であり、それ以外の医師についても同様に見ていくことができます。