I가 내가 그 같은 것을 보인다 추적하고있어 일부 데이터 : Label1
와 Label2
가에 고유 한 항목을 정의OrientDB의 ETL은 일치 조건에서 여러 필드를 사용하여 가장자리를 만들
Label1,Label2
Alpha,A
Alpha,B
Alpha,C
Bravo,A
Bravo,B
쌍을 이 데이터 세트.
I가 내가 Table1
에서 만든 정점에 연결할 거기에 일부 값이 다른 테이블 : I가 Data
의 항목에서 가장자리를 생성하고 싶습니다
Label1,Label2,Data
Alpha,A,10
Alpha,A,20
Alpha,B,30
Bravo,A,99
data.csv을
Node
Label1
및
Label2
필드가 모두 일치해야합니다.
이 경우
, 내가 가진 것 : 다른 question에서
Data(Alpha,A,10) ---> Node(Alpha,A)
Data(Alpha,A,20) ---> Node(Alpha,A)
Data(Alpha,B,30) ---> Node(Alpha,B)
Data(Bravo,A,99) ---> Node(Bravo,A)
그것을이 문제는 단순히 JSON 파일에 추가 "joinFieldName"항목을 추가하여 해결됩니다 나타납니다,하지만 난받지 못했습니다 내 데이터와 같은 결과.
{
"config": { "log": "info" },
"source": { "file": { "path": "./node.csv" } },
"extractor": { "csv": {} },
"transformers": [ { "vertex": { "class": "Node" } } ],
"loader": {
"orientdb": {
"dbURL": "plocal:test.orientdb",
"dbType": "graph",
"batchCommit": 1000,
"classes": [ {"name": "Node", "extends": "V"} ],
"indexes": []
}
}
}
내 data.json 파일은 다음과 같습니다 : 같은
내 node.json 파일이 보인다 나는이를 실행 한 후 나는 결과를 쿼리 할 때
{
"config": { "log": "info" },
"source": { "file": { "path": "./data.csv" } },
"extractor": { "csv": { } },
"transformers": [
{ "vertex": { "class": "Data" } },
{ "edge": { "class": "Source",
"joinFieldName": "Label1",
"lookup": "Node.Label1",
"joinFieldName": "Label2",
"lookup": "Node.Label2",
"direction": "in"
}
}
],
"loader": {
"orientdb": {
"dbURL": "plocal:test.orientdb",
"dbType": "graph",
"batchCommit": 1000,
"classes": [ {"name": "Data", "extends": "V"},
{"name": "Source", "extends": "E"}
],
"indexes": []
}
}
}
,이 출력을 얻을 :
orientdb {db=test.orientdb}> SELECT FROM V
+----+-----+------+------+------+-------------------+----+-------------+
|# |@RID |@CLASS|Label1|Label2|out_Source |Data|in_Source |
+----+-----+------+------+------+-------------------+----+-------------+
|0 |#25:0|Node |Alpha |A |[#41:0,#43:0,#47:0]| | |
|1 |#26:0|Node |Alpha |B |[#45:0] | | |
|2 |#27:0|Node |Alpha |C | | | |
|3 |#28:0|Node |Bravo |A |[#42:0,#44:0,#48:0]| | |
|4 |#29:0|Node |Bravo |B |[#46:0] | | |
|5 |#33:0|Data |Alpha |A | |10 |[#41:0,#42:0]|
|6 |#34:0|Data |Alpha |A | |20 |[#43:0,#44:0]|
|7 |#35:0|Data |Alpha |B | |30 |[#45:0,#46:0]|
|8 |#36:0|Data |Bravo |A | |99 |[#47:0,#48:0]|
+----+-----+------+------+------+-------------------+----+-------------+
9 item(s) found. Query executed in 0.012 sec(s).
올바르지 않습니다. 0, # 44 : 0, # 46 : 0, # 47 : 0 : I가 가장자리 # 42 싶지
이것은 변압기joinFieldName
항목이 OR 연산의 결과로되는 여러 추가 같다
#42:0 connects Node(Bravo,A) and Data(Alpha,A)
#44:0 connects Node(Bravo,A) and Data(Alpha,A)
#46:0 connects Node(Bravo,B) and Data(Alpha,B)
#47:0 connects Node(Alpha,A) and Data(Bravo,A)
, 하지만 여기서 'AND'를 원합니다.
누구든지 해결 방법을 알고 있습니까? 다른 StackOverflow 질문보다 다르게 무엇을하는지 잘 모르겠습니다 ...
이 문제를 해결 했습니까? 비슷한 문제가 있습니다. –
해결 방법을 찾아서 공유하는 방법을 생각했습니다. –