Школа Больших Данных
551 subscribers
101 photos
694 links
Канал Школы Больших Данных https://www.bigdataschool.ru/ - обучение технологиям Big Data: разработка приложений и администрирование кластеров Hadoop, Kafka, Spark, NoSQL, Python, ML и DS.
Тел: +7 (495) 41-41-121
Контакты: @Bigdataschool_msk @olga_burykh
Download Telegram
#Cypher #DataScience #статьи
🎢Постановка задачи: критерии оценки для поиска кратчайшего пути
Поиск кратчайшего пути – это классическая задача на графах, которая успешно решается людьми уже несколько столетий. В настоящее время с ней успешно справляются алгоритмы, поддерживаемые в графовых базых данных.
Например, в популярной NoSQL-СУБД Neo4j есть целая библиотека Graph Data Science, которая содержит множество графовых алгоритмов, включая алгоритм Дейкстры, предложенный еще в 1959 году и до сих пор активно применяемый для поиска кратчайшего пути между вершинами графа.
Однако, сегодня попробуем решить задачу поиска наиболее выгодного пути, используя только средства встроенного языка запросов Neo4j – SQL-подобного Cypher.
В качестве рабочей среды возьмем открытую GUI-консоль Neo4j, а бизнес-постановку задачу сформулируем на примере, понятном каждому жителю мегаполиса. При планировании маршрутов передвижения в городе часто возникает такая ситуация, что в какую-то точку можно добраться только пешком из-за загруженности дорог или вовсе их отсутствия.
Также нередки случаи, когда при меньшей протяженности пути в километрах по времени прохождения он становится более длительным из-за автомобильных пробок, аварий или дорожных работ.
Таким образом, для оценки пути с точки зрения бизнеса, например, в службе доставке или логистической компании, важно учитывать несколько критериев:
допустимый способ перемещения (пешком или на автомобиле);
расстояние в километрах;
длительность прохождения этого расстояния в зависимости от способа перемещения.
Чтобы решить эту задачу, сперва создадим направленный взвешенный граф, обозначив вершины буквами, а соединяющие их ребра промаркируем несколькими отношениями, задав расстояние в километрах и время прохождения этого расстояния пешком или на автомобиле. Причем не все отношения, заданных в километрах, могут быть пройдены обоими способами передвижения.

Как решить эту задачу, рассмотрим далее.
@BigDataSchool_ru
https://www.bigdataschool.ru/blog/cypher-queries-to-find-shortest-path-in-neo4j.html
#транзакции #Neo4j #OOM #APOC #CICT #Cypher
Транзакции и параллельные запросы в графовой базе данных Neo4j


Как сделать крупное обновление, вставку или удаление данных в Neo4j без OOM-ошибки и APOC-процедур при выполнении транзакции с параллельным выполнением подзапросов: функция CICT, ее возможности, ограничения и отличия от конструкции CALL IN TRANSACTIONS.

Подзапросы в транзакциях Neo4j: CIT-запросы Cypher vs процедуры APOC
Параллельная обработка данных быстрее последовательной. Поэтому многие фреймворки и базы данных поддерживают параллельное выполнение запросов.
Статья
Курс:
GRAF
Наш сайт
Копирование, размножение, распространение, перепечатка (целиком или частично), или иное использование материала допускается только с письменного разрешения правообладателя ООО "УЦ Коммерсант"