当我们与Talend ETL集成并处理数百万条记录时,Drools非常慢

时间:2014-03-10 13:33:26

标签: drools drools-guvnor drools-fusion drools-flow

我们已经使用了大约30个具有多个条件的规则。我们假设Drools取一条记录并将其与记录进行比较,然后给出每条记录的输出。所以处理100万条记录的时间大约是4小时。我们不能批量处理记录。我的意思是大量说并缩短处理时间。请帮我解决这个问题。谢谢你的回复。

1 个答案:

答案 0 :(得分:0)

在一个批次中插入1M事实是一个非常糟糕的策略(除非你需要找到批次中的组合)。该文档清楚地表明,所有工作(至少在5.x中)都是在插入和修改期间完成的。 (据报道6.x是不同的,但是不必要地用大量的物品填满你的记忆仍然是不好的做法。)

只需插入一些合适的数字,然后调用fireAllRules()并处理(传输,...)结果。

确保工作记忆中没有“死库存” - 这样也会减慢你的速度。