簡體   English   中英

Neo4j csv 數據攝取節點正在復制

[英]Neo4j csv data ingestion nodes getting replicated

我正在嘗試將 csv 文件攝取到 neo4j 中。 我能夠正確添加屬性,但是當我創建關系時,節點會被復制。 我正在使用的 cypher 查詢

LOAD CSV WITH HEADERS FROM "file:///column_meta.csv" AS csv
CREATE (a:db { db_name: csv.table_schema})
CREATE (b:table {table_name: csv.table_name})
CREATE (c:column {col_name: csv.col_name, col_desc:csv.col_comment})

MERGE (a)<-[:belongs_to]-(b)
MERGE (b)<-[:has]-(c)

這里正在創建節點和關系,但它們中的每一個都是分開的,而我正在考慮創建相互依賴的關系,例如 db_name->table_name->col_name。 誰能指出我做錯了什么?

嘗試這個:

MERGE可以在全局(有約束)或現有節點的上下文中唯一地創建數據

LOAD CSV WITH HEADERS FROM "file:///column_meta.csv" AS csv
MERGE (a:db { db_name: csv.table_schema})
MERGE (a)<-[:belongs_to]-(b:table {table_name: csv.table_name})
MERGE (b)<-[:has]-(c:column {col_name: csv.col_name})
ON CREATE SET c.col_desc=csv.col_comment

確保在:db(db_name)上創建約束並在:table(table_name):column(col_Name)上創建索引

試試這個例子:

--Load Order
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Order.csv' AS line
WITH line
Merge(O:OrderInformation{name:line.orderID,orderID:line.orderID})
Return Count(*);

--Load Customer
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Customer.csv' AS line
WITH line
Merge(C:Customer{name:line.customerName,customerID:line.customerID,customerName:line.customerName})
Return Count(*);

--Load Order and Customer Relationship
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Order.csv' AS row
WITH row
MATCH (O:OrderInformation {name:row.orderID}), (C:Customer {customerID:row.customerID})
//now create a relationship between them
CREATE (C)-[:ORDERS]->(O);

希望能幫助到你!

問候, 維沙爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM