Neo4j เป็น Graph Database ยี่ห้อนึง
ที่มีทั้งแบบ Free และแบบเสียตังค์
- แบบ Free เราจะเรียกว่า Community Edition
- แบบ เสียตังค์ เราจะเรียกว่า Enterprise Edition
ต่างกันที่
- แบบ Free จะมีการจำกัดจำนวนของ Nodes, Relations, Properties และ Features บางอย่าง ให้ใช้งานได้อย่างจำกัด
- แต่แบบเสียตังค์ จะเป็น Ulimited พร้อม Feaure อื่น ๆ
การติดตั้งด้วย Docker ในบทความนี้ เราจะใช้ Image จาก Official https://hub.docker.com/_/neo4j
แบบ Free และแบบเสียตังค์ จะต่างกันตรง Image Tag
ถ้าแบบเสียตังค์ Image Tag จะมี
-enterprise
หรือenterprise
ต่อท้าย
ซึ่งในบทความนี้ เราจะติดตั้งกันเป็นแบบ Free ด้วย Image neo4j:latest
- Linux Ubuntu 18.04 LTS
- CPU : 1 vCPUs
- RAM : 1 GB
- Docker (สามารถติดตั้งได้ตามนี้ : ติดตั้ง Docker บน Ubuntu 18.04)
$ docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-v $HOME/neo4j/data:/data \
-v $HOME/neo4j/logs:/logs \
-v $HOME/neo4j/import:/var/lib/neo4j/import \
-v $HOME/neo4j/plugins:/plugins \
--env NEO4J_AUTH=<DATA_BASE_USERNAME>/<DATA_BASE_PASSWORD> \
--env NEO4J_dbms_connector_https_advertised__address="<SERVER_IP>:7473" \
--env NEO4J_dbms_connector_http_advertised__address="<SERVER_IP>:7474" \
--env NEO4J_dbms_connector_bolt_advertised__address="<SERVER_IP>:7687" \
neo4j:latest
ดูผลลัพธ์
$ docker ps -a
เวลาติดตั้ง Neo4j เราจะต้อง Expose Port อย่างน้อย 2 Ports จากทั้งหมด 3 Ports เพื่อ Remote Access คือ
7474
for HTTP (สำหรับเข้าสู่หน้า Neo4j Browser แบบ Http)7473
for HTTPS (สำหรับเข้าสู่หน้า Neo4j Browser แบบ Https)7687
for Bolt (สำหรับ Neo4j Database Connection)
จาก Script เรา Expose แค่ 2 Ports เนื่องจาก เราไม่ได้เปิด Https
ถ้าจะทำ Https เราต้องทำเพิ่มเติมเอง ซึ่งตาม Default แล้ว Docker Image นี้ไม่ได้มี Https มาให้
- $HOME/neo4j/data:/data (สำหรับเก็บ Data ออกมาไว้นอก Container)
- $HOME/neo4j/logs:/logs (สำหรับเก็บ Log ไว้นอก Container)
- $HOME/neo4j/import:/var/lib/neo4j/import (สำหรับเก็บพวก CSV file หรือ Script ต่าง ๆ ที่เราต้องการนำไป import เข้า Database)
- $HOME/neo4j/plugins:/plugins (สำหรับเก็บ Plugins ต่าง ๆ)
กำหนด Default Username/Password สำหรับ Login เข้า Database
--env NEO4J_AUTH=<DATA_BASE_USERNAME>/<DATA_BASE_PASSWORD>
ถ้าไม่ต้องการให้มี Username/Password ก็ให้กำหนดเป็น
--env NEO4J_AUTH=none
กำหนด Configuration ต่าง ๆ สำหรับ Neo4j Browser (เป็น Tool สำหรับ Query Data บน Browser คล้าย ๆ phpMyAdmin
)
--env NEO4J_dbms_connector_https_advertised__address="<SERVER_IP>:7473"
--env NEO4J_dbms_connector_http_advertised__address="<SERVER_IP>:7474"
--env NEO4J_dbms_connector_bolt_advertised__address="<SERVER_IP>:7687"
ถ้าเราไม่กำหนด เวลาเปิด Neo4j Browser ด้วย IP อื่น ๆ จะทำให้ ไม่สามารถ Login หรือ Query data จาก Database ได้ เนื่องจาก Connection จะ Default เป็น localhost
ถ้าใครใช้งาน Docker ไม่คล่อง สามารถอ่านเพิ่มเติมได้จาก พื้นฐาน Docker
เมื่อ Run Container เสร็จ ลองเข้าไปที่
http://<SERVER_IP>:7474
จากนั้น Connect ด้วย Username/Password ตามที่กำหนดไว้
เข้าใช้งานได้ปกติ
ใช้ Data จากลิงค์นี้
ลอง Run ดู (อย่าลืม Bookmark ตรงรูปดาวไว้ด้วย)
MATCH (node)
RETURN node
LIMIT 10
ผลลัพธ์
ถ้าใครอยากลองเล่น Neo4j แบบไม่ต้องติดตั้ง สามารถเข้าไปลองเล่นได้ที่ https://sandbox.neo4j.com/