2015-03-11 3 views
0

Я работаю над импортером файлов RDF, но у меня проблема, у моих файлов данных есть дубликаты узлов. По этой причине я использую большие идентификаторы, чтобы вставлять узлы, используя пакетный вставщик, но процесс медленный. Я видел это post, когда Майкл рекомендует использовать индекс, но процесс остается медленным.Neo4J Batch Inserter медленный с большими идентификаторами

Другим вариантом было бы объединить дублирующие узлы, но я думаю, что в Neo4J нет автоматического варианта. Я ошибаюсь?

Может ли кто-нибудь мне помочь? :)

Спасибо!

+0

Пожалуйста размещать выборочные данные наряду с код, который вы используете для импорта. – FrobberOfBits

ответ

0

В импортере партии CSV нет дублирующей обработки (это запланировано для следующей версии), так как это нетривиально, а память дорогая.

Лучше не дублировать на вашей стороне.

Не используйте идентификаторы, поставляемые извне, как идентификаторы узлов, которые могут стать большими с самого начала, которые просто не работают. Используйте эффективную карту (например, trove), чтобы сохранить соответствие между вашим ключом и идентификатором узла.

Я обычно использую двухпроходный и массив для него затем сортировок массива, индекс массива становится узловым идентификатором и после сортировки вы можете сделать еще один проход, который обнуляет-дубликаты записи

0

Совершенные :) Эти данные будут иметь следующую структуру:

chembl_activity: CHEMBL_ACT_102540 Bao: BAO_0000208 Bao: BAO_0002146.

chembl_document: CHEMBL1129248 cco: hasActivity chembl_activity: CHEMBL_ACT_102551.

chembl_activity: CHEMBL_ACT_102540 cco: hasDocument chembl_document: CHEMBL1129248.

Каждая линия соответствует связи между двумя узлами, и мы могли видеть, что узел chembl_activity: CHEMBL_ACT_102540 дублируется.

Я хотел сохранить как id хэш-код имени узла, но этот хэш-код является очень большим числом, которое замедляет процесс. Поэтому я мог проверить, что идентификаторы только создают связь, а не узлы.

Спасибо за все! :)

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