我有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,
弗朗西斯
答案 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”等)可能因您的数据库架构而有所不同。