收集、存储和检索大量的数字数据

2024-05-14 22:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我将要开始实时收集大量的数字数据(对于那些感兴趣的人来说,是各种股票和期货的买入/卖出/最后一次或“磁带”)。稍后将检索数据进行分析和模拟。这一点也不难,但我想高效地完成这项工作,这就带来了很多问题。我不需要最好的解决方案(无论如何,可能有很多“最佳”取决于度量标准)。我只想要一个计算机科学家会赞成的解决方案。(还是不笑?)在

(1)优化磁盘空间、I/O速度或内存?

对于仿真来说,整体速度很重要。我们希望数据的I/O(实际上是I)速度比计算引擎快,所以我们不受I/O限制。在

(2)存储文本或其他内容(二进制数字)?

<强>(3)给出了一组从(1)-(2)中选择的,有没有任何突出的语言/库组合来完成这项工作?java、python、C++或其他什么东西?

我将把这段代码归类为“写就忘了”,因此效率比代码的清晰性/紧凑性更重要。我非常非常愿意在模拟代码中使用Python(因为sim确实变化很大,需要明确)。好的Python解决方案的加分。在

编辑:这是一个Linux系统(Ubuntu)

谢谢


Tags: 数据内存代码标准度量计算机数字解决方案
3条回答
  1. 优化磁盘空间和IO速度也是一回事—现在,CPU与IO相比速度非常快,所以在存储数据之前压缩数据通常要快得多(您可能真的想这么做)。我并不认为内存扮演着重要的角色(尽管你应该使用一个大小合理的缓冲区来确保你在进行顺序写入)。

  2. 二进制文件更紧凑(因此速度更快)。考虑到数据量,我怀疑人类的可读性是否有任何价值。文本格式的唯一优点是,如果文本格式被破坏或丢失了解析代码,则更容易发现和更正。

Fame是一种常用的商业时间序列存储解决方案。在

如果你是认真的,建立你自己的将是一个很大的工作。{a2}可能是有用的,他们声称它适合于蜱数据处理,并且具有C++访问。有Python支持here。在

来自有相同问题的人的有用的现实生活经验here,包括HDF5参考文献。在

事实上,这和我正在做的很相似,就是监控玩家在游戏中对世界所做的改变。我目前正在使用一个带有python的sqlite数据库。 在程序开始时,我将磁盘数据库加载到内存中,以便快速写入程序。每一个改变都被放在两个列表中。这些列表同时适用于内存数据库和磁盘数据库。大约每更新一次,内存数据库就更新一次,一个计数器就会向上推一次。这是重复的,当计数器等于5时,它被重置,磁盘更改列表被刷新到磁盘数据库,列表被清除。我发现,如果我也将writing more设置为WOL(提前写入日志记录),这个方法效果很好。如果我每100次更新一次内存,并且磁盘计数器设置为每5次更新一次,那么这种方法可以承受大约100-300次更新。你应该选择二进制,除非你的数据源有错误,否则sense是最符合逻辑的

相关问题 更多 >

    热门问题