2015-06-29 2 views
4

У меня есть 2 файла csv.Добавить краевую собственность через Orientdb ETL

Person.csv

ID,PetID,Jumps 
1,101,Yes 
2,102,No 
3,103,Yes 

Pet.csv

ID,Name 
101,Dog 
102,Cat 
103,Rabbit 

Я пишу ETL, чтобы заполнить мой график с этими двумя сущностями. Я хочу добавить границу между Person и Pet как HAS_PET. И я также хочу, чтобы у этого края было свойство, называемое Jumps. Как я могу достичь этого?

Я попытался следующим образом,

{ 
    "source":{ 
     "file":{ 
      "path":"C:/Users/60886/Project/person.csv" 
     } 
    }, 


    "extractor":{ 
     "row":{ 

     } 
    }, 


    "transformers":[ 
     { 
      "csv":{ 

      } 
     }, 
     { 
      "vertex":{ 
       "class":"Person" 
      } 
     }, 
     { 
      "edge":{ 
       "class":"HAS_PET", 
       "joinFieldName":"PETID", 
       "lookup":"PET.ID", 
       "direction":"out", 
       "unresolvedLinkAction":"NOTHING" 
      } 
     } 
    ], 
    "loader":{ 
     "orientdb":{ 
      "dbURL":"remote:localhost/GratefulDeadConcerts", 
      "dbType":"graph", 
      "wal":false, 
      "tx":false, 
      "batchCommit":1000 
     } 
    } 
} 
+0

The ETL кажется правильным, что является проблемой? – Lvca

+0

Этот ETL создает Edge без проблем. Я также хочу установить свойство edge с помощью этого ETL. Прямо сейчас, этот ETL создает край HAS_PET, но мне нужны вершины HAS_PET, чтобы иметь свойство как переходы. Итак, что я могу включить в этот ETL? Спасибо – Sunny

ответ

2

В краевом трансформаторе использовании edgeFields, чтобы связать свойства в краях. Пример:

"edge":{ 
    "class":"HAS_PET", 
    "joinFieldName":"PETID", 
    "lookup":"PET.ID", 
    "direction":"out", 
    "edgeFields": { "Jumps": "${input.Jumps}" }, 
    "unresolvedLinkAction":"NOTHING" 
} 

Запомнить удалить "Переход" от вершины, после того, как ребра трансформатора, с:

"field": { "fieldName": "Jump", "operation": "remove" }, 
+1

Отлично! Большое спасибо.. – Sunny

Смежные вопросы