【发布时间】:2017-01-24 14:14:27
【问题描述】:
我有一些设备每秒将数据记录到表中。每个设备每秒将有 16 条记录,随着设备数量的增长,表将有数十亿条记录,现在我有时使用 sql server一个简单的记录计数查询本身需要几秒钟才能执行。
在某些情况下,我们主要需要将历史数据作为每小时数据的平均值,因此我们每小时处理大量数据并将其转换为每小时数据,因此一个设备在一小时内只有 16 条记录,但现在有一个需要获取某个时间范围内的所有记录并对其进行处理,因此我们需要访问大数据。
目前我使用的是sql server,请您建议一些替代方法或如何处理sql server或其他数据库中的大数据。
【问题讨论】:
-
您可能需要考虑改进查询的方法,而不是尝试切换数据库。请查看此答案以了解更多详细信息:stackoverflow.com/questions/2794736/…
-
感谢编辑和链接,有没有专门为大数据构建的特定版本的Sql server。
-
汪!复杂的话题。你目前的限制因素是什么?每秒读取?光盘空间?阅读时间?停机时间?
-
读取时间是第一关注,下一个磁盘空间。
-
您可能会查看表分区。我做了类似的事情。分区将表拆分为多个“逻辑”表和/或驱动器。优点是您有一个“当前”分区,大部分 IO 都在其中发生,您可以保持良好且响应迅速。然后,您保留一个历史分区,您可以在其中运行慢速汇总查询以满足您的需求。这是一个棘手的主题,但如果做得好,会非常有帮助。这是一个很好的起点brentozar.com/sql/table-partitioning-resources
标签: sql-server mongodb hadoop sql-server-performance