Cách cài đặt và sử dụng Neo4j Graph Database trên Debian 12

theanh

Administrator
Nhân viên
Neo4j là hệ thống quản lý cơ sở dữ liệu đồ thị hiệu suất cao dành cho lưu trữ đồ thị, khoa học dữ liệu, ML, phân tích và trực quan hóa. Neo4j lưu trữ dữ liệu trong các nút, các cạnh kết nối chúng trong các mối quan hệ và các thuộc tính của các nút và cạnh.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn các hướng dẫn từng bước về cách cài đặt và sử dụng Cơ sở dữ liệu đồ thị Neo4j trên máy chủ Debian 12. Bạn cũng sẽ học cách kết nối với neo4j thông qua Cypher-shell và tìm hiểu các truy vấn Cypher cơ bản.

Điều kiện tiên quyết​

Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:
  • Máy chủ Debian 12 có ít nhất 2 GB bộ nhớ.
  • Người dùng không phải root có quyền quản trị viên sudo.

Cài đặt Java OpenJDK​

Trước khi cài đặt Neo4j Graph Database, bạn phải cài đặt Java trên hệ thống của mình và khuyến nghị sử dụng phiên bản Java LTS mới nhất - Java OpenJDK 17. Trong phần này, bạn sẽ cài đặt Java OpenJDK 17 thông qua kho lưu trữ Debian.

Trước tiên, hãy thực hiện lệnh bên dưới để cập nhật chỉ mục gói Debian của bạn và nhận thông tin gói mới nhất.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22722%22%20height=%22229%22%3E%3C/svg%3E


Bây giờ hãy cài đặt Java OpenJDK 17 bằng cách thực hiện lệnh bên dưới. Trên kho lưu trữ Debian 12, gói default-jdk tham chiếu đến Java OpenJDK 17, mà Neo4j Graph Database yêu cầu.
Mã:
sudo apt install default-jdk
Nhập y để tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22236%22%3E%3C/svg%3E


Sau khi cài đặt Java, hãy xác minh phiên bản Java sử dụng lệnh dưới đây. Bạn nên cài đặt Java OpenJDK 17 trên hệ thống của mình.
Mã:
java -version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22723%22%20height=%22125%22%3E%3C/svg%3E

Cài đặt Cơ sở dữ liệu đồ thị Neo4j​

Sau khi cài đặt Java, bạn đã sẵn sàng cài đặt Cơ sở dữ liệu đồ thị Neo4j vào hệ thống Debian của bạn. Bạn sẽ cài đặt các phụ thuộc cơ bản, thiết lập kho lưu trữ Neo4j, cài đặt gói Neo4j, sau đó khởi động và kích hoạt dịch vụ neo4j.

Để bắt đầu, hãy chạy lệnh bên dưới để cài đặt các công cụ hệ thống cơ bản vào máy chủ Debian của bạn.
Mã:
sudo apt install gnupg2 apt-transport-https wget curl -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22737%22%20height=%22238%22%3E%3C/svg%3E


Bây giờ hãy thực hiện lệnh sau để thêm Neo4j GPG key và kho lưu trữ. Trong trường hợp này, bạn sẽ thêm kho lưu trữ Neo4j vào hệ thống của mình.
Mã:
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

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22128%22%3E%3C/svg%3E


Tiếp theo, làm mới chỉ mục gói Debian của bạn và cài đặt gói Neo4j bằng cách thực hiện lệnh apt sau lệnh.
Mã:
sudo apt update && sudo apt install neo4j
Nhập y để tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22730%22%20height=%22442%22%3E%3C/svg%3E


Sau khi bạn đã cài đặt gói Neo4j, hãy thực hiện lệnh systemctl sau để khởi động và kích hoạt neo4j dịch vụ.
Mã:
sudo systemctl start neo4j
sudo systemctl enable neo4j
Cuối cùng, hãy xác minh dịch vụ neo4j bằng lệnh bên dưới để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status neo4j
Nếu Neo4j Graph Database đang chạy, đầu ra active(running) sẽ được hiển thị trên màn hình của bạn như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E

Cấu hình cơ bản của Neo4j Deployment​

Bây giờ bạn đã cài đặt Neo4j Graph Database, nhiệm vụ đầu tiên của bạn là cấu hình mật khẩu quản trị Neo4j thông qua dòng lệnh neo4j-admin, thiết lập địa chỉ lắng nghe và bộ nhớ heap tối đa bằng cách sửa đổi cấu hình mặc định /etc/neo4j/neo4j.conf.

