#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.