我发现了一些与此相同的问题,但它们没有详细说明存储数据的性质,查询方式等等……所以我认为这样做是值得发布的.
我的数据很简单,有三个字段:
– “datetimestamp”值(日期/时间)
– 两个字符串,“A”和“B”,两者都是< 20个字符 我的应用程序非常庞大(每秒数百个).所有写入都是新记录;插入后,数据永远不会被修改. 常规读取每隔几秒发生一次,用于填充一些近实时仪表板.我查询日期/时间值和其中一个字符串值.例如获取datetimestamp在特定范围内的所有记录,字段“B”等于特定搜索值.这些查询通常每个返回几千条记录. 最后,我的数据库不需要无限增长;我将通过手动删除它们或使用缓存过期技术(如果数据库支持)来查看10天内清除记录. 我最初在MongoDB中实现了这个,但没有意识到它处理锁定的方式(写块读取).随着我的扩展,我的查询花费的时间越来越长(现在是30秒,即使有正确的索引).现在,凭借我所学到的知识,我相信大量的写作会使我的读数匮乏. 我已经阅读了kkovacs.eu帖子,比较了各种NoSQL选项,虽然我学到了很多东西,但我不知道我的用例是否有明显的赢家.我非常感谢熟悉这些选项的人的推荐.
提前致谢!
在系统记录过程控制测量之前,我遇到过这样的问题.这是使用5 MHz IBM PC完成的,因此绝对有可能.用例更加多样化 – 按分钟,小时,八小时轮班,一天,一周,一个月或一年进行汇总 – 因此系统记录了所有原始数据,但也会针对最常见的查询进行汇总(这是平均五分钟).对于您的仪表板,似乎五分钟聚合也是一个主要目标.
也许这可以通过为每个输入流编写一对文本文件来解决:一个包含所有原始数据;另一种是多分钟聚合.仪表板将忽略原始数据.当然,可以使用数据库来做同样的事情.但简化应用程序可能意味着不需要RDB.更易于设计和维护,更易于安装在微控制器,嵌入式系统等上,或者在共享主机上更友好的邻居.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。