问题陈述: 试图评估的Apache弗林克建模先进的实时低延迟分布分析阿帕奇弗林克复杂的分析数据流设计与挑战
使用案例摘要: 的仪器I1提供复杂的分析,I2 ,I3 ...等各有产品定义P1,P2,P3;配置用户参数(动态)U1,U2,U3 &需要流媒体市场数据M1,M2,M3 ... 仪器分析功能(A1,A2)在计算复杂性方面复杂,其中一些可能需要300-400ms但可以并行计算。 从上面清楚地看到,市场数据流将比分析功能&需要消耗最新的一致市场数据进行计算快得多(< 1ms)。 下一个挑战是结合流媒体市场数据和仪器分析结果(例如价格或收益)的多个Dependendant富集函数E1,E2,E3(例如Risk/PnL) 最后一个挑战是计算的一致性 - 因为函数A1可能比A2快并且需要来自特定市场输入的一致的所有仪器结果。
计算格拉夫依赖性的例子(它扩展到数百文书& 10-15市场数据源):
在上面的情况下,图像是不可见的,曲线的依赖流是这样的:
- M1 + M2 + P1 => A2
- M1 + P1 => A1
- A1 + A2 => E2
- A1 => E1
- E1 + E2 =>结果号码
问题:这些计算的数据流
正确的设计/模型,目前我使用的(P1 + M1)ConnectedStreams,另一种方法可以是使用迭代模型喂养相同文书静态数据到其自身再次?
由于分析功能(A1)比市场数据(M1)流式传输速度慢很多,因此只能使用计算中最新的市场数据事件。 因此需要为下一次迭代保留那些陈旧的市场数据驱逐在那里没有价值不可用(如LRU缓存)
需要同步不同的时间复杂度/归属关系函数执行,这样重复2开始,只有当一切都在迭代1已完成
有趣的是,事件时间可以设置为迭代次数,有没有例子/参考? 我以相当复杂的方式使用ConnectedIterativeStreams完成了PoC,因此可能会有所帮助。 如果我可以简化上面的广泛查询 - 希望一致地执行一个DAG,其中一些节点使用外部数据。 外部数据变化非常快<1ms,某些DAG功能可能会变慢〜100ms。 为了消费的一致性,我应该在迭代开始时将外部市场数据明确复制到缓存中,还是我们可以直接将市场数据的快照与DAG迭代编号关联起来? –