LoginSignup
2
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-29

人気のあるグラフ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内に、顧客の興味、友人、購入履歴等のリレーションシップを保持し、購入履歴が似ている他のユーザーが購入した製品に基づいて、ユーザーに製品を推奨することが可能
    また、共通の友人がるが、互いに知り合いでない人々に友人関係の推奨を行うことも可能

2
2
0

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
  3. You can use dark theme
What you can do with signing up
2
2