如何存储实时数据
我正在寻找一种方法(数据库?数据文件?)来存储大量实时数据。 每秒可以有20,000个点(时间+32位数据)。 为了避免每秒 20K 个样本,我可以对其进行缓冲(因为是 32 位,缓冲不会消耗太多内存)。
然后我必须能够在记录数据的同时读取它。我发现 kdb+ 是一个不错的选择,但该解决方案必须是开源的,并且可以使用 C# 并在 Windows 操作系统上运行。
谢谢。
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).
To avoid 20K samples per seconds, I can buffer it (because of 32bits, it would not be too much memory consumming to buffer).
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.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你死了。观点。没有开源解决方案可以满足您的需求。开源+c#的要求基本上扼杀了所有可用的解决方案。
MySQL 有一些适合时间序列的数据库(存储系统)。你可以尝试一下。
也就是说,调整 SQL Server 以接受 200,000 次插入并不那么困难。我现在做了 80.000,我知道我在 cpu 计时方面(虚拟机)有问题,我很快就会解决,我的磁盘不忙,CPU 也不忙。
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.
MySQL has SOME databases that are good for time series, sort of (storage systems). You could try thsoe.
That said, tuning SQL Server to accept 200.000 inserts is not that hard. 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.
查看 CEP(复杂事件处理)系统,例如 Microsoft StreamInsight。 此处是开发人员指南。
Look at CEP (complex event processing) systems like Microsoft StreamInsight. Here is developer guide.
每当您访问磁盘时,您都将很难跟上如此数量的事件。正如之前的一位发帖人所说,您应该考虑使用 StreamInsight 等 CEP 系统。如果您是 C# 开发人员,SI 将非常适合。
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. If you are a C# developer, SI will be a good fit.