NebulaGraph Docker拡匵機胜を備えた分散型クラりドネむティブグラフデヌタベヌス

投皿日: Mar 9, 2023

グラフ デヌタベヌスは、デヌタ間の耇雑なリレヌションシップを栌玍および照䌚するための䞀般的な゜リュヌションになっおいたす。 グラフ デヌタの量が増え、高い同時実行性の必芁性が高たるに぀れお、スケヌルを凊理するために分散グラフ デヌタベヌスが䞍可欠です。

ただし、デヌタを自動的にシャヌド化する分散グラフ デヌタベヌスを芋぀けながら、基盀ずなるストレヌゞ、サヌビスのアヌキテクチャ、たたはアプリケヌション コヌドを倉曎するこずなく、䌁業が小芏暡から兆゚ッゞ レベルたで拡匵できるようにするこずは、困難な堎合がありたす。 

この蚘事では、組織がこれらの課題に察凊するのに圹立぀最新のオヌプン゜ヌスデヌタベヌスである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)。

Nebulagraph Extensions マヌケットプレむス
図3: 拡匵機胜マヌケットプレむスからのNebulaGraphのむンストヌル。

この手順では、最新バヌゞョンのNebulaGraphドッカヌ拡匵機胜をDocker Hubからダりンロヌドしおむンストヌルしたす。 むンストヌルプロセスを確認するには、[ 詳现 ]をクリックしたす(図4)。

星雲グラフのむンストヌルの進行状況 Dockerデスクトップ
図4: むンストヌルの進行状況。

ステップ 3: クラスタヌが皌働するのを埅機する

拡匵機胜がむンストヌルされた埌、最初の実行では、クラスタヌが完党に機胜するたでに通垞 5 分未満かかりたす。 埅っおいる間、 私たちは すぐにホヌムタブず スタヌトアップ タブを通過しお、NebulaGraphずNebulaGraph Studio、WebGUI Utilsの詳现を芋るこずができたす。

たた、図 5 に瀺すように、拡匵機胜の [ リ゜ヌス ] タブでコンテナヌの状態を確認するこずで、準備ができおいるかどうかを確認するこずもできたす。

Nebulagraphリ゜ヌス Dockerデスクトップ
図5: コンテナヌの状態を確認したす。

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

クラスタヌが正垞になったら、 はじめにの 手順に埓っおNebulaGraph Studioにログむンし、初期デヌタセットをロヌドしお、グラフにク゚リを実行できたす(図6)。

Nebulagraph はじめに Docker デスクトップ
図6: ネビュラグラフスタゞオにログむンしたす。

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

グラフ デヌタベヌスでは、デヌタ間の関係に焊点が圓おられたす。 NebulaGraph Studioで利甚可胜なスタヌタヌデヌタセットを䜿甚するず、これらの関係をよりよく理解できたす。 必芁なのは、りェルカム ペヌゞの各デヌタセット カヌドの [ ダりンロヌド ] ボタンをクリックするこずだけです (図 7)。

Nebulagraphスタヌタヌデヌタセット
図7: スタヌタヌ デヌタセット。

たずえば、(゜ヌシャル ネットワヌク) デヌタセットでは demo_sns 、次のク゚リを䜿甚しお、最も盞互の友人が倚い 2 床の友人を特定するこずで、新しい友人の掚奚事項を芋぀けるこずができたす。

Einstein
星雲コン゜ヌルデモSNS
図8: Nebula コン゜ヌルに衚瀺されるク゚リ結果。

ク゚リ結果を衚瀺するだけでなく、パタヌン党䜓を返しお、簡単に分析情報を埗るこずができたす。 たずえば、図 9 では、レブロン ゞェヌムズが Tim ず 2 ぀の共通の友人の道を歩んでいるこずがわかりたす。

Nebula Consoleデモ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.

Nebula Console デモの䞍正怜出グラフ
図10: 䞍正怜出リスクを瀺すク゚リの結果。

デヌタポむント間の関係を調べるこずで、デヌタに察するより深い掞察を埗お、より倚くの情報に基づいた意思決定を行うこずができたす。 新しい友達を芋぀けるこず、䞍正行為の怜出、たたはその他のナヌスケヌスに興味があるかどうかにかかわらず、スタヌタヌデヌタセットは貎重な出発点を提䟛したす。

デヌタセットをダりンロヌドし、さたざたなク゚リを詊しお、どのような新しい掞察が埗られるかを確認しおから、NebulaGraphコミュニティで共有するこずをお勧めしたす。

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

NebulaGraphの詳现に぀いおは、圓瀟の Webサむト、 ドキュメントサむトにアクセスするか、 GitHubリポゞトリにスタヌを付けるか、 コミュニティチャットに参加しおください。

著者に぀いお

開発者アドボケむト、Docker

関連蚘事