【发布时间】:2019-04-26 23:28:39
【问题描述】:
我对流和批处理的世界还很陌生,并且试图理解概念和语言。诚然,我的问题的答案很可能众所周知,很容易找到,甚至在 SO 上回答了一百次,但我找不到它。
背景:
我正在从事一个大型科学项目(核聚变研究),我们在实验运行期间产生了大量的测量数据。这些数据主要是带有纳秒时间戳标记的样本流,其中样本可以是任何东西,从单个的 ADC 值,通过这样的数组,通过深度结构化的数据(从 1 位布尔值到 64 位双精度的多达数百个条目浮动)到原始高清视频帧甚至字符串文本消息。如果我理解正确的常用术语,我会在很大程度上将我们的数据视为“表格数据”。
我们主要使用自制软件解决方案,从数据采集到简单的在线(流式)分析(如缩放、二次采样等)到我们自己的数据存储、管理和访问设施。
鉴于操作的规模和维护所有这些实施的工作量,我们正在研究使用标准框架和工具来完成更多任务的可能性。
我的问题:
尤其是在这个阶段,我们面临着对实时/在线/实时数据以及“历史”数据的“事后”离线/批量分析越来越复杂(自动和手动)数据分析的需求.在此努力中,我试图了解现有的分析框架(如 Spark、Flink、Storm 等)(可能由 Kafka、Pulsar 等消息队列支持)是否以及如何支持一种场景,其中
- 数据流入/流入平台/框架,附加标识符,如 URL 或 ID 等
- 平台与集成或外部存储交互,以保存与标识符关联的流数据(多年)
- 分析流程现在可以透明地查询/分析由标识符和任意(打开或关闭)时间窗口寻址的数据,并且框架提供数据批次/样本用于分析,无论是来自后端存储还是来自数据采集的实时分析
简单地将在线数据流式传输到存储中并从那里查询似乎没有选择,因为我们需要原始数据和分析数据来进行实时监控和实验的实时反馈控制。 此外,让用户以不同的方式查询实时输入信号或历史批次也不理想,因为我们的物理学家大多不是数据科学家,我们希望让这些“技术”远离他们,理想情况下使用完全相同的算法应该用于分析新的实时数据和以前实验的旧存储数据。
网站注释:
- 我们谈论的是每秒 10 千兆比特范围内的 peek 数据负载,这些负载会以秒到几分钟的长度突然增加 - 候选人可以处理吗?
- 我们正在使用纳秒分辨率的时间戳,甚至考虑 pico - 如果我理解正确,这会对可能的候选者列表造成一些限制?
如果有人能够理解我的问题并为我阐明这个话题,我会非常高兴:-)
非常感谢和亲切的问候, 别波
【问题讨论】:
标签: apache-spark apache-flink apache-storm apache-pulsar