Nano Hash - криптовалюты, майнинг, программирование

не могу отладить неизвестную ошибку в Neo4j

Мне нужно загрузить ~ 29 миллионов узлов из файла CSV (с ИСПОЛЬЗОВАНИЕМ ПЕРИОДИЧЕСКОЙ КОММИТИИ), но я получаю «Неизвестную ошибку» после загрузки первых узлов ~ 75 000. Я пытался изменить размер фиксации (250, 500 и 1000), увеличить кучу Java (-Xmx4096m) и использовать отображение памяти, но ничего не меняется (кроме количества загружаемых узлов - при размере фиксации 500 я получаю "Неизвестную ошибку" после 75 499 узлов, а при размере фиксации 250 я получаю «Неизвестная ошибка» после 75 749 узлов).

Я делаю это в браузере, используя Neoj4 2.1.7 на удаленной машине с 10 ГБ ОЗУ и Windows Server 2012. Вот мой код:

USING PERIODIC COMMIT 1000
LOAD CSV FROM "file:/C:/Users/thiago.marzagao/Desktop/CSVs/cnpj.csv" AS node
CREATE (:PessoaJuridica {id: node[0], razaoSocial: node[1], nomeFantasia: node[2], CNAE: node[3], porte: node[4], dataAbertura: node[5], situacao: node[6], dataSituacao: node[7], endereco: node[8], CEP: node[9], municipio: node[10], UF: node[11], tel: node[12], email: node[13]})

Плохо то, что файлы nioneo_logical.log имеют какую-то странную кодировку, которую не может понять ни один текстовый редактор. Я вижу только eÿÿÿÿ414141, ÿÿÿÿÿÿÿÿ и т. д. Файл messages, в свою очередь, заканчивается сотнями предупреждений о сборке мусора, вроде этих:

2015-02-05 17:16:54.596+0000 WARN  [o.n.k.EmbeddedGraphDatabase]: GC Monitor: Application threads blocked for 304ms.
2015-02-05 17:16:55.033+0000 WARN  [o.n.k.EmbeddedGraphDatabase]: GC Monitor: Application threads blocked for 238ms.
2015-02-05 17:16:55.471+0000 WARN  [o.n.k.EmbeddedGraphDatabase]: GC Monitor: Application threads blocked for 231ms.

Я нашел несколько связанных вопросов но это не совсем то, что я ищу.

Что мне не хватает?

05.02.2015

  • не могли бы вы добавить свою схему и запрос, который вы используете для загрузки csv 05.02.2015
  • Схемы нет: база данных начинается пустой, и узлы, которые я пытаюсь загрузить, — это все, что есть на данный момент. Код, который я использую для загрузки CSV, в свою очередь, находится в вопросе выше (блок кода, который начинается с USING PERIODIC COMMIT...). 05.02.2015
  • Вы пробовали это в оболочке? 06.02.2015
  • Неа. Может ли это иметь значение? Тогда я попробую. 06.02.2015
  • эти файлы журналов являются логическими журналами (журналы записи для транзакций) файлы журналов, которые вы ищете, это data/log/*.log и data/graph.db/messages.log 06.02.2015
  • Тиаго, не могли бы вы поделиться своим набором данных? Если да, отправьте его Майклу на neo4j.com. 25.08.2015
  • Извините, Майкл, я не могу этого сделать - это личные данные, такие как номера телефонов и (бразильский эквивалент) SSN (я работаю в правительстве). Кроме того, извините, я увидел ваше сообщение только сейчас - я был на собраниях весь день. 26.08.2015

Ответы:


1

Браузер — худший выбор для запуска такого импорта, в том числе из-за тайм-аутов http.

Достаточно оперативной памяти помогает, а также быстрый диск.

Попробуйте использовать bin/Neo4jShell.bat, который подключается к работающему серверу. И лучше всего убедиться, что файл CSV доступен локально.

эти файлы nioneo.*log являются логическими журналами (упреждающие журналы для транзакций)

файлы журналов, которые вам нужны, это data/log/*.log и data/graph.db/messages.log

Что-то еще, что вы можете пожалуйста сделать, это открыть Browser-Inspector, перейти на вкладку Network/Requests и повторно запустить запрос, чтобы вы могли получить необработанный HTTP-ответ, мы просто обсудили это и попытаемся в будущем выгрузить его прямо на консоль JS.

06.02.2015
  • Хорошо, я попробую оболочку и отчитаюсь. 06.02.2015
  • Я переключился на интерфейс оболочки и на свой MacBook (у него больше оперативной памяти — 16 ГБ, диск — SSD, а Neo4j кажется лучше документирован, когда речь идет о Linux/OSX). До сих пор нет радости. Я не получаю никаких сообщений об ошибках, но через некоторое время Neo4j кажется зависшим - ничего не было записано на диск со вчерашнего 5 утра (к этому времени папка базы данных достигла 4,85 ГБ). По прошествии этого времени все, что осталось в файле messages.log, — это набор [org.neo4j]: GC Monitor: Application threads blocked for {200-700}ms. сообщений. 08.02.2015
  • На этот раз я позволил приложению динамически устанавливать кучу и не настраивал параметры сопоставления памяти, но я все еще использую периодические коммиты, поэтому я думаю, что у меня не должно возникнуть никаких проблем. Я буду гуглить и настраивать еще пару дней, надеюсь, когда-нибудь я это выясню. 08.02.2015
  • Хорошо, на следующей неделе у меня должен быть сервер со 128 ГБ ОЗУ — это должно выполнить свою работу. 10.02.2015
  • Исправлена! Я продолжал настраивать отображение памяти и размер кучи, и, наконец, у меня все заработало — с помощью оболочки и импортного шифра. @Michael Hunger, большое спасибо за помощь и за создание инструментов neo4j-shell! 11.02.2015
  • Не требовалось 128 ГБ ОЗУ, это работало на моем 16 ГБ MacBook. 11.02.2015
  • Я действительно не понимаю, почему исходный оператор load csv не работал на вашем Mac, по крайней мере, мне он кажется совершенно нормальным. Я бы хотел, чтобы он просто извлекал данные CSV, как я объясняю здесь: neo4j.com /разработчик/руководство-импорт-csv 14.02.2015
  • Ничего не отображается, использование памяти и ЦП продолжает увеличиваться, затем у меня заканчивается память. Если я ограничиваю количество строк, то строки отображаются - и выглядят правильно (это личные данные многих людей, поэтому я не могу ими поделиться). Если я использую USING PERIODIC COMMIT, я получаю сообщение об ошибке, в котором говорится, что я не могу использовать это с командой без обновления. Итак, я не понимаю, почему import-cypher работал, а LOAD CSV - нет. Может быть, что-то связанное с ИСПОЛЬЗОВАНИЕМ PERIODIC COMMIT? 21.02.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..