ActivePivot の読み込みに使用する CSV ファイルには、レコードの値を計算するために乗算する必要がある 2 つのフィールド (価格 * 数量) があります。
トピックとチャネルで CSV ソースを使用しています。この計算はどこで実行できますか?
ActivePivot の読み込みに使用する CSV ファイルには、レコードの値を計算するために乗算する必要がある 2 つのフィールド (価格 * 数量) があります。
トピックとチャネルで CSV ソースを使用しています。この計算はどこで実行できますか?
ColumnParser の compute メソッドをオーバーライドする必要があります。以下を参照してください。次の例では、QuantitySold と SellingPricePerUnit を取得し、結果を Sales 列に追加します。店舗定義に Sales 列を追加することを忘れないでください。
@Bean
@DependsOn(value="csvSource")
public CSVMessageChannelFactory csvChannelFactory() {
CSVMessageChannelFactory channelFactory = new CSVMessageChannelFactory(csvSource(), datastore);
channelFactory.setCalculatedColumns(ORDERS_TOPIC, DatastoreConfig.ORDERS, Arrays.<IColumnCalculator>asList(
//derive new fields
new ColumnParser("Sales", "double"){
@Override
public Object compute(IColumnCalculationContext context) {
Long qty = (Long) context.getValue("QuantitySold");
Double price = (Double) context.getValue("SellingPricePerUnit");
return (qty == null || price == null) ? null: qty*price;
}
}
));
return channelFactory; }