DSE Graphについて

DSE Graphをインストールおよび構成する方法やDSE Graphの機能の使用方法を解説した開発者および管理者向けドキュメント。

DSE Graphは、高度につながったデータの管理、分析、検索を必要とするWebアプリケーションやモバイル・アプリケーション、IoTアプリケーション向けに構築されたグラフ・データベースです。 DSE Graphは、複雑で絶え間なく変化するデータを処理する最近のシステムに向けに、予測可能なパフォーマンスおよびスケールとともに安定した稼働時間を提供します。

グラフ・データベースとは

グラフ・データベースは、グラフ構造を使用してデータをその関係性と一緒に保存するデータベースです。グラフ・データベースは、ホワイトボードに絵を描くような簡素なデータ・モデルを利用します。グラフ・データベースでは、データ・モデリングの説明にあるように、頂点、辺、およびプロパティを使用してモデル化を行います。

DSE Graphとは

規模に合わせて構築されるCassandraのアーキテクチャーは、ペタバイトの情報および1秒あたり数千の同時ユーザー/操作を処理できることを意味します。DSE Graphは、DataStax Enterpriseのコンポーネントである認定Cassandra上に構築されています。DSE Graphには以下の利点があります。

大規模グラフのサポート

Cassandraに分散ストレージ層があるため、DSE Graphに保存するグラフは、クラスター内のマシンの数に合わせて増減できます。

多数の同時トランザクションおよび運用グラフ処理のサポート(OLTP)

DSE Graphのトランザクション容量は、クラスター内のマシンの数に応じて拡大/縮小し、巨大なグラフに対する複雑な探索クエリーに対する結果を数ミリ秒以内に返します。

グローバル・グラフ分析およびバッチ・グラフ処理のサポート(OLAP)

Sparkフレームワークを通じ、グローバル・グラフ分析およびバッチ・グラフ処理(OLAP) に対応します。

DSE Searchの統合

DSE Searchを統合してインデックス作成を効率化します。

地理検索、数値範囲検索、および全文検索のサポート

大規模グラフ内の頂点および辺の地理検索、数値範囲検索、全文検索をサポートしています。

Apache TinkerPopのネイティブ・サポート

Apache TinkerPopによって公開されている、一般的なプロパティ・グラフ・データ・モデルをネイティブ・サポートしています。

Gremlinクエリー言語のネイティブ・サポート

グラフ探索言語、Gremlinをネイティブ・サポートしています。

Gremlin Serverの統合

Gremlinグラフ・サーバーが統合されています。

パフォーマンス調整オプション

多数のグラフレベル構成オプションにより、パフォーマンス調整が可能です。

頂点中心インデックスによるクエリーの最適化

頂点中心インデックスによる頂点レベルのクエリーによって、スーパーノード問題にまつわる課題を緩和します。

ディスク表現の最適化

最適化されたディスク表現を提供し、ストレージ利用の効率化とアクセスの高速化を図ります。

DSE GraphとTitanの違いとは

以下の理由により、Titanと比べてDSE Graphのパフォーマンスは高くなっています。
  • Cassandra専用に設計。DSE Graphは、Cassandraの機能を活用できるように設計されています。
  • グラフ・データに最適化されたストレージ。DSE Graphは、高次数頂点の隣接リストをパーティション分割し、高歪度次数分布によってグラフ・データを保存し、クエリー効率化を図ります。
  • クエリーを高速化する専用インデックス構造。
  • 分散クエリー応答。DSE Graphは、各クエリーの処理に最も適したクラスター・ノードにクエリーをルーティングします。このルーティングは高度なデータ局所性を実現し、クラスター周囲でのデータ移動が少なくて済みます。Titanでは、すべてのクエリー実行はコーディネーター上でローカルに行われ、すべてのデータは他のクラスター・インスタンスから取り出されます。
