体系结构—使用来自不同来源的输入时间序列以流式方式计算时间序列

uhry853o  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(301)

我开发并维护了一个显示度量数据的web应用程序。这些度量主要是来自传感器、可编程逻辑控制器等的具有规则分辨率的时间序列。其中一些时间序列是度量(如温度等),另一些是使用其他时间序列作为输入的计算结果。这些措施来自不同的来源,具有不同的格式、协议和可用性延迟。它们目前都是面向批处理的,但是面向流的很快就会出现。
目前,数据的导入是使用apachecamel完成的,apachecamel将数据存储到数据库中。然后,度量的计算由一个“自制”的批处理程序完成,每次完成批处理导入时,apache camel都会调用该程序,为该脚本提供导入的时间序列的开始和结束日期,以及某种名称空间,以便只处理与批处理相关的时间序列。
虽然这个解决方案目前还可以使用,但由于面向批处理,它也有缺点。我开始考虑一个更好的解决方案,以便将来改进。
更准确地说,我需要一个系统,它能够通过对输入时间序列应用数学运算来生成输出时间序列,就像

tsout = (t1+t2) / t3

考虑到输入(t1、t2、t3)不同时可用,因为它们来自不同的来源(一些来自批处理,一些来自流…)。一些计算的时间序列被用作另一些时间序列的输入。所有这些都创建了一个依赖关系图。
是否有一些设计模式、工具、框架甚至“概念”可以帮助我在数据即将到来时,以更“流式”的方式改进度量的生成/计算,分离不同的源并考虑依赖性?
我看了一些框架,比如apachekafka,flink,spark。。但我怀疑他们真的能满足我的需要。他们允许这样做 stream / event processing 但我不确定这指的是我需要做的同样的处理。
希望我的问题足够清楚,不容易解释。

camsedfj

camsedfj1#

数据库中没有这些信息吗?类似于行创建/更新/。。。时间。然后,您将拥有所有可用的数据,并且可以根据您拥有的各个字段进行自定义和比较。

相关问题