2016-07-28 4 views
3

2 개의 CSV 파일에 하나의 데이터가 있고, 하나의 파일에는 정점이 있고 다른 파일에는 다른 파일의 가장자리가 있습니다. 나는 ETL을 사용하여 이것을 설정하는 방법을 연구 중이다.하지만 아직은 그렇지는 않다. 대부분 효과적이지만, 가장자리는 속성을 가지고 있으며, 제대로로드되고 있는지 확신 할 수 없다. This question는 도움이되었다하지만, 난 여전히 뭔가 ...를 누락OrientDB ETL 한 파일에 정점이 있고 다른 파일에 모서리가있는 CSV를로드합니다.

여기 내 데이터의 :

vertices.csv :

label,data,date 
v01,0.1234,2015-01-01 
v02,0.5678,2015-01-02 
v03,0.9012,2015-01-03 

edges.csv :

u,v,weight,date 
v01,v02,12.4,2015-06-17 
v02,v03,17.9,2015-09-14 

다음을 사용하여 정점을 가져옵니다.

commonVertices.json :

{ 
"begin": [ 
      { "let": { "name":  "$filePath", 
         "expression": "$fileDirectory.append($fileName)" 
         } 
      }, 
     ], 
"config": { "log": "info"}, 
"source": { "file": { "path": "$filePath" } }, 
"extractor": { "csv": { "ignoreEmptyLines": true, 
         "nullValue": "N/A", 
         "dateFormat": "yyyy-mm-dd" 
         } 
      }, 
"transformers": [ 
        { "vertex": { "class": "myVertex" } }, 
        { "code": { "language": "Javascript", 
            "code":  "print(' Current record: ' + record); record;" } 
        } 
       ], 
"loader": { "orientdb": { 
      "dbURL": "plocal:my_orientdb", 
      "dbType": "graph", 
      "batchCommit": 1000, 
      "classes": [ { "name": "myVertex", "extends", "V" }, 
         ], 
      "indexes": [] 
      } 
      } 
} 

vertices.json :

{ "config": { "log":   "info", 
       "fileDirectory": "./", 
       "fileName":  "vertices.csv" 
      } 
} 

commonEdges.json :

{ 
    "begin": [ 
     { "let": { "name": "$filePath", 
        "expression": "$fileDirectory.append($fileName)" 
       } 
     }, 
    ], 

    "config": { "log": "info" 
       }, 

    "source": { "file": { "path": "$filePath" } }, 

    "extractor": { "csv": { "ignoreEmptyLines": true, 
          "nullValue": "N/A", 
          "dateFormat": "yyyy-mm-dd" 
          } 
       }, 

    "transformers": [ 
      { "merge": { "joinFieldName": "u", "lookup": "myVertex.label" } }, 
      { "edge": { "class":   "myEdge", 
          "joinFieldName": "v", 
          "lookup":  "myVertex.label", 
          "direction":  "out", 
          "unresolvedLinkAction": "NOTHING" 
         } 
      }, 
      { "field": { "fieldNames": ["u", "v"], "operation": "remove" } } 
     ], 

    "loader": { 
     "orientdb": { 
      "dbURL": "plocal:my_orientdb", 
      "dbType": "graph", 
      "batchCommit": 1000, 
      "useLightweightEdges": false, 
      "classes": [ 
       { "name": "myEdge", "extends", "E" } 
      ], 
      "indexes": [] 
     } 
    } 
} 

edges.json :

{ 
    "config": { 
     "log": "info", 
     "fileDirectory": "./", 
     "fileName": "edges.csv" 
    } 
} 

이 같은 oetl.sh 그것을 실행하고 있습니다 :

$ oetl.sh vertices.json commonVertices.json 
$ oetl.sh edges.json commonEdges.json 

모든 실행,하지만 난 가장자리를 쿼리 할 때 ... 나는 어쩌면 그것이, OrientDB에 새로운 해요 내 가장자리의 속성을 가져 오는,하지만 난 가장자리를 쿼리 할 때 나는 무게와 날짜 필드가 표시되지 않습니다

orientdb {db=my_orientdb}> SELECT FROM myEdge 
+----+-----+------+-----+-----+ 
|# |@RID |@CLASS|out |in | 
+----+-----+------+-----+-----+ 
|0 |#33:0|myEdge|#25:0|#26:0| 
|1 |#34:0|myEdge|#26:0|#27:0| 
+----+-----+------+-----+-----+ 

가 정점 테이블 내 edges.csv하고 [날짜]에서 [무게] 필드가 포함 들판이 움츠리고있다. 이상한 방법. 달의 날은 바람직하지 않다 edge.csv 파일에서 날을 덮어하지만 달 자체도 변화 점점되지 않는다는 것을 나에게 이상한지고 : 나는 그것을 확신

orientdb {db=my_orientdb}> SELECT FROM myVertex 
+----+-----+--------+------+-------------------+-----+------+----------+---------+ 
|# |@RID |@CLASS |data |date    |label|weight|out_myEdge|in_myEdge| 
+----+-----+--------+------+-------------------+-----+------+----------+---------+ 
|0 |#25:0|myVertex|0.1234|2015-01-17 00:06:00|v01 |12.4 |[#33:0] |   | 
|1 |#26:0|myVertex|0.5678|2015-01-14 00:09:00|v02 |17.9 |[#34:0] |[#33:0] | 
|2 |#27:0|myVertex|0.9012|2015-01-03 00:01:00|v03 |  |   |[#34:0] | 
+----+-----+--------+------+-------------------+-----+------+----------+---------+ 

을 아마 간단한 비틀기, 어떤 도움이 좋을 것입니다!

답변

5

가장자리 변압기에서 가장자리의 속성을 바인딩하는 edgeFields. 예 :

희망이 있습니다.

+0

감사합니다.이 문제는 내가이 문제에 대해 가지고있는 두 가지 문제 중 하나를 해결했습니다. – TxAG98

+0

날짜 필드와 관련된 [다른 질문] (http://stackoverflow.com/questions/38702959/edge-properties-clobbering-vertex-properties-in-orientdb-from-etl)에서 후속 조치를 게시했습니다. 문제가 ... – TxAG98

관련 문제