Chạy lệnh neo4j-admin bên dưới để thiết lập mật khẩu mặc định cho cài đặt Neo4j của bạn. Trong ví dụ này, bạn sẽ thiết lập mật khẩu Neo4j mặc định thành p4ssword.
Mã:
neo4j-admin dbms set-initial-password p4ssword
Sau khi cấu hình mật khẩu mặc định của Neo4j, hãy mở cấu hình Neo4j /etc/neo4j/neo4j.conf bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/neo4j/neo4j.conf
Thêm máy cục bộ của bạn Địa chỉ IP thành tham số dbms.default_listen_address để cho phép Neo4j chạy trên mạng cục bộ. Sau đó, thay đổi tham số server.memory.heap.max_size để thiết lập bộ nhớ heap tối đa cho Neo4j Graph Database. Trong trường hợp này, Neo4j sẽ chạy ở 192.168.5.15 với bộ nhớ heap tối đa là 4 GB.
Mã:
dbms.default_listen_address=192.168.5.15

server.memory.heap.initial_size=512m
server.memory.heap.max_size=4096m
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.

Cuối cùng, hãy chạy lệnh systemctl bên dưới để áp dụng các thay đổi bằng cách khởi động lại neo4j dịch vụ.
Mã:
sudo systemctl restart neo4j

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22629%22%20height=%22166%22%3E%3C/svg%3E

Kết nối với Neo4j qua Cypher-shell​

Để kết nối với Cơ sở dữ liệu đồ thị Neo4j, hãy sử dụng cyper-shell. Chức năng của cypher-shell tương tự như mysql client trên MySQL/MariaDB và psql trên PostgreSQL. Cypher-shell cho phép bạn chạy các truy vấn Cypher, đây là ngôn ngữ truy vấn khai báo cho Neo4j Graph Database.

Thực hiện lệnh cypher-shell bên dưới để đăng nhập vào Neo4j Graph Database. Khi được yêu cầu nhập tên người dùng, hãy nhập tên người dùng mặc định là neo4j, sau đó nhập mật khẩu của bạn.
Mã:
cypher-shell -a 'neo4j://192.168.5.15:7687'
Sau khi kết nối, thông báo 'Đã kết nối với Neo4j ... với tư cách là người dùng neo4j' sẽ được hiển thị và lời nhắc sẽ trở thành 'neo4j@neo4j>'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22168%22%3E%3C/svg%3E


Bây giờ hãy chạy truy vấn Cypher sau :help để hiển thị thông báo trợ giúp và :exit để thoát khỏi cypher-shell. Như bạn đã thấy, các truy vấn Cypher luôn bắt đầu bằng dấu chấm phẩy.
Mã:
:help
:exit

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22579%22%20height=%22652%22%3E%3C/svg%3E


Ngoài ra, hãy sử dụng tùy chọn bổ sung -a để kết nối với máy chủ Neo4j cụ thể hoặc -u để đăng nhập theo ý muốn của bạn người dùng.
Mã:
cypher-shell -a 'neo4j://192.168.5.15:7687' -u neo4j -p p4ssword

Các thao tác cơ bản trong Cơ sở dữ liệu đồ thị Neo4j​

Trong Cơ sở dữ liệu đồ thị Neo4j, có 3 thực thể cốt lõi:
  1. Các nút: các thực thể dữ liệu của cơ sở dữ liệu đồ thị Neo4j và sử dụng dấu ngoặc đơn () trong ngôn ngữ truy vấn Cyper.
  2. Mối quan hệ: khi hai Nút kết nối với nhau, nó được gọi là Mối quan hệ. Mối quan hệ được biểu diễn bằng mũi tên ->, biểu thị hướng giữa các Nút.
  3. Đường dẫn: bao gồm các Nút và Mối quan hệ được kết nối.
Đầu tiên, hãy chạy truy vấn sau để tạo một nút mới có nhãn Phim.
Mã:
CREATE (a:Movie {title:'The Matrix', released: 1999}) RETURN a;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E


Bây giờ, hãy chạy truy vấn bên dưới để tạo nhiều nút có cùng nhãn Person.
Mã:
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;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22616%22%3E%3C/svg%3E


Tiếp theo, chạy truy vấn sau để tạo mối quan hệ mới giữa các nút có nhãn Person với nút có nhãn Movie. Trong trường hợp này, mối quan hệ sẽ được đặt tên là ACTED_IN với các vai trò thuộc tính.
Mã:
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);

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22167%22%3E%3C/svg%3E


Cuối cùng, hãy chạy truy vấn sau để kiểm tra các nút và mối quan hệ có sẵn trong cơ sở dữ liệu đồ thị Neo4j của bạn.
Mã:
MATCH (s)-[r]->(e)
RETURN s.name AS Name, e.title AS Title, r.roles AS As;
Đầu ra sau đây xác nhận rằng mỗi nút được kết nối.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22277%22%3E%3C/svg%3E

Kết luận​

Tóm lại, Bây giờ bạn đã cài đặt thành công Neo4j Graph Database trên máy chủ Debian 12 theo từng bước. Bạn đã cài đặt và cấu hình Neo4j Graph Database, đã học cách sử dụng cơ bản của Cypher-shell để kết nối với Neo4j và học cách vận hành cơ bản bằng ngôn ngữ truy vấn Cyper
 
Back
Bên trên