В этом репозитории лежит пример кода и задачи по работе с БД Neo4j на Haskell.
Для выполнения задач на воркшопе вам понадобятся следующие инструменты.
Docker используется для запуска самой базы данных Neo4j. Установить Docker для macOS можно по этой ссылке: https://hub.docker.com/editions/community/docker-ce-desktop-mac
Установка на Ubuntu также описана на официальном сайте: https://docs.docker.com/install/linux/docker-ce/ubuntu/
Для установки на свой любимый дистрибутив воспользуйтесь пакетным менеджером и инструкциями в интернете.
Для воркшопа подготовлен Docker образ Neo4j с загруженным датасетом. Скачайте его с Docker Hub:
$ docker pull maksbotan/neo4j-fpure
И запустите:
$ docker run -d -p 7474:7474 -p 7687:7687 maksbotan/neo4j-fpure
Веб-интерфейс к Neo4j доступен по адресу http://localhost:7474.
Вам также понадобится компилятор Haskell и система сборки Stack. Установить Stack можно следующим образом:
$ curl -sSL https://get.haskellstack.org/ | sh
Склонируйте этот репозиторий и выполните в нем
$ stack build
Эта команда скачает все нужные зависимости и скомпилирует код с задачами.
Репозиторий включает в себя полностью реализованный пример работы с Neo4j:
Sample.hs
. Запустить его после компиляции можно так:
$ stack exec -- neo4j-sample
- docker/ - сборочные файлы для контейнера с базой данных
src/
- вспомогательный кодtasks/
- задачиpackage.yaml
- файл hpackstack.yaml
- конфигурация Stack
В package.yaml
описаны три executable:
neo4j-sample
- код изSample.hs
neo4j-task1
- первая задачаneo4j-task2
- вторая задача
Запускаются они с помощью Stack:
$ stack exec -- neo4j-sample
$ stack exec -- neo4j-task1
$ stack exec -- neo4j-task2
В коде каждой задачи оставлены пропуски в виде undefined
, которые надо заполнить вам.
К каждой задаче уже подключены нужные зависимости, включая lens
и, на всякий случай, mtl
.
Документация по нужным модулям в hasbolt
и hasbolt-extras
: