Neo4j から Neptune への移行に関する全般的情報 - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Neo4j から Neptune への移行に関する全般的情報

openCypher クエリ言語 の Neptune サポートを使用すると、Bolt プロトコル または を使用するほとんどの Neo4j ワークロードを HTTPS Neptune に移動できます。ただし、 openCypher は、Neo4j などの他のデータベースでサポートされている機能の大部分を含むオープンソース仕様です。

多くの点で互換性があるにもかかわらず、Neptune は Neo4j の完全互換品ではありません。Neptune は、Neo4j とはアーキテクチャ的に異なる高可用性や高耐久性などのエンタープライズ機能を備えたフルマネージドグラフデータベースサービスです。Neptune はインスタンスベースであり、1 つのプライマリライターインスタンスと最大 15 個のリードレプリカインスタンスを備えているため、読み取り容量を水平方向に拡張できます。Neptune サーバーレスを使用すると、クエリ量に応じてコンピューティング容量を自動的にスケールアップまたはスケールダウンできます。これは、データを追加すると自動的にスケーリングされる Neptune ストレージとは無関係です。

Neptune は、オープンソースのopenCypher標準仕様、バージョン 9 をサポートしています。では AWS、オープンソースは誰にとっても良いことだと考えており、オープンソースの価値を顧客にもたらすことと、 の運用上の卓越性をオープンソースコミュニティにもたらすことの両方 AWS にコミットしています。

ただし、Neo4j 上で動作する多くのアプリケーションは、オープンソースではなく、Neptune がサポートしていない独自の機能も使用しています。例えば、Neptune はAPOCプロシージャ、一部の Cypher 固有の句と関数、および CharDate、または Duration データ型をサポートしていません。Neptune は、欠落しているデータ型をサポートされているデータ型に自動キャストします。

に加えてopenCypher、Neptune はプロパティグラフ ( および SPARQL RDF データ) の Apache TinkerPop Gremlin クエリ言語もサポートしています。Gremlin は、同じプロパティグラフ openCypher で と相互運用できます。多くの場合、Gremlin を使用して、 が提供 openCypher しない機能を提供できます。以下は、この 2 つの言語を簡単に比較したものです。

openCypher Gremlin

[Style] (スタイル)

宣言型

命令型

構文

パターンマッチング

Match p=(a)-[:route]->(d) WHERE a.code='ANC' RETURN p

トラバーサルベース

g.V().has('code', 'ANC'). out('route').path(). by(elementMap())

使いやすさ:

SQL- インスパイアされ、プログラマー以外が読み取り可能

Java などのプログラミング言語と同様、習得までの時間が短い

柔軟性

高い

クエリサポート

文字列ベースのクエリ

文字列ベースのクエリ、またはクライアントライブラリによってサポートされるインラインコード

クライアント

HTTPS および ボルト

HTTPS および Websockets

一般に、Neo4j と Neptune はラベル付きプロパティグラフ (LPG) データをサポートしているため、Neo4j から Neptune に移行するようにデータモデルを変更する必要はありません。ただし、Neptune には、パフォーマンスを最適化するために活用できるアーキテクチャとデータモデルの違いがいくつかあります。例:

質問がある場合は、 に連絡して、 AWS アカウントチーム AWS をサポートまたは関与させてください。お客様からのフィードバックをもとに、ニーズを満たす新機能の優先順位を決定します。