

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

# Neo4j から Neptune への移行に関する全般的情報
<a name="migrating-from-neo4j-general"></a>

Neptune は [openCypher クエリ言語をサポート](feature-opencypher-compliance.md)しているため、Bolt プロトコルまたは HTTPS を使用するほとんどの Neo4j ワークロードを Neptune に移行できます。ただし、openCypher はオープンソースの仕様であり、Neo4j など, 他のデータベースでサポートされている機能のほとんどが含まれていますが、すべてではありません。

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

Neptune は、オープンソースの [openCypher 標準仕様バージョン 9](https://s3.amazonaws.com/artifacts.opencypher.org/openCypher9.pdf) をサポートしています。では AWS、オープンソースは誰にとっても良いことだと考えており、オープンソースの価値を顧客にもたらし、 の運用上の優秀性をオープンソースコミュニティにもたら AWS すことに尽力しています。

ただし、Neo4j 上で動作する多くのアプリケーションは、オープンソースではなく、Neptune がサポートしていない独自の機能も使用しています。例えば、Neptune は APOC プロシージャ、一部の Cypher 固有の句と関数、および `Char`、`Date`、または `Duration` データ型をサポートしていません。Neptune は、欠落しているデータ型を[サポートされているデータ型](bulk-load-tutorial-format-opencypher.md#bulk-load-tutorial-format-opencypher-data-types)に自動キャストします。

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


|  | openCypher | Gremlin | 
| --- | --- | --- | 
| [Style] (スタイル) | 宣言型 | 命令型 | 
| 構文 | パターンマッチング<pre>Match p=(a)-[:route]->(d)<br />WHERE a.code='ANC'<br />RETURN p<br /></pre> | トラバーサルベース<pre>g.V().has('code', 'ANC').<br />out('route').path().<br />by(elementMap())</pre> | 
| 使いやすさ: | SQL に触発され、プログラマーでなくても読みやすい | Java などのプログラミング言語と同様、習得までの時間が短い | 
| 柔軟性 | 低 | 高 | 
| クエリサポート | 文字列ベースのクエリ | 文字列ベースのクエリ、またはクライアントライブラリによってサポートされるインラインコード | 
| クライアント | HTTPS および Bolt | HTTPS とウェブソケット | 

一般に、Neo4j と Neptune はどちらもラベル付きプロパティグラフ (LPG) データをサポートしているため、Neo4j から Neptune に移行するためにデータモデルを変更する必要はありません。ただし、Neptune には、パフォーマンスを最適化するために活用できるアーキテクチャとデータモデルの違いがいくつかあります。例えば、次のようになります。
+ Neptune ID は一級市民として扱われます。
+ Neptune は [AWS Identity and Access Management (IAM) ポリシー](iam-auth.md)を使用して、柔軟かつ詳細な方法でグラフデータへのアクセスを保護します。
+ Neptune には、[Jupyter ノートブックを使用して](graph-notebooks.md)クエリを実行し、[結果を視覚化する](notebooks-visualization.md)方法がいくつか用意されています。Neptune は[サードパーティ製視覚化ツール](visualization-tools.md)とも連携します。
+ >Neptune には Neo4j グラフデータサイエンス (GDS) ライブラリの完全互換品はありませんが、Neptune は現在、さまざまなソリューションを通じてグラフ分析をサポートしています。例えば、いくつかの[サンプルノートブックは](https://github.com/aws/graph-notebook/tree/main/src/graph_notebook/notebooks/01-Neptune-Database/03-Sample-Applications/06-Data-Science-Samples)、Python 環境内の [AWS Pandas SDK との Neptune 統合](https://github.com/amazon-archives/fully-automated-neo4j-to-neptune)を活用してグラフデータに対して分析を実行する方法を示しています。

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