Neo4j — это высокопроизводительная система управления базами данных графов для хранения графов, обработки данных, машинного обучения, аналитики и визуализации. Neo4j хранит данные в узлах, рёбрах, соединяющих их в отношениях, и атрибутах узлов и рёбер.
В этой статье мы покажем вам пошаговую инструкцию по установке и использованию базы данных Neo4j Graph на сервере Debian 12. Вы также узнаете, как подключиться к neo4j через Cypher-shell и изучить основные запросы Cypher.
Прежде чем продолжить, убедитесь, что у вас есть следующее:
Перед установкой базы данных Neo4j Graph необходимо установить Java в вашей системе. Рекомендуется использовать последнюю версию Java LTS — Java OpenJDK 17. В этом разделе вы установите Java OpenJDK 17 через репозиторий Debian.
Сначала выполните приведённую ниже команду, чтобы обновить индекс пакетов Debian и получить последнюю информацию о пакетах.
sudo apt update
Теперь установите Java OpenJDK 17, выполнив приведённую ниже команду. В репозитории Debian 12 пакет default-jdk относится к Java OpenJDK 17, которая требуется для Neo4j Graph Database.
sudo apt install default-jdk
Введите y, чтобы продолжить установку.
После установки Java проверьте версию Java с помощью приведённой ниже команды. В вашей системе должна быть установлена Java OpenJDK 17.
java -version
После установки Java вы готовы установить базу данных Neo4j Graph в свою систему Debian. Вы установите основные зависимости, настроите репозиторий 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 и установите пакет Neo4j, выполнив следующую команду apt.
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 Graph работает, на экране отобразится active(running).
Теперь, когда вы установили базу данных Neo4j Graph, ваша первая задача — настроить пароль администратора Neo4j с помощью командной строки neo4j-admin, задать адрес прослушивания и максимальный объём памяти кучи, изменив конфигурацию по умолчанию /etc/neo4j/neo4j.conf.
Выполните приведенную ниже команду neo4j-admin, чтобы установить пароль по умолчанию для вашей установки Neo4j. В этом примере вы установите пароль Neo4j по умолчанию p4ssword.
neo4j-admin dbms set-initial-password p4ssword
После настройки пароля Neo4j по умолчанию откройте файл конфигурации Neo4j /etc/neo4j/neo4j.conf с помощью следующей команды редактора nano.
sudo nano /etc/neo4j/neo4j.conf
Добавьте свой локальный IP-адрес в параметр dbms.default_listen_address, чтобы Neo4j мог работать в локальной сети. Затем измените параметр server.memory.heap.max_size, чтобы настроить максимальный объём памяти кучи для базы данных Neo4j Graph. В этом случае Neo4j будет работать по адресу 192.168.5.15 с максимальным объёмом памяти кучи 4 ГБ.
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
Чтобы подключиться к базе данных Neo4j Graph, используйте cyper-shell. Функционал cypher-shell аналогичен mysql-клиенту для MySQL/MariaDB и psql для PostgreSQL. Cypher-shell позволяет выполнять запросы Cypher — декларативный язык запросов для базы данных Neo4j Graph.
Выполните приведённую ниже команду cypher-shell, чтобы войти в базу данных Neo4j Graph. При запросе имени пользователя введите имя пользователя по умолчанию neo4j, затем введите свой пароль.
cypher-shell -a 'neo4j://192.168.5.15:7687'
После подключения отобразится сообщение «Подключено к Neo4j … как пользователь neo4j», а приглашение будет выглядеть как ‘neo4j@neo4j>‘.
Теперь выполните следующий запрос Cypher :help, чтобы отобразить справочные сообщения, и :exit, чтобы выйти из оболочки Cypher. Как вы заметили, запросы Cypher всегда начинаются с точки с запятой.
:help :exit
Кроме того, используйте дополнительную опцию -a для подключения к определённому серверу Neo4j или -u для входа в систему под нужным вам именем пользователя.
cypher-shell -a 'neo4j://192.168.5.15:7687' -u neo4j -p p4ssword
В базе данных Neo4j Graph есть 3 основных объекта:
Сначала выполните следующий запрос, чтобы создать новый узел с меткой «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 со свойством «roles».
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;
Следующий вывод подтверждает, что каждый узел подключен.
В заключение отметим, что вы успешно установили базу данных Neo4j Graph на сервер Debian 12. Вы установили и настроили базу данных Neo4j Graph, изучили основы использования Cypher-shell для подключения к Neo4j и освоили базовые операции с использованием языка запросов Cyper