Orientdb ETL更新Vertex或只添加边缘

时间:2015-10-10 21:43:16

标签: orientdb

我有3个CSV文件要加载到OrientDB图表中。

  • 产品
  • 购买

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属性添加到Vertex,但实际操作是Vertex的INSERT)。有没有办法使用ETL更新Vertex?

RGDS,

弗朗西斯

1 个答案:

答案 0 :(得分:1)

带有这些变换器的ETL json应该从purchases.csv导入“Purchase”边缘并更新每个购买产品的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”,“Person”等)可能因您的数据库架构而有所不同。