LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

Neo4jのCentOSへのインストールとデータの操作

人気のあるグラフDB Neo4jの環境をこちらこちらの手順で構築した手順をまとめます。

事前準備

javaが必要な為、Java最新Version install

yum -y install java-1.8.0-openjdk

Neo4jのインストールと確認

yumでのインストールはこちらの手順

rpm --import https://debian.neo4j.org/neotechnology.gpg.key

vi /etc/yum.repos.d/neo4j.repo
[neo4j]
name=Neo4j RPM Repository
baseurl=https://yum.neo4j.org/stable
enabled=1
gpgcheck=1

yum -y install neo4j-3.4.9

neo4j --version

Neo4jサービスの起動

サービス起動時に管理ツールがhttp://localhost:7474 で起動される

systemctl enable neo4j
systemctl start neo4j

リモートアクセスの許可

neo4l.confの設定

vi /etc/neo4j/neo4j.conf

dbms.connector.http.enabled=true
dbms.connector.http.listen_address=XX.XX.XX.XX:7474 #サーバーのIPアドレス

dbms.connector.bolt.listen_address=0.0.0.0:7687  #Boltプロトコルコネクタ 
(0.0.0.0追加 :漏れていると下記エラー)

systemctl restart neo4j

firewall-cmd --add-port=7474/tcp --zone=public --permanent
firewall-cmd --add-port=7687/tcp --zone=public --permanent
firewall-cmd --reload

※エラー: “WebSocket connection failure. Due to security constraints in your web browser, the reason for the failure is not available to this Neo4j Driver”

管理コンソール 

http://XX.XX.XX.XX:7443にneo4j/neo4j (デフォルトパスワード)でアクセス
neo4j.PNG

グラフDBの用語

  • ノード: データレコード 例)従業員、会社、都市
  • リレーションシップ: ノード間の関係  例)会社のCEO、会社の所在都市
  • プロパティ: ノード/リレーションシップの持つ属性  例)従業員の名前、CEOの在任期間、

neo.JPG

Nodeの追加

目的)Aさん(所属: 開発部) はBさん(所属: 経理部)を知っているというデータを登録

ノード追加)まずAさん(所属: 開発部)とBさん(所属: 経理部)を登録。
Neo4jではsql likeな Cypher を使って記述する。

CREATE (a_san:Person { name: "Aさん", 所属: "開発部" }), (b_san:Person { name: "Bさん", 所属: "経理部" })
RETURN a_san, b_san;

Aさん、Bさん2名のノードが追加される
neo.JPG

リレーションシップの追加

AさんはBさんを知っている

MATCH (a_san: Person), (b_san: Person)
WHERE a_san.name = "Aさん" AND b_san.name = "Bさん"
CREATE (a_san)-[r:知っている]->(b_san)
RETURN r;

neo.JPG

チュートリアルの実施

下記コマンドでチュートリアルを呼び出す

:play movie graph

neo.PNG

例)俳優Kevin Baconから、4つ先までの関係する映画/俳優
neo.PNG

例)Kevin BaconからMeg Lyanまでの映画/俳優関係の最短パス
neo.PNG

Neo4j : 主な用途  

Amazon グラフデータベースとは?より

  • 不正検出
    リレーションシップにより、購入トランザクションをほぼリアルタイムに処理可能
    例)これから購入予定の人が、既知の不正事例に含まれるEメールアドレスとクレジットカードを使おうとしていることを検出
    また、同じEメールアドレスや、同じIP アドレスを共有する複数の人物の関係性も検出可能

  • レコメンデーション
    DB内に、顧客の興味、友人、購入履歴等のリレーションシップを保持し、購入履歴が似ている他のユーザーが購入した製品に基づいて、ユーザーに製品を推奨することが可能
    また、共通の友人がるが、互いに知り合いでない人々に友人関係の推奨を行うことも可能

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2