Debian 12にNeo4jグラフデータベースをインストールして使用する方法
このページで
- 前提条件
- Java OpenJDKをインストールする
- Neo4jグラフデータベースのインストール
- Neo4jデプロイメントの基本構成
- Cypher-shellを介してNeo4jに接続する
- Neo4jグラフデータベースにおける基本操作
- 結論
Neo4jは、グラフストレージ、データサイエンス、機械学習、分析、可視化のための高性能グラフデータベース管理システムです。Neo4jは、ノードにデータを格納し、それらを関係で結ぶエッジ、ノードとエッジの属性を持っています。
このチュートリアルでは、Debian 12サーバーにNeo4jグラフデータベースをインストールし使用するための手順をステップバイステップで説明します。また、Cypher-shellを介してneo4jに接続する方法と基本的なCypherクエリについても学びます。
前提条件
進む前に、次のものを確認してください:
- 少なくとも2GBのメモリを搭載したDebian 12サーバー。
- sudo管理者権限を持つ非ルートユーザー。
Java OpenJDKをインストールする
Neo4jグラフデータベースをインストールする前に、システムにJavaをインストールする必要があり、最新のJava LTSバージョンであるJava OpenJDK 17を使用することをお勧めします。このセクションでは、Debianリポジトリを介してJava OpenJDK 17をインストールします。
まず、以下のコマンドを実行してDebianパッケージインデックスを更新し、最新のパッケージ情報を取得します。
sudo apt update
以下のコマンドを実行してJava OpenJDK 17をインストールしてください。Debian 12のリポジトリでは、default-jdkパッケージはNeo4jグラフデータベースが必要とするJava OpenJDK 17を指します。
sudo apt install default-jdk
インストールを続行するにはyを入力してください。
Javaをインストールした後、以下のコマンドを使用してJavaのバージョンを確認してください。システムにJava OpenJDK 17がインストールされているはずです。
java -version
Neo4jグラフデータベースのインストール
Javaをインストールした後、DebianシステムにNeo4jグラフデータベースをインストールする準備が整いました。基本的な依存関係をインストールし、Neo4jリポジトリを設定し、Neo4jパッケージをインストールし、最後にneo4jサービスを開始して有効にします。
まず、以下のコマンドを実行して、Debianサーバーに基本的なシステムツールをインストールします。
sudo apt install gnupg2 apt-transport-https wget curl -y
次に、Neo4jのGPGキーとリポジトリを追加するために、以下のコマンドを実行します。この場合、Neo4jリポジトリをシステムに追加します。
wget -q -O- https://debian.neo4j.com/neotechnology.gpg.key | \
gpg --dearmor | sudo tee /usr/share/keyrings/neotechnology.gpg > /dev/null 2>&1
echo "deb [signed-by=/usr/share/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest" | \
sudo tee /etc/apt/sources.list.d/neo4j.list
次に、Debianパッケージインデックスを更新し、次のaptコマンドを実行してNeo4jパッケージをインストールします。
sudo apt update && sudo apt install neo4j
インストールを続行するにはyを入力してください。
Neo4jパッケージをインストールしたら、次のsystemctlコマンドを実行してneo4jサービスを開始し、有効にします。
sudo systemctl start neo4j
sudo systemctl enable neo4j
最後に、以下のコマンドを使用してneo4jサービスを確認し、サービスが実行中であることを確認してください。
sudo systemctl status neo4j
Neo4jグラフデータベースが実行中の場合、出力active(running)が次のように画面に表示されます。
Neo4jデプロイメントの基本構成
Neo4jグラフデータベースをインストールしたので、最初のタスクはneo4j-admin<&47;em>コマンドラインを使用してNeo4j管理者パスワードを設定し、デフォルトの設定&47;etc&47;neo4j&47;neo4j.conf<&47;em>を変更してリッスンアドレスと最大ヒープメモリを設定することです。
以下のneo4j-admin<&47;em>コマンドを実行して、Neo4jインストールのデフォルトパスワードを設定します。この例では、デフォルトのNeo4jパスワードをp4ssword<&47;strong>に設定します。
neo4j-admin dbms set-initial-password p4ssword
Neo4jのデフォルトパスワードを設定した後、次のnanoエディタコマンドを使用してNeo4jの設定&47;etc&47;neo4j&47;neo4j.conf<&47;em>を開きます。
sudo nano /etc/neo4j/neo4j.conf
Neo4jがローカルネットワークで動作するように、dbms.default_listen_addressパラメータにローカルIPアドレスを追加します。次に、server.memory.heap.max_sizeパラメータを変更して、Neo4jグラフデータベースの最大ヒープメモリを設定します。この場合、Neo4jは192.168.5.15で、最大ヒープメモリは4 GBで動作します。
dbms.default_listen_address=192.168.5.15
server.memory.heap.initial_size=512m
server.memory.heap.max_size=4096m
完了したら、ファイルを保存してエディタを終了してください。
最後に、以下のsystemctlコマンドを実行して、neo4jサービスを再起動することで変更を適用します。
sudo systemctl restart neo4j
Cypher-shellを介してNeo4jに接続する
Neo4jグラフデータベースに接続するには、cypher-shellを使用します。cypher-shellの機能は、MySQL/MariaDBのmysqlクライアントやPostgreSQLのpsqlに似ています。cypher-shellを使用すると、Neo4jグラフデータベース用の宣言型クエリ言語であるCypherクエリを実行できます。
以下のcypher-shellコマンドを実行して、Neo4jグラフデータベースにログインします。ユーザー名を求められたら、デフォルトユーザーのneo4jを入力し、その後にパスワードを入力します。
cypher-shell -a 'neo4j://192.168.5.15:7687'
接続されると、メッセージ「Neo4jに接続されました... ユーザーneo4jとして」が表示され、プロンプトは「neo4j@neo4j>」のようになります。
次に、ヘルプメッセージを表示するには:help<&47;strong>というCypherクエリを実行し、cypher-shellから退出するには:exitを使用してください。ご覧の通り、Cypherクエリは常にセミコロンで始まります。
:help
:exit
さらに、特定のNeo4jサーバーに接続するには追加オプション-a<&47;strong>を使用するか、希望するユーザーとしてログインするには-u<&47;strong>を使用してください。
cypher-shell -a 'neo4j://192.168.5.15:7687' -u neo4j -p p4ssword
Neo4jグラフデータベースにおける基本操作
Neo4jグラフデータベースには、3つのコアエンティティがあります。
- ノード<&47;strong>: Neo4jグラフデータベースのデータエンティティであり、Cypherクエリ言語では括弧()を使用します。
- 関係<&47;strong>: 2つのノードが互いに接続されると、それは関係と呼ばれます。関係は矢印->で表され、ノード間の方向を示します。
- パス<&47;strong>: それは接続されたノードとリレーションシップで構成されています。
まず、次のクエリを実行して、Movieというラベルの新しいノードを作成します。
CREATE (a:Movie {title:'The Matrix', released: 1999}) RETURN a;
次に、以下のクエリを実行して、同じラベルのノード「Person」を複数作成します。
CREATE (a:Person {name:'Keanu Reeves', born: 1964}) RETURN a;
CREATE (a:Person {name:'Carrie-Anne Moss', born: 1967}) RETURN a;
CREATE (a:Person {name:'Laurence Fishburne', born: 1961}) RETURN a;
次に、PersonというラベルのノードとMovieというラベルのノードの間に新しい関係を作成するために、次のクエリを実行します。この場合、関係は役割のプロパティを持つACTED_INと名付けられます。
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Keanu Reeves') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Neo']}]->(b);
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Carrie-Anne Moss') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Trinity']}]->(b);
MATCH (a:Person), (b:Movie) WHERE (a.name = 'Laurence Fishburne') AND b.title = 'The Matrix' CREATE (a)-[r:ACTED_IN {roles:['Morpheus']}]->(b);
最後に、Neo4jグラフデータベース内の利用可能なノードとリレーションシップを確認するために、次のクエリを実行してください。
MATCH (s)-[r]->(e)
RETURN s.name AS Name, e.title AS Title, r.roles AS As;
以下の出力は、各ノードが接続されていることを確認しています。
結論
結論として、あなたはDebian 12サーバーにNeo4jグラフデータベースをステップバイステップで成功裏にインストールしました。Neo4jグラフデータベースをインストールして設定し、Neo4jに接続するためのCypher-shellの基本的な使い方を学び、Cypherクエリ言語を使用した基本的な操作を学びました。