Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docker
src
tasks
.gitignore FPURE task files May 7, 2019
LICENSE FPURE task files May 7, 2019
README.md FPURE task files May 7, 2019
Setup.hs FPURE task files May 7, 2019
package.yaml FPURE task files May 7, 2019
stack.yaml
sw.cypher

README.md

Воркшоп по Neo4j + Haskell на FPURE

В этом репозитории лежит пример кода и задачи по работе с БД Neo4j на Haskell.

Установка инструментов

Для выполнения задач на воркшопе вам понадобятся следующие инструменты.

Docker

Docker используется для запуска самой базы данных Neo4j. Установить Docker для macOS можно по этой ссылке: https://hub.docker.com/editions/community/docker-ce-desktop-mac

Установка на Ubuntu также описана на официальном сайте: https://docs.docker.com/install/linux/docker-ce/ubuntu/

Для установки на свой любимый дистрибутив воспользуйтесь пакетным менеджером и инструкциями в интернете.

Образ с Neo4j

Для воркшопа подготовлен 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.

Stack

Вам также понадобится компилятор Haskell и система сборки Stack. Установить Stack можно следующим образом:

$ curl -sSL https://get.haskellstack.org/ | sh

Компиляция проекта

Склонируйте этот репозиторий и выполните в нем

$ stack build

Эта команда скачает все нужные зависимости и скомпилирует код с задачами.

Запуск примера

Репозиторий включает в себя полностью реализованный пример работы с Neo4j: Sample.hs. Запустить его после компиляции можно так:

$ stack exec -- neo4j-sample

Структура файлов

  • docker/ - сборочные файлы для контейнера с базой данных
  • src/ - вспомогательный код
    • Config.hs - настройка доступа к локальной базе данных в Docker
    • Types.hs - определение типов данных Person, Movie и других
  • tasks/ - задачи
    • Sample.hs - пример работы с Neo4j
    • Task1.hs, Task2.hs - задачи, в которых нужно дописать код
  • package.yaml - файл hpack
  • stack.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:

You can’t perform that action at this time.