简体   繁体   English

如何存储实时数据

[英]How to store real time data

I am looking for a way (database ? data file ?) to store a large amount of real time data. 我正在寻找一种方法(数据库?数据文件?)来存储大量的实时数据。 There can be 20,000 points each seconds (time + 32bits data). 每秒可以有20,000点(时间+ 32位数据)。 To avoid 20K samples per seconds, I can buffer it (because of 32bits, it would not be too much memory consumming to buffer). 为了避免每秒20K样本,我可以缓冲它(因为32位,缓冲区的内存不会太多)。

I then must be able to read it while still recording data. 然后我必须能够在仍然记录数据的同时阅读它。 I saw that kdb+ would be a good fit, but the solution must be open source and work with C# and run on the Windows OS. 我看到kdb +非常适合,但解决方案必须是开源的,并且使用C#并在Windows操作系统上运行。

Thanks. 谢谢。

Look at CEP (complex event processing) systems like Microsoft StreamInsight . 查看Microsoft StreamInsight等CEP(复杂事件处理)系统。 Here is developer guide. 是开发人员指南。

You are dead. 你死了。 Point. 点。 There IS NO open source solution that does what you want. 没有开源解决方案可以满足您的需求。 The requirements of open source + c# basically kill all available solutions. 开源+ c#的要求基本上杀死了所有可用的解决方案。

MySQL has SOME databases that are good for time series, sort of (storage systems). MySQL有一些数据库,它们适用于时间序列,类型(存储系统)。 You could try thsoe. 你可以尝试thsoe。

That said, tuning SQL Server to accept 200.000 inserts is not that hard. 也就是说,调整SQL Server以接受200.000插入并不难。 I do 80.000 now and I know I have issues on the cpu timing side (virtual machine) that I will soon resolve, my discs are not busy, nor is the CPU. 我现在做80.000而且我知道我在cpu计时方面(虚拟机)有问题,我很快就会解决,我的光盘不忙,CPU也没有。

Any time you hit the disk, you'll have a hard time keeping up with that amount of events. 无论何时遇到磁盘,您都会很难跟上这些事件。 Like one of the previous posters said, you should look at a CEP system such as StreamInsight. 就像之前的海报所说的那样,你应该看一下CEP系统,比如StreamInsight。 If you are a C# developer, SI will be a good fit. 如果您是C#开发人员,SI将非常适合。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM