我想分批处理元组,我想到了使用Trident API。但是,我没有在此处执行批量的操作。每个元组都是单独处理的。我在这里需要的只是一次语义,这样每个元组只处理一次,这是使用Trident的唯一原因。
我想存储处理哪个元组的信息,以便在重放批处理时,在已经处理过元组时不会执行元组。
拓扑包含 persistentAggregate()方法,但它需要一些聚合操作,但我没有任何聚合操作在一组元组上执行,因为每个元组都是单独处理的。
这里,元组经历的功能太小而无法执行。因此,我希望分批处理它们,以节省计算资源和时间。
现在,如何编写一个拓扑,它将元组作为批处理使用但仍然不执行任何批处理操作(如字数)?
答案 0 :(得分:0)
看起来你需要的是partitionPersist。 应该提供一个州(或州工厂),要保持的字段和更新程序。 出于开发目的,检查MemoryMapState - 它基本上是内存中的hashmap。 对于生产,您可以使用cassandra - 查看https://github.com/hmsonline/storm-cassandra-cql
上的示例