内部アーキテクチャー
世界初にして唯一のネイティブパラレルグラフ(NPG)システムであるTigerGraphは、リアルタイムでWebスケールのデータ分析をサポートする完全な分散型グラフ分析プラットフォームです。TigerGraph NPGは、ローカルのストレージと計算を中心として構築されており、リアルタイムのグラフ更新をサポートし、並列計算エンジンのように機能します。 これらの機能には、次のユニークなメリットがあります。
-
グラフ作成のための高速データロード - マシン1台ごと、1時間当たり50〜150GBのデータロードが可能
-
並列グラフアルゴリズムの高速実行 - マシン1台ごと、1秒当たり数億の頂点/エッジのトラバースが可能
-
RESTを利用したリアルタイムの更新と追加 - わずか20台のコモディティマシンのクラスターで、1,000億以上の頂点と6,000億以上のエッジを持つグラフに、リアルタイムで20億以上のデイリーイベントをストリーミング可能
-
リアルタイム分析と大規模なオフラインデータ処理と統合 - 世界初にして唯一のシステムです
TigerGraphのシステムに関するホワイトペーパーやその他のテクニカルレポートは、メインWebサイト www.tigergraph.co.jp の リソース セクションでご覧いただけます。
システム概要
TigerGraphプラットフォームは、標準のコモディティグレードのLinuxサーバーで動作します。コアコンポーネント(GSEおよびGPE)は、最適なパフォーマンスを実現するためにC++で実装されています。TigerGraphのシステムは、最小限の手間でお使いの環境に適合するように設計されています。
-
データソース: プラットフォームには、フレキシブルで高性能なデータローダーを備えており、システムがオンラインのときに表形式または半構造化データをストリーミングできます。
-
インフラストラクチャー: プラットフォームは、オンプレミス、クラウド、またはハイブリッドで使用できます。
-
統合: TigerGraphを既存のエンタープライズデータインフラストラクチャーおよびワークフローと統合できるよう、REST APIが提供されています。
次の図で、TigerGraphプラットフォームについて詳しく見ていきましょう。
TigerGraphのシステムは、メッセージパッシングデザインを使用し、コンポーネントのアクティビティを調整します。強化されたRESTfulサーバーであるRESTPPが、タスク管理の中心となります。以下の通り、システムとの対話方法の選択が可能です。
-
GSQLクライアント - 1つのTigerGraphインスタンスは、リモートノードで複数のGSQLクライアントをサポートできます。
-
GraphStudio - 基本的なGSQL機能のほとんどが使用できる、視覚的・直感的なグラフィカルユーザーインターフェイスです。
-
RESTAPI - 同じクエリーを多数回実行する必要があるエンタープライズアプリケーションは、RESTPPと直接通信することにより、効率を最大限に高めることができます。
-
gAdminはシステム管理に使用されます。
用語集
名称 | 説明 |
---|---|
DDL |
DDL(Data Definition Language、データ定義言語)は、データベーススキーマの定義に使用される一連のコマンドの総称です。GSQL言語にはDDLコマンドが含まれます。GraphStudioで、スキーマ定義機能を持ちます。 |
ディクショナリー(DICT) |
カタログ(グラフスキーマ、読み込みジョブ、クエリー)など、グラフストアの設定と状態に関してのメタデータを格納するための共有ストレージスペース。 |
DML |
DML(Data Manipulation Language、データ操作言語)はデータベースのデータの追加、変更、削除に使用される一連のコマンドの総称です。クエリーコマンドはDMLの一部と考えられることが多く、純粋なクエリーステートメントもデータを操作(変更)しません。GSQL言語には、クエリー、追加(挿入)、削除、および変更(更新)コマンドの完全なDML機能が含まれます。 |
gadmin |
TigerGraphシステムの設定・管理のためのシステムユーティリティー。 mysqladminに類似しています。 |
gbar |
Graph Backup and Restore(グラフのバックアップと復元)。TigerGraphが提供する、システムデータのバックアップと復元のためのユーティリティープログラムです。 |
GPE |
GPEとはGraph Processing Engine(グラフ処理エンジン)のことで、Graph Storeのクエリーと更新のためにREST++サーバーからのリクエストを受け入れ、データを返すサーバーコンポーネントです。 |
Graph Store |
グラフデータを論理的および物理的に格納し、高速かつメモリ効率の高い方法でデータへのアクセスを行えるようにするコンポーネント。このGraph Storeという用語は、従来のグラフデータベースと区別するために使用されます。 |
GraphStudio UI |
GSQLシェルの代替として、ユーザーがTigerGraphシステムと視覚的かつ直感的に対話することを可能とするブラウザーベースのユーザーインターフェイス。GraphStudio UIには、Schema Designer(スキーマデザイナー)、Data Mapper(データマッパー)、Data Loader(データローダー)、Graph Explorer(グラフエクスプローラー)、Query Editor(クエリーエディター)といったコンポーネントが含まれています。 |
GSE |
Graph Storage Engine(グラフストレージエンジン)のこと。Graph Storeを管理する処理コンポーネントです。 |
GSQL |
(a)スキーマ定義、(b)データロード、(c)データ更新、(d)データのクエリーなど、グラフ処理操作を解釈・実行するユーザープログラム。 |
GSQL言語 |
GSQLプログラムに対する指示と通信に使用される言語。 |
GSQLシェル |
GSQLプログラムの実行時に使用する対話型コマンドシェル。 |
HA |
High Availability(高可用性)のこと。従来の単一サーバーノードに期待されるよりも、(スループットや稼働時間などにおいて)高レベルの運用パフォーマンスを得られるよう設計されたコンピューターシステムを表す一般的な用語。 |
IDS |
ID Service(ID サービス)のこと。データオブジェクトのユーザー(外部)IDとGraph Store(内部)IDの間で変換を行うGSEのサブコンポーネント。 |
Kafka |
Apache Software Foundationによる無償オープンソースの「高スループット分散メッセージングシステム」。TigerGraphの分散システムアーキテクチャは、メッセージパッシング/キューイングに基づいています。Kafkaは、メッセージパッシング機能の1つとして、TigerGraphシステムインストール中に自動的に設定されます。 https://kafka.apache.org// |
MultiGraph |
1つのグローバルグラフを、それぞれが独自のユーザー権限を持つ複数の論理サブグラフとして表示できるようにするグラフアーキテクチャーおよび機能のセット。サブグラフはオーバーラップ可能です。つまり、各サブグラフは共有データとプライベートデータの両方をサポートできます。 |
Native Parallel Graph(ネイティブ並列グラフ) |
本質的に高度に並列化され、高度にスケーラブルなグラフデータストレージと分析を可能とするアーキテクチャーとテクノロジー。頂点レベルのデータ+計算機能の使用は、ネイティブ並列グラフ設計の重要なコンポーネントといえます。 |
Nginx |
Ngixは無償オープンソースの高性能HTTPサーバーとリバースプロキシです。TigerGraphシステムのインストール中に自動的に設定されます。 https://nginx.org/en/ |
REST++ または RESTPP |
クライアントからのRESTfulリクエストを受け入れて検証し、GPEを呼び出し、応答をクライアントに送り返すサーバーコンポーネント。REST++は、ユーザーがRESTfulエンドポイントを定義するためのコーディング不要のインターフェイスを提供します。また、リクエスト処理と応答処理のロジックをカスタマイズするための使いやすいAPIをも提供します。 |
Single Sign-On (SSO) |
ユーザーが1セットのログイン資格情報で複数のアプリケーションにアクセスできるようにするユーザー認証サービスです。 |
TigerGraphプラットフォーム |
TigerGraphのリアルタイムグラフデータ分析ソフトウェアシステム。TigerGraphプラットフォームは、グラフデータベースの作成・管理、データクエリーと分析実行のための完全な機能を提供します。プラットフォームには、Graph StoreとGSE、GPE、REST++、GSQL、GraphStudioのほか、Apache KafkaやZookeeperなどのサードパーティーコンポーネントが含まれています。 |
TigerGraphシステム |
TigerGraphプラットフォームとその言語。この用語は、コンテキストによっては、インストールされている追加オプションのTigerGraphコンポーネントを含む場合があります。 |
TS3 |
TS3(TigerGraph System Service State、TigerGraphシステムサービスステート)は、TigerGraphシステムのモニターに役立つTigerGraphのサブシステムです。TigerGraph管理ポータルのバックエンドとして機能します。 |
Zookeeper |
Apache Software Foundationによる無償オープンソースプログラムで「設定情報の維持管理、命名、分散同期の提供、およびグループサービスの提供のための一元化されたサービス」を提供します。クラスターまたはその他の分散システム上でTigerGraphシステムを実行するために使用されます。 Zookeeperは、TigerGraphシステムのインストール中に自動的に設定されます。 https://zookeeper.apache.org/ |