从SQL到TSDB进行处理时间序列的预期性能差距是什么?



我们在使用SQL数据库的情况下,将大约1小时的高频指标的单个节点存储(几个k插入每秒)。我们迅速遇到了I/O问题,这些问题不仅可以简单地处理,而且我们愿意花时间解决绩效问题。

我建议切换到一个专门的数据库来处理时间序列,但我的同事保持持怀疑态度。他的论点是,"开箱即用"的收益无法保证,因为他非常了解SQL,并且已经花了时间来优化存储空间,而且我们没有任何TSDB的经验来适当地优化它。

我的直觉是,即使使用盒子的配置,使用TSDB也会更有效,但我没有任何数据来衡量这一点,而Internet Banch(例如InfluxDB)却几乎无法值得信赖。我们应该自己运行,除非我们不能在死胡同或平庸的改善中闲逛。

在我的用例中,当涉及单节点吞吐量时,关系存储与TSDB之间的性能差距是什么?

这个问题可能在软件建议上接壤。我只想指出一个重要的事情:您有现有的代码库,因此在开发成本和时间方面,切换到另一个数据存储很昂贵。如果您有当前技术的经验,那么您可能会通过良好的努力使该技术正常工作。

切换是否取决于应用程序的实际要求。例如,如果您不需要立即数据,也许将批处理写入文件是最有效的机制。

您的基础架构有足够的机会来实现现场增长 - 更多记忆,更多的处理器,固态磁盘(例如)。这些可能会以最少的努力满足您的性能需求。

如果您无法使解决方案起作用(每秒插入10k应该是非常可行的),则有许多解决方案。一些NOSQL数据库放松传统RDBMS的某些严格酸要求,在整个过程中提供更快的速度。

最新更新