说我有两个流:
Stream 1: [1,3],[2,4]
Stream 2: [2,5],[3,2]
定期合并会产生一个Stream 3,如下所示:
[1,3],[2,4],[2,5],[3,2]
我想合并流,同时保留其中的顺序
发出了元组,因此如果在时间1发出[2,5]
,则发出[1,3]
时间2,时间3 [3,2]
和时间4 [2,4]
,结果流将
是:
[2,5],[1,3],[3,2],[2,4]
有没有办法做到这一点,如果是这样,怎么样?一些示例代码将是 感谢我,因为我是一个完整的三叉戟新秀,最近被推动了 进入基于三叉戟的项目。
先谢谢你的帮助,
利
答案 0 :(得分:1)
您必须使用三叉戟持久性来使用外部数据存储。我想,排序的redis应该符合你的目的。
更多信息
如果您浏览此https://github.com/nathanmarz/storm/wiki/Trident-tutorial,您可以了解如何使用memcache作为单词计数的存储。
同样,您可以在Redis上编写流备份(如果您不熟悉redis试用, http://redis.io/commands#sorted_set)。我认为redis排序集将作为您案例的目的。
如果您想要数据的持久存储,您可以考虑使用其他NOSQL解决方案,例如mongo,然后您可以随时轻松索引最终数据。这将很容易提供您想要的排序功能。而且还没有人写过mongo三叉戟,https://github.com/sjoerdmulder/trident-mongodb。
如果您仍然感到困惑,请告诉我。