2015-10-10 52 views
2

我有3個CSV文件加載OrientDB圖。Orientdb ETL更新頂點或只是添加邊緣

  • 人民
  • 產品
  • 購買

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)。有沒有辦法使用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模式可能會有所不同。