NebulaGraph Docker拡張機能を備えた分散型クラウドネイティブグラフデータベース

グラフ データベースは、データ間の複雑なリレーションシップを格納および照会するための一般的なソリューションになっています。 グラフ データの量が増え、高い同時実行性の必要性が高まるにつれて、スケールを処理するために分散グラフ データベースが不可欠です。

ただし、データを自動的にシャード化する分散グラフ データベースを見つけながら、基盤となるストレージ、サービスのアーキテクチャ、またはアプリケーション コードを変更することなく、企業が小規模から兆エッジ レベルまで拡張できるようにすることは、困難な場合があります。 

この記事では、組織がこれらの課題に対処するのに役立つ最新のオープンソースデータベースであるNebulaGraphについて説明します。

バナー星雲グラフ拡張

星雲グラフに会う

NebulaGraph は、最新のオープンソースのクラウドネイティブグラフデータベースであり、スケーラビリティの低さ、待機時間の長、スループットの低下など、従来のグラフデータベースの制限に対処するように設計されています。 NebulaGraphはまた、非常にスケーラブルで柔軟性があり、小規模から兆エッジレベルまでの大規模なグラフデータを処理できます。

NebulaGraphは、2018年以来、ツールとサポートの豊富なエコシステムとともに、 1000人以上のエンタープライズユーザーの 繁栄するコミュニティを構築してきました。 これらの利点により、グラフベースのアプリケーションの構築を検討している組織にとっては費用対効果の高いソリューションであり、開発者やデータサイエンティストにとっては優れた学習リソースになります。

NebulaGraphクラウドネイティブデータベースは、クラウド環境での展開と管理を容易にするための Kubernetesオペレーター も提供します。 この機能は、クラウドインフラストラクチャのスケーラビリティと柔軟性を活用しようとしている組織に最適です。

星雲グラフデータベースのアーキテクチャ

NebulaGraphは、グラフサービス、ストレージサービス、メタサービスの3つのサービスで構成されています(図1)。 ステートレス プロセス (星雲グラフ) で構成されるグラフ サービスは、グラフ クエリを担当します。 ストレージサービス(星雲ストレージ)は、グラフデータを永続的に保存する分散(ラフト)ストレージレイヤーです。 Metaサービスは、ユーザーアカウント、スキーマ情報、およびジョブ管理の管理を担当します。 この設計により、NebulaGraphは優れたスケーラビリティ、高可用性、費用対効果、および拡張性を提供します。

星雲グラフデータベースアーキテクチャのインフォグラフィック
図1: 星雲グラフサービスの概要。

なぜネビュラグラフなのか?

NebulaGraphは、そのアーキテクチャと設計により、高性能、スケーラビリティ、および費用対効果を実現するため、グラフデータベースのニーズに最適です。 このアーキテクチャは、ストレージとコンピューティング アーキテクチャの分離に従っており、次の利点があります。

  • 自動シャーディング:NebulaGraphはグラフデータを自動的にシャーディングするため、企業は基盤となるストレージ、アーキテクチャ、またはアプリケーションコードを変更することなく、小規模から1兆エッジレベルのデータボリュームに拡張できます。
  • 高性能:最適化されたアーキテクチャと設計により、NebulaGraphは複雑なグラフクエリとトラバーサル操作に高いパフォーマンスを提供します。
  • 高可用性: Graph サービスの一部に障害が発生しても、ストレージ サービスによって格納されたデータはそのまま残ります。
  • 柔軟性: NebulaGraphはプロパティグラフをサポートし、複雑なグラフクエリとトラバーサル操作をサポートする星雲グラフクエリ言語(nGQL)と呼ばれる強力なクエリ言語を提供します。 
  • API のサポート: 分散システム内の他のツールやサービスとの統合を可能にするさまざまな API とコネクタを提供します。

なぜネビュラグラフをドッカー拡張機能として実行するのですか?

本番環境では、NebulaGraphをKubernetesまたはクラウドにデプロイできるため、クラスターの管理とメンテナンスの複雑さをユーザーから隠すことができます。 ただし、開発、テスト、および学習の目的で、デスクトップまたはローカル環境にNebulaGraphクラスターをセットアップすることは、特にコンテナやコマンドラインツールに慣れていないユーザーにとっては、依然として困難でコストのかかるプロセスになる可能性があります。

これがネビュラグラフドッカーエクステンションの出番です。 数回クリックするだけで完全に機能するNebulaGraphクラスターをセットアップするためのエレガントで使いやすいソリューションを提供し、開発者、データサイエンティスト、およびNebulaGraphを学び、実験したい人に最適です。

Docker Desktop での NebulaGraph の使用を開始する

セットアップ

