从CSV到GraphDB

2022-06-23 00:00:00 专区 节点 导入 汇入 内文

目录

内文

一、目标:

二、输入:

三、执行:

四、输出:

五、参考:

内文
一、目标:
从csv档汇入Graph Db(Neo4j、ArangoDB、OrientDB)Couple

二、输入:
PERSON-资料

Relationships (parent,spouse) -关系

三、执行:
Neo4j

query

POST /db/data/transaction/commit(默认数据库),/db/mydb/tx/commit

{

"statements" :

[

{

"statement" : "match (n:PERSON {ID:$Id})-[r:PARENT|SPOUSE *..3] -(x) return * limit 100",

"parameters" : {

"nodeId" : "${id}"

},

"resultDataContents" : [ "row", "graph" ]

}

]

}

import

"bin/neo4j-admin import \

--nodes=import/node_a--relationships=import/rel_a \

--relationships

=import/rel_b \

--skip-bad-relationships=true \

--skip-duplicate-nodes=true \

--database= mydb"

ArangoDB

查询

POST /_api/cursor

{

"query" : "FOR n IN PERSON FILTER n.ID=='${id}' FOR v, e, p IN 1..3 ANY n GRAPH myGraph LIMIT 100 RETURN p ",

"count" : true

}

导入节点

bin/arangoimp --file "/path/file.csv" \

--type csv \

--collection "NODE" \

--server.username user \

--server.password pwd \

--translate "_ID:ID=_key" \

--translate ":TYPE=type" \

--separator=","

导入边

bin/arangoimp - -file "/path/rel_file.csv" \

--type csv \

--collection "EDGE" \

--server.username user \

--server.password pwd \

--separator="," \

--translate ": START_ID=_from" \

--translate ":END_ID=_to" \

--translate ":TYPE=type" \

--translate "LABEL=desc" \

--from-collection-prefix NODE \

--to-collection-prefix NODE \

--ignore-missing true

OrientDB

查询

GET /query/mydb/sql/

SELECT FROM (TRAVERSE in(),out() FROM (SELECT FROM PERSON WHERE ID='$id') MAXDEPTH 3)

导入节点

{

"source ": { "file": { "path": "/path/node.csv" } },

"extractor": { "csv": {} },

"transformers": [

{ "vertex": { "class" : "NODE" } }

],

"loader": {

"orientdb": {

"dbURL": "plocal:/path/databases/db",

"dbUser": "Admin",

"dbPassword": "xxxx",

" dbAutoCreate": true,

"dbType": "graph",

"classes": [

{"name": "NODE", "extends": "V"},

{"name": "EDGE", "extends": " E"}

], "indexes": [

{"class":"PERSON", "fields":["_ID_ID:string"], "type":"UNIQUE" }

]

}

}

}

导入边
{

"source": {“文件”:{“路径”:“/path/edge.csv”}},

“提取器”:{“cs v": {} },

"transformers": [

{ "merge": { "joinFieldName": "_START_ID", "lookup": "V._ID_ID", "unresolvedLinkAction": "SKIP" } },

{ "vertex" : { "class": "NODE", "skipDuplicates": true } },

{ "edge": {

"class": "EDGE",

"joinFieldName": "_END_ID",

"lookup": "V._ID_ID",

"direction": "out"

}

}

],

"loader": {

"orientdb": {

"dbURL": "plocal:/path/databases/db",

"dbUser": "Admin",

"dbPassword": "xxxx ",

"dbAutoCreate": true,

"dbType": "graph",

"classes": [

{"name": "NODE", "extends": "V"},

{"name": "EDGE", "extends ": "E"}

], "indexes": [

{"class":"NODE", "fields":["_ID_ID:string"], "type":"UNIQUE" }

]

}

}

}

ArangoDB需要

在shell中模式才能建立较复杂的图,

汇入csv 时需需要关系要与节点的对应关系,

可以转移栏位名称

OrientDB

使用ETL模式汇入数据



四、输出:
neo4j




arangodb




orientdb




五、参考:
https:/ /www.arangodb.com/docs/stable/programs-arangoimport-examples-csv.html

https://www.arangodb.com/docs/stable/graphs-general-graphs.html

https://www.arangodb.com /2020/05/best-practices-for-aql-graph-queries/

https://neo4j.com/docs/operat ions-manual/current/tools/neo4j-admin-import/

https://neo4j.com/docs/operations-manual/current/tutorial/neo4j-admin-import/

https://neo4j.com/docs/http- api/current/actions/begin-a-transaction/

http://orientdb.org/docs/3.0.x/etl/Loader.html

https://orientdb.org/docs/3.1.x/misc/OrientDB-REST .html

https://stackoverflow.com/questions/33679571/how-to-use-orientdb-etl-to-create-edges-only
————————————————
版权声明:本文为CSDN博主「Jpx23」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_50215130/article/details/118219270

相关文章