私は通信グラフを作成しています。
各メッセージにはmsgidがあり、各ユーザーにはユーザーIDがあります。
私はすでにメッセージ頂点を作成しましたが、ユーザー頂点とメッセージ頂点をユーザー頂点に接続するエッジを作成したいと思います。
ユーザーは複数のメッセージを受け取ることができます(明らかに)。
私のファイルが含まれています
MSGID、ユーザーID、(および他のいくつかの情報私はエッジに割り当てます)OrientDB ETL:重複した頂点をスキップしてエッジを作成する方法
私が午前isssueユーザーが複数のメッセージを取得することができますので、私のファイルに私は(重複ユーザーIDを持っているということです)、私はskipDuplicatesので、ユーザーIDを持つ別の頂点を作成したくないです。しかし、私が重複をスキップする場合、エッジも作成されません。私は、各エッジが1つのメッセージを表すのと同じユーザー頂点に複数のエッジが必要です。
ユーザの頂点を一意に保つが、エッジを作成するにはどうすればよいですか?
私が上で詳述したものを除いて、うまく動作する私の現在のETL .jsonファイル。
{
"source": { "file": { "path": "msgs.txt" } },
"extractor": { "row": {} },
"transformers": [
{ "csv": {"separator": "\t"} },
{ "vertex": { "class": "user", "skipDuplicates": true } },
{ "edge": { "class": "sent_to", "joinFieldName": "msgid", "lookup":"message.id","direction": "in" } },
"edgeFields": { "n": "${input.n}" }
],
"loader": {
"orientdb": {
"dbURL": "remote:/localhost/databases/communication",
"dbType": "graph",
"classes": [
{"name": "user", "extends": "V"},
{"name": "message", "extends": "V"},
{"name": "sent_to", "extends": "E"}
], "indexes": [
{"class":"user", "fields":["id"], "type":"UNIQUE" }
]
}
}
}
入力データの数行を投稿できますか? – Pete