首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时数据采集和离线处理

实时数据采集和离线处理
EN

Stack Overflow用户
提问于 2016-05-08 06:23:20
回答 1查看 455关注 0票数 0

我有源源不断的数据。我想对数据进行少量的实时处理(主要是压缩、滚动一些数据,不管需要做什么),然后存储数据。大概没问题。HDF5文件格式应该做得很好!OOC数据,没问题。皮特茅斯。

现在麻烦来了。偶尔,作为一个完全独立的过程,数据仍在收集中,我想要执行涉及数据(订单分钟)的耗时计算。这涉及到读取我正在写的同一份文件。

人们是怎么做到的?

当然,读一个你目前正在写的文件应该是很有挑战性的,但似乎它在过去一定已经出现了,人们已经考虑了某种巧妙的解决方案--或者至少是一种自然的解决方案。

部分解决办法:

  1. 看来HDF5-1.10.0具有单写、多读的SWMR功能.这似乎正是我想要的。我找不到这个最新版本的python包装器,或者如果它存在,我无法让Python与正确版本的hdf5对话。这里的任何提示都将受到欢迎。我用的是Conda包管理器。
  2. 我可以想象写入缓冲区,缓冲区偶尔会被刷新并添加到大型数据库中。如何确保在执行此操作时不会丢失经过的数据?

这似乎在计算上也很昂贵,但也许无法解决这一问题。

  1. 收集更少的数据。那有什么好玩的?
EN

回答 1

Stack Overflow用户

发布于 2016-05-08 06:59:11

我建议您看看如何将Apache Kafka添加到管道中,它可以充当数据缓冲区,并帮助您将收集到的数据上完成的不同任务分离开来。

管道实例:

原始数据===> kafka主题(raw_data) ===>小处理====> kafak主题(light_processing) ===>从light_processing主题读取并写入db或文件的进程

同时,您可以使用另一个进程读取来自light_processing topic或任何其他主题的相同数据,并进行繁重的处理等等。

如果light processingheavy processing都用相同的groupId连接到kafka主题,那么数据将被复制,两个进程将得到相同的流。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37096905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档