У меня есть 2 файла csv: Entity
, с 2.8M records и Rships
, с 4.2M records. Entity
имеет список ENT_ID
и PARENTID
. Если ENT_ID
имеет PARENTID
'0', это означает, что нет родителя. Если да, то это будет один из ENT_ID
сверху. Мне нужно создать связь ENT_ID
и PARENTID
. Я попробовал загрузить это с помощью инструмента импорта, доступного для сообщества сообщества Neo4j2.3.4, однако я продолжал получать очень много ошибок. В итоге мне удалось загрузить его с помощью запроса csv cypher load.neo4j создать отношения, не дающие результата
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///C:/...(read file address here)/Entities.txt" AS Entity FIELDTERMINATOR '|'
CREATE (n:Entity{ENT_ID: Entity.ENT_ID,NAME: Entity.NAME,ENTRYTYPE: Entity.ENTRYTYPE, PARENTID: Entity.PARENTID,ENTRYCATEGORY: Entity.ENTRYCATEGORY,ENTRYSUBCATEGORY: Entity.ENTRYSUBCATEGORY,COUNTRY: Entity.COUNTRY,PWC_ADL_ID: Entity.PWC_ADL_ID })
Я создал отношения между ParentID и ENTID, используя следующие:
PROFILE
MATCH(Entity)
MATCH (a:Entity {ENT_ID : Entity.ENT_ID})
WITH Entity, a
MATCH (b:Entity {ENT_ID : Entity.PARENTID})
WITH a,b
MERGE (a)-[r:RELATION]->(b)
Теперь я загрузил файл CSV для отношений, как:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///C:/.../EntitiesRelationships.txt" AS Rships FIELDTERMINATOR '|'
CREATE (n:Rships{RID: Rships.RID,Ent_IDParent: Rships.Ent_IDParent,Ent_IDChild: Rships.Ent_IDChild, RelationID: Rships.RelationID })
Я создал индекс на обоих томов CSV :
CREATE INDEX ON :Entity(ENT_ID)
CREATE INDEX ON :Rships(Ent_IDParent)
CREATE INDEX ON :Rships(Ent_IDChild)
До здесь выше код работает нормально, хотя она занимает почти день, чтобы сделать так:
Теперь, когда я пытаюсь создать отношения с помощью запроса:
PROFILE
Match(Rships)
MATCH(a:Rships {ENT_IDParent: Rships.ENT_IDParent})
WITH Rships, a
MATCH(b:Rships {ENT_IDParent: Rships.ENT_IDChild})
WITH a,b
MERGE (a)-[r:RELATION]->(b)
Этот запрос продолжает работать в течение примерно часа без каких-либо результатов.
Справка будет принята с благодарностью.
Благодаря
Так что я в конечном итоге следующие тыс как вы уже упоминали. Он работал нормально. Так что для отношений. У меня есть 30 разных типов отношений, каждый из которых изображен на основе RelationID. Есть ли способ настроить ярлык для каждого типа отношений? также есть способ, которым я мог бы загрузить другую метку узла, которая содержит RelationID, тип отношения и тип соединения обеих таблиц. Большое спасибо за помощь. Очень ценю это. – Sharath
Кроме того, импорт по-прежнему занимает около 35 минут, всего лишь для первого заявления. – Sharath