2015-10-10 2 views
2

У меня есть 3 файла CSV для загрузки в графе OrientDB.Orientdb ETL update Vertex или просто добавить край

  • Люди
  • продукта
  • Закупки

People.csv походит

person_id;name 
1;francesco 
2;luca 

Product.csv, как

product_id;product_name 
101;apple 
102;banana 

Purchases.csv, как

person_id;product_id;avg_price 
1;101;$1.10 
2;101;$1.08 
1;102;$5.34 

загружаю сначала все люди и продукты с 2-мя различными заданиями ETL. Каждое задание загружает вершины.

Как я могу периодически загружать края, используя OrientdbETL, поскольку люди покупают новые продукты?

Все Трансформаторы и, в частности EDGE выход OrientVertex, который может быть вставлен только LOADER шагом. (EDGE Transformer добавляет свойства EDGE к вершине, но фактическое действие является INSERT Вершины). Есть ли способ обновить Vertex с помощью ETL?

Rgds,

Франческо

ответ

1

ETL с этими JSON трансформаторов должны импортировать "Покупка" края от purchases.csv и обновить avg_price каждого приобретенного продукта.

"transformers": [ 
{ "merge": { "joinFieldName": "product_id", "lookup": "Product.id" } }, 
{ "vertex": {"class": "Product", "skipDuplicates": true} }, 
{ "edge": { "class": "Purchase", 
      "joinFieldName": "person_id", 
      "lookup": "Person.id", 
      "direction": "in" 
     } 
    }, 
{ "field": { "fieldNames": ["person_id", "product_id"], "operation": "remove" } } 
] 

класс и имена атрибутов ("Product.id", "лицо", и т.д.) могут быть отличаться в зависимости от DB схемы.

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