Neo4j Batch Inserts
Я использовал API Neo4j для пакетной вставки нескольких миллионов записей, что обычно занимало бы намного больше времени, если бы выполнялось индивидуально. Импорт завершился значительно быстрее, но я не вижу миллионы записей, которые я вставил. Сохраняет ли Neo4j какую-либо форму очереди для пакетных вставок и вставляет ли она со временем?
Если да, как я могу увидеть ход этой очереди? Я делаю подсчет и замечаю, что записи увеличиваются, но очень медленными темпами.
Я использую пакетную вставку драгоценного камня Neography ( https://github.com/maxdemarzi/neography/wiki/Batch), а код, который выполняет пакетную вставку, приведен ниже:
User.find_in_batches(batch_size: 500) do |group|
$neo4j.batch(*group.map { |user| ["create_unique_node", "users", "id", user.id, user.graph_node_properties] })
end
Под управлением Neo4j 2.1.2 Enterprise Edition на Ubuntu 12.04 LTS.
1 ответ
Правильно ли вы выключили пакетный ввод после завершения вставки?
Какую версию Neo4j и ОС вы используете?
Также убедитесь, что конфигурация вашей памяти правильная. Настройте отображение памяти для хранилища узлов и хранилища отношений правильно, см. Сообщение в блоге Рика об этом.
Это не очередь, это запись этих записей напрямую. Как вы "проверяете" и считаете? Вы не должны иметь доступ к базе данных одновременно.
Можете ли вы поделиться своим кодом?