また、DSE Graphには以下のような利点があります。
  • 実稼働環境向けに認定済み
  • 高度なセキュリティ機能
  • Enterprise SearchとEnterprise Analyticsの統合
  • OpsCenterを使用した視覚的管理およびモニタリング
  • DataStax Studioによるビジュアル開発
  • 認定DataStaxドライバーでのグラフ・サポート
  • ETLまたは同期化不要

DSE Graphと他のグラフ・データベースの違いとは

DSE Graphは、ストレージ・バックエンドとして認定Apache Cassandraを使用しています。そのため、このグラフ・データベースは分散データベースであると同時に常時可用性が確保され、スケールアウト・アーキテクチャーを採用しています。DSE Graphのデータは、クラスター内のすべてのノードにわたって自動的にパーティション分割されます。また、DSE Graphには、グラフ・データに対するOLAP分析および検索に役立つ分析用サポートが組み込まれています。 また、すべてのDSEコンポーネントは高度なセキュリティ・オプションを使用しています。したがって、DSE Graphのセキュリティを保護することによってデータの機密性を確保できます

Apache TinkerPopとは

Apache TinkerPopは、DSE Graphだけでなく他のグラフ・データベースとの対話に使用できる抽象フレームワークを提供するオープン・ソース・プロジェクトです。

Gremlinとは

Gremlinは、DSE Graphとの基本インターフェイスです。Gremlinは、Apache TinkerPopによって開発された、グラフ探索言語兼仮想マシンです。Gremlinは、指示および宣言クエリーを必然的にサポートできる関数型言語です。

DSE Graphとの対話方法

DSE Graphとの最も基本的な対話方法は、Gremlin Console、 dse gremlin-consoleを使用することです。Gremlin Consoleの使用によって、グラフ・データベース・スキーマの作成、データの挿入およびクエリーのほか、グラフ探索を使用してデータベースに対してメタデータのクエリーを行うことができます。SQLと比べ、Gremlinを使用すると、複雑な探索を簡単に定義できます。グラフィカル・ツールが好みの場合は、DataStax Studioを使用してください。DataStaxには、Gremlin文をDSE Graphに渡す、さまざまなプログラミング言語で記述された数々のドライバー が実稼働向けに用意されています。初回提供版ドライバーにはJava、Python、C#、Node.jsがあり、リリース候補版にはC/C++とRubyがあります。 DataStax OpsCenterは監視機能を提供します。

DSE Graphとの間でデータを移行する方法

データを挿入するには、以下のようにさまざまな方法があります。
  • DSE Graph Loaderには、CSV、JSON、テキスト・ファイル、Gryoファイルからデータをロードし、JDBC互換テータベースに対してクエリーを実行するコマンドライン・ユーティリティが用意されています。
  • DataStax StudioGremlin ConsoleのGremlinスクリプトおよびコマンド。
  • GraphSONファイルは、グラフ・データおよびメタデータを交換できるJSONファイルです。
  • GraphMLは、グラフ・データを交換するための標準形式です。頂点や辺といった情報をやり取りできますが、メタデータの場合、やり取りには制限があります。
  • Gryoは、バイナリー・データの交換を可能にするKryoのバリエーションです。
重要: まず、データを挿入する前にデータ・モデリングを開始することがベスト・プラクティスです。リレーショナル・データベースとグラフ・データベース間のパラダイム・シフトという観点から、グラフ・データベースにデータをインポートしてデータのクエリーを実行するには、その前にデータの慎重な分析とデータ・モデリングが必要になります。「DSE Graphデータ・モデリング」では詳細情報と例を紹介しています。

DSE Graphに付属しているツール

DSE Graphには、さまざまなツールが付属しています。

DSE Graphを実行するために必要なハードウェアまたはクラウド環境の種類

DSE Graphは、他のDataStax Enterprise製品と同様に、共通仕様を持つコモディティ・ハードウェア上で実行されます。 クラスター・デプロイの計画を参照してください。