【问题标题】:What is the best method to save large amounts of sequential data保存大量顺序数据的最佳方法是什么
【发布时间】:2015-04-30 14:17:59
【问题描述】:

我试过但找不到类似的帖子,如果我错过了一个帖子并在此处复制,我深表歉意。

我需要找到最好的机制来保存数据以满足我的以下要求并考虑征求您的意见。

主要要求

我们从一组电子传感器中接收到大量数据。数据量约为每秒 50,000 条记录,每条记录包含一个浮点值和一个日期/时间戳。

此外,我们需要将这些数据保留至少 5 年并对其进行处理以做出预测。

目前我们正在使用 MS Sql 服务器,但我们非常热衷于探索 NO SQL 等新领域。

我们可以灵活处理这些

  • 我们不需要太多的一致性,因为数据结构非常简单
  • 我们可以在保存时从代码中管理原子性(如果需要)

我们需要数据库端在这些方面可靠

  • 快速检索 - 这样就不会为繁重的预测算法已经需要的内容增加太多时间
  • 保存时的可靠性 - 我们的中间层将不得不高速抛出大量数据,并希望数据库能够保存所有数据。
  • 数据需要安全(持久性)

我一直在阅读这篇文章,我开始怀疑我们是否可以同时使用 MS SQL 和 NO SQL。我的想法是继续使用 MS SQL 定期使用数据,并使用 NO SQL 解决方案进行长期存储/处理。

您现在可能已经意识到,我对 No SQL 还是很陌生。

您认为在保持性能和准确性的同时存储这么多数据的最佳方式是什么?

如果您能对此有所了解,我将不胜感激,以便我们为这个问题提供有效的解决方案。

我们也考虑消除几乎相同到达彼此接近的记录(例如 45.9344563V、45.9344565V、45.9344562V 到达在 3 微秒内 - 我们将忽略前 2 个并取第三个)。有没有人解决过类似的问题,使用过什么算法?

我不想在这里找到完整的解决方案。只是想与其他专业人士展开对话...请发表您的意见。

非常感谢您的宝贵时间,非常感谢您的意见!

【问题讨论】:

  • 您会以关系方式使用这些数据吗? IE。您是否想加入这些数据,例如在另一个具有相同(或相似)日期时间或相同/相似电压的表中?
  • @DanField 如果我们能加入会很方便,但如果我们能满足更紧迫的要求,我们将非常乐意解决它。
  • 请发布 (a) CREATE TABLE 命令,用于主题表和所有父表 (b) 这些传感器究竟在监控什么 (c) 有多少单位被监控 (d) 什么类型 {analogue |数字}。技术意义上的,而不是口语意义上的。
  • @PerformanceDBA 很遗憾,我无法为您提供脚本或设计,因为我们正试图弄清楚我们将要使用的架构。会有很多传感器监控。这些传感器连接到独立的智能单元,然后将数据传输给我们。我们未来需要支持的单元/传感器的数量没有限制。我们需要能够无限制地扩展。传感器既是模拟的又是数字的,但独立的单元将它们转换为数据记录。但是,我必须提到数据记录很简单(主要是日期/时间和值)

标签: sql-server database-design nosql


【解决方案1】:

NoSQL 非常酷,可以很好地处理您的一项需求(快速存储和非关系检索)。然而,当您开始尝试以关系方式使用数据时,NoSQL 的问题最终变成了要做的事情,在这种情况下,它的性能并不像 RDBMS 那样好。

在 RDBMS 中存储大量数据时,您可以使用多种策略来处理大量数据。想到的最明显的一个是使用分区。您可以在此处阅读有关 SQL Server 的更多信息:https://msdn.microsoft.com/en-us/library/ms190787.aspx

您可能还需要考虑创建一个作业来定期将不经常访问的历史数据移动到单独的磁盘。这可能使您能够使用 SQL Server 2014 中称为内存 OLTP 的新功能来处理最近使用较多的数据(假设它低于 250gb):https://msdn.microsoft.com/en-us/library/dn133186.aspx

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 2015-07-13
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多