前提条件: Docker デスクトップ 4.10 以降。

ステップ 1: Docker 拡張機能を有効にする

Docker デスクトップの [設定] タブで Docker 拡張機能を有効にする必要があります。 Docker デスクトップ内で、 Docker 拡張機能 が有効になっていることを確認します (図 2)。 [設定] > [拡張機能] に移動し、[Docker 拡張機能を有効にする] を選択します。

Docker デスクトップ拡張機能の設定
図2: Docker デスクトップ内で Docker 拡張機能を有効にする。

すべてのDocker拡張機能リソースはデフォルトで非表示になっているため、その可視性を確保するには、[ 設定]>[ 拡張機能]に移動し、[ Docker拡張機能の表示]システムコンテナを確認します。

ステップ2:ネビュラグラフドッカー拡張機能をインストールする

NebulaGraph 拡張機能は、Docker Desktop の Extensions Marketplace および Docker Hub から入手できます。 開始するには、拡張機能マーケットプレイスでNebulaGraphを検索し、[ インストール ]を選択します(図3)。

星雲グラフ拡張市場
図3: 拡張機能マーケットプレイスからのNebulaGraphのインストール。

この手順では、最新バージョンのNebulaGraphドッカー拡張機能をDocker Hubからダウンロードしてインストールします。 インストールプロセスを確認するには、[ 詳細 ]をクリックします(図4)。

ネビュラグラフのインストールの進行状況ドッカーデスクトップ
図4: インストールの進行状況。

ステップ 3: クラスターが稼働するのを待機する

拡張機能がインストールされた後、最初の実行では、クラスターが完全に機能するまでに通常 5 分未満かかります。 待っている間、 私たちは すぐにホームタブと スタートアップ タブを通過して、NebulaGraphとNebulaGraph Studio、WebGUI Utilsの詳細を見ることができます。

また、図 5 に示すように、拡張機能の [ リソース ] タブでコンテナーの状態を確認することで、準備ができているかどうかを確認することもできます。

星雲グラフリソースドッカーデスクトップ
図5: コンテナーの状態を確認します。

ステップ4:星雲グラフを使い始める

クラスターが正常になったら、 はじめにの 手順に従ってNebulaGraph Studioにログインし、初期データセットをロードして、グラフにクエリを実行できます(図6)。

星雲グラフ はじめに ドッカーデスクトップ
図6: ネビュラグラフスタジオにログインします。

ステップ 5: スターターデータセットから詳細を確認する 

グラフ データベースでは、データ間の関係に焦点が当てられます。 NebulaGraph Studioで利用可能なスターターデータセットを使用すると、これらの関係をよりよく理解できます。 必要なのは、ウェルカム ページの各データセット カードの [ ダウンロード ] ボタンをクリックすることだけです (図 7)。

星雲グラフスターターデータセット
図7: スターター データセット。

たとえば、(ソーシャル ネットワーク) データセットでは demo_sns 、次のクエリを使用して、最も相互の友人が多い 2 度の友人を特定することで、新しい友人の推奨事項を見つけることができます。

Einstein
星雲コンソールデモSNS
図8: Nebula コンソールに表示されるクエリ結果。

クエリ結果を表示するだけでなく、パターン全体を返して、簡単に分析情報を得ることができます。 たとえば、図 9 では、レブロン ジェームズが Tim と 2 つの共通の友人の道を歩んでいることがわかります。

星雲コンソールデモSNSの結果グラフ
図9: クエリ結果をグラフ化する。

別の例は、 demo_fraud_detection 次のクエリに示すように、危険な申請者に対して 10 度のチェックを実行できる (ローンのグラフ) データセットにあります。

MATCH 
p_=(p:`applicant`)-[*1..10]-(p2:`applicant`)
WHERE id(p)=="p_200" AND 
p2.`applicant`.is_risky == "True"
RETURN p_ LIMIT 100

図10に示す結果は、この申請者が p_190.

星雲コンソールデモ不正検出グラフ
図10: 不正検出リスクを示すクエリの結果。

データポイント間の関係を調べることで、データに対するより深い洞察を得て、より多くの情報に基づいた意思決定を行うことができます。 新しい友達を見つけること、不正行為の検出、またはその他のユースケースに興味があるかどうかにかかわらず、スターターデータセットは貴重な出発点を提供します。

データセットをダウンロードし、さまざまなクエリを試して、どのような新しい洞察が得られるかを確認してから、NebulaGraphコミュニティで共有することをお勧めします。

ネビュラグラフをお試しください

NebulaGraphの詳細については、当社の Webサイトドキュメントサイトにアクセスするか、 GitHubリポジトリにスターを付けるか、 コミュニティチャットに参加してください。