Memgraph は、リアルタイム分析を念頭に置いて設計された オープンソースのインメモリグラフデータベースです。 高性能ソリューションを提供するMemgraphは、複雑で相互接続されたデータから即座に実用的な洞察を必要とする開発者やデータサイエンティストに対応します。
Memgraphを際立たせているのは、他のグラフデータベースよりも大幅に高速な パフォーマンスを提供する 高速データ処理能力です。 ただし、これはデータの整合性や信頼性を犠牲にして実現されるものではありません。 Memgraphは、正確で信頼できる洞察を必要なだけ迅速に提供することをお約束します。
完全にC ++コードベース上に構築されたMemgraphは、インメモリストレージを活用して、複雑なリアルタイムユースケースを効果的に処理します。 ACID トランザクションのサポートによりデータの一貫性が保証され、Cypher クエリ言語はデータの構造化、操作、探索のための堅牢なツールセットを提供します。
グラフ データベースには 、さまざまな用途があります。 サイバーセキュリティ、クレジットカード詐欺の検出、エネルギー管理、ネットワークの最適化など、さまざまな分野で、Memgraphはデータ内の複雑なネットワーク構造と関係を効率的に分析し、通過することができます。 この分析能力により、幅広い業界や研究分野にわたるリアルタイムの詳細な発見が容易になります。
この記事では、Memgraph を Docker 拡張機能として使用することで、グラフ データベースからのリアルタイム分析を活用するための強力で効率的な方法がどのように提供されるかについて説明します。
メモリグラフのアーキテクチャ
Memgraphの高速性能は、そのユニークなアーキテクチャに起因する可能性があります(図1)。 グラフモデルを中心に、データベースはデータをノード(エンティティ)とエッジ(リレーションシップ)として表し、さまざまな最新のアプリケーションに不可欠な、深く相互接続されたデータを効率的に管理できるようにします。
取引に関しては、Memgraphは最高水準を維持しています。 Boltプロトコル上で標準化されたCypherクエリ言語を使用し、効率的なデータの構造化、操作、および探索を容易にします。
Memgraphのアーキテクチャの主要コンポーネントは次のとおりです。
- インメモリストレージ: Memgraphは、低遅延アクセスのためにデータをRAMに保存し、高速データの取得と変更を保証します。 これは、リアルタイムの洞察を必要とするアプリケーションにとって重要です。
- トランザクション処理: Memgraphは ACID(アトミック性、一貫性、分離性、耐久性)トランザクションをサポートしているため、すべてのデータベーストランザクションが確実に処理され、障害が発生した場合を含め、データの整合性が確保されることを保証します。
- クエリ エンジン: Memgraphは、宣言型で表現力豊かな一般的なグラフクエリ言語であるCypherを使用しているため、複雑なデータ関係を簡単に取得および更新できます。
- ストレージエンジン: Memgraphは主にメモリ内で動作しますが、データをディスクに保持することでデータの耐久性を処理するストレージエンジンも提供します。 これにより、システムがクラッシュまたは再起動した場合でもデータが失われることはありません。
- 高可用性とレプリケーション: Memgraphのレプリケーションアーキテクチャは、複数のマシン間でデータを自動的に複製でき、レプリケーションをサポートして高可用性とフォールトトレランスを提供します。
- ストリーミングと統合: Memgraphは、さまざまなデータストリームに接続し、さまざまなタイプのデータソースと統合できるため、リアルタイムデータの処理と分析を必要とするアプリケーションにとって用途の広い選択肢となります。
ユーザーに最大限の柔軟性と制御を提供するために、Memgraphはいくつかの主要コンポーネントで構成されており、それぞれがシームレスなパフォーマンスとユーザーエクスペリエンスを提供する上で異なる役割を果たしています。
- MemgraphDB — MemgraphDB は Memgraph システムの心臓部です。 データとアルゴリズムの複雑さの両方の観点から、すべての同時実行の問題、一貫性の問題、およびスケーリングを処理します。 MemgraphDBは、Cypherクエリ言語を使用して、ユーザーがデータをクエリし、アルゴリズムを実行できるようにします。 また、プッシュ操作とプル操作の両方をサポートしているため、データのクエリとアルゴリズムの実行が可能になり、データに変更があった場合に通知を受け取ることができます。
- Mgconsole — mgconsole は、任意の端末またはオペレーティングシステムから Memgraph と対話するために使用されるコマンドラインインターフェイス (CLI) です。
- Memgraph Lab — Memgraph Lab は、クエリを実行し、グラフデータを視覚化するための視覚的なユーザーインターフェイスです。 これにより、より対話的なエクスペリエンスが提供され、ユーザーはさまざまなグラフ スタイルを適用したり、定義済みのデータセットをインポートしたり、サンプル クエリを実行したりできます。 これにより、データ分析と視覚化がより直感的でユーザーフレンドリーになります。
- MAGE (Memgraph Advanced Graph Extensions) — MAGE はグラフアルゴリズムとカスタムサイファープロシージャのオープンソースライブラリです。 これにより、ストリーミングデータに対する要求の厳しいグラフアルゴリズムの高性能処理が可能になります。 MAGE を使用すると、ユーザーは PageRank やコミュニティ検出から、グラフ埋め込みを使用した高度な機械学習手法まで、さまざまなアルゴリズムを実行できます。 さらに、MAGEはユーザーを特定のプログラミング言語に制限しません。
これら 4 つのコンポーネントに基づいて、Memgraph は 4 つの異なる Docker イメージを提供します。
- memgraph-platform — MemgraphDB、mgconsole、Memgraph Lab、MAGE をインストールします。
- memgraph-mage — MemgraphDB、mgconsole、および MAGE をインストールします。
- memgraph — MemgraphDB と mgconsole をインストールします。
- MAGE × NVIDIA cuGraph — MAGE を NVIDIA cuGraph と組み合わせて実行するために必要なものをすべてインストールします
Docker Hubから10K以上ダウンロードされたMemgraph Platformは、最も人気のあるMemgraph Dockerイメージであるため、チームはMemgraph Docker拡張機能をベースにすることにしました。 他のイメージを使用する場合は、 ドキュメントを参照してください 。 Memgraphドッカー拡張機能をインストールする方法を見てみましょう。
MemgraphをDocker拡張機能として実行する理由
Memgraph を Docker 拡張機能として実行すると、Docker Desktop にすでに精通しているユーザーに合理化されたエクスペリエンスが提供され、グラフ データベースのデプロイと管理が簡素化されます。 Dockerは、軽量で分離されたセットアップでMemgraphをバンドル、出荷、実行するための理想的な環境を提供します。 このカプセル化により、異なるシステム間で一貫したパフォーマンスが向上するだけでなく、セットアッププロセスが簡素化されます。
さらに、Docker Desktopは、Memgraphを拡張機能として実行するための唯一の前提条件です。 つまり、Dockerをインストールすると、Memgraphを簡単にセットアップして使用を開始できるため、追加のソフトウェアのインストールや複雑な構成手順が不要になります。
はじめ
Memgraph を Docker 拡張機能として使用するには、まず Docker Desktop を開きます (図 2)。 従う手順は次のとおりです。
- 左側のサイドバーで [拡張機能 ]を選択します。
- [ 参照 ] タブに切り替えます。
- [フィルター] ドロップダウンで、[データベース ] カテゴリを選択します。
- Memgraph を見つけて、 [インストール] を選択します。
それです! インストールが完了したら、[ 今すぐ接続 ] を選択します (図 3)。
現在表示されているのは、クエリの実行とグラフデータの視覚化のために設計されたビジュアルユーザーインターフェイスであるMemgraph Labです。 事前に準備されたさまざまなデータセットを備えたMemgraph Labは、Memgraphを探索し、Cypherクエリに習熟し、クエリ結果を効果的に視覚化するための理想的な出発点を提供します。
パンドラペーパーのデータセットをインポートする
この記事では、Pandora Papers データセットをインポートします。 データセットをインポートするには、Memgraph ラボのサイドバー で [データセット] を選択し、[ データセットの読み込み] を選択します (図 4)。
データセットが読み込まれたら、[ クエリ コレクションの探索 ] を選択して、定義済みのクエリの選択にアクセスします (図 5)。
クエリの 1 つを選択し、[ クエリの実行 ] を選択します (図 6)。
そして出来上がり! グラフの世界へようこそ。 これで、クエリの結果が取得されました (図 7)。 最初のクエリを実行したので、クエリ コレクション内の他のクエリを調べたり、新しいデータセットをインポートしたり、データベースへの独自のデータの追加を開始したりできます。
結論
Memgraphは、Docker拡張機能として、グラフデータベースからのリアルタイム分析を活用しようとしているすべての人に、アクセス可能で強力で効率的なソリューションを提供します。 その独自のアーキテクチャと、合理化されたユーザーインターフェイスと高速クエリエンジンを組み合わせることで、開発者やデータサイエンティストは、複雑で相互接続されたデータから即座に実用的な洞察を抽出できます。
さらに、Dockerの統合により、Memgraphのセットアップと使用が非常に簡単になり、経験豊富なユーザーと初心者の両方のユーザーにとってさらに魅力が広がります。 最良の部分は、Memgraphチームが提供するさまざまな事前定義されたデータセットとクエリであり、プラットフォームを初めて使用するユーザーにとって優れた出発点として機能します。
グラフデータベースの世界に初めて飛び込む場合でも、経験豊富なデータプロフェッショナルである場合でも、MemgraphのDocker拡張機能は直感的で効率的なソリューションを提供します。 だから、先に進んで Docker Desktopにインストール し、今日のグラフデータベースの興味深い世界を探索し始めてください。 Memgraphについて質問がある場合は、 DiscordのMemgraphの活気に満ちたコミュニティにお気軽に参加してください。
さらに詳しく
- Memgraph の Docker 拡張機能をインストールします。
- Docker デスクトップの最新リリースを入手します。
- 次のものに投票してください! 公開ロードマップをご覧ください。
- 質問がありますか? Docker コミュニティがお手伝いします。
- ドッカーは初めてですか? 始めましょう。