【发布时间】:2014-01-07 17:26:16
【问题描述】:
我正在使用 Pentaho 数据集成(Spoon,在 Kettle 之前)进行 ETL 流程。
在 Pentaho 的 Modified Javascript 步骤中,您可以设置开始、结束和转换脚本。在转换脚本中,您可以编写仅对每一行执行的代码,并且从这里我不知道如何访问前一行的数据(如果可能的话)。
我需要访问上一行,因为所有行都按产品、商店和日期(分别)排序,目标是从上一行获取手头数量并添加销售或接收的数量当前行(这将是相同的产品,相同的商店,但不同的日期)。我还需要访问上一行以将当前行的产品和商店与上一行进行比较,因为如果其中有人更改,我必须重新启动字段 quantity_on_hand (我使用名为 initial_stock 的所有列的字段来执行此操作)。
在伪代码上会是这样的(如果我没有限制在步骤上编写的代码仅针对每一行执行):
while(all_rows_processed()){
current_row.quantity_on_hand = current_row.initial_stock;
while(id_product_current_row == id_product_previous_row && id_store_current_row == id_store_previous_row){
current_row.quantity_on_hand = previous_row.quantity_on_hand + current_row.stock_variation;
}
}
这个question related 帮不了我。
任何解决我问题的想法都将不胜感激。
【问题讨论】:
标签: javascript pentaho etl data-warehouse kettle