2015-05-22 18 views
0

У меня проблема с производительностью с объемной вставкой в ​​neo4j.Загрузить производительность слияния csv

У меня есть файл csv с 400k строк, который производит около 3,5 миллионов строк, и я использую команду LOAD CSV, с последней версией на neo4j.

Я заметил, что когда я создаю инструкцию пользователя, загрузка занимает около 4 минут и без индексов - всего около 3,5 минут.

Мой первый вопрос, является ли это нормальная скорость узлов/мин.

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

Так 2 дополнительные вопросы будут:

ли НАГРУЗКИ CSV рекомендуется для лучшей производительности нагрузки,

, а также: Что я могу сделать, сделать по этому вопросу производительности?

EDIT:

вот запрос:

LOAD CSV WITH HEADERS FROM 'file:///import.csv' AS line FIELDTERMINATOR '|' 
MERGE (session :Session { session:line.session }) 
MERGE (hit :Hit { key:line.key,date_time:line.date_time,session:line.session }) 
MERGE (user :User { id:line.user_id }) 
MERGE (session2 :Session2 { session2:line.session2 }) 
MERGE (country :Country{ name:line.country}) 
MERGE (tv :TV { name:tv.Model }) 
MERGE (transfer_protocol :Protocol { name:line.transfer_protocol }) 
MERGE (os :OS { name:line.os_name ,version:line.os_version, row_key:line.os_name+line.os_version}) 

Образец: session_guid | hit_key_guid | useridguid | session2_guid | PANASONIC | TCP | ANDROID | 5,0

сеанс, пользователь, session2, country, tv, transfer_protocol и os имеет уникальное ограничение, а hit имеет индекс

** session1 и session 2 может иметь много ударов (от 1 до 100, в среднем 5) hit_key_guid отличается для каждой строки csv

он работает очень медленно, довольно сильная машина, и каждая 1000 строк может занимать до 10 секунд.

также проверил с профилировщика, и нет «Eager»

благодаря

Лиор

ответ

0

Похоже, что на стороне сервера код, не создавать индексы должным образом, и как только они были созданы, нагрузка сделана в хорошем исполнении

2

Вы должны разделить модель данных, ваши индексы, ваш НАГРУЗКИ CSV запрос, а также выходные данные профиля. Используете ли вы PERIODIC?

Убедитесь, что вы не участвуете в нетерпеливый вопрос, смотрите здесь:

http://neo4j.com/developer/guide-import-csv/#_load_csv_for_medium_sized_datasets http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/

В целом для набора данных вашего размера НАГРУЗКА CSV в порядке, от 10Х строк я, наверное, переключитесь на import-tool.

+0

привет @ Michael-вешалке добавлена ​​в исходном сообщение, спасибо! –

Смежные вопросы