Сбой запроса Neo4j всех троек

#neo4j

#neo4j

Вопрос:

У меня есть график с 300 тыс. узлов и 4 млн. взаимосвязей.

Я хотел бы запросить все тройки:

 MATCH p=()-[]->()
RETURN p
 

Я получаю следующую ошибку:

 Neo.DatabaseError.Statement.ExecutionFailed

org.neo4j.io.pagecache.CursorException: PropertyRecord claims to have more property blocks than can fit in a record
 

Вы знаете, что пошло не так? Спасибо.

Комментарии:

1. Это все еще происходит при перезапуске базы данных?

2. Да, к сожалению, это не имеет значения. Похоже, проблема с памятью.

Ответ №1:

Это способ экспортировать все узлы и связи в файл CSV с помощью функции APOC.

Ссылка: https://neo4j.com/labs/apoc/4.1/export/csv /

Например; для загрузки всех узлов и связей базы данных фильмов

 CALL apoc.export.csv.all("movies.csv", {})
 

ИЛИ, если вы хотите добавить свой собственный запрос, см. Пример ниже:

 MATCH (person:Person)
WHERE person.name STARTS WITH "L"
WITH collect(person) AS people
CALL apoc.export.csv.data(people, [], "movies-l.csv", {})
YIELD file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data
RETURN file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data
 

==================

Зачем вам нужно видеть 300 тыс. узлов и 8 млн взаимосвязей в одном браузере? Вы можете использовать альтернативные варианты ниже:

   1  call db.schema.visualization()  -> a simplified view of the database
    
  2  MATCH p=()-[]->()
    RETURN p
    LIMIT 25     -> limits few nodes to view
 

Комментарии:

1. Спасибо за ваш ответ. Мне не нужно их видеть. Я получаю ту же ошибку, даже если выполняю запрос с помощью API Python или в консоли neo4j с помощью bash. Это не проблема рендеринга. Похоже, проблема с памятью. Знаете ли вы о методе пакетной обработки такого запроса непараметрическим способом? Я бы не знал заранее, какие параметры передавать, поскольку график априори неизвестен. В любом случае, мне нужно получить весь график.

2. зачем вам нужно просматривать 300 тыс. узлов и 4 млн взаимосвязей одновременно? Вам нужно загрузить базу данных в файл данных?

3. Да, мне нужно загрузить базу данных и сохранить представление троек (например, в массиве numpy, содержащем начальные и конечные индексы, или график networkx) и запустить над ним эксперименты ML.