【问题标题】:How to store performance records in order to do a time scaled report如何存储绩效记录以进行时间标度报告
【发布时间】:2014-02-14 02:52:53
【问题描述】:

我正忙着为我们公司编写一个程序来监控我们的某些系统的性能。

所以基本上每分钟我都会收到当前状态的值。我会将它们存储在数据库中。这一切都很好。

但现在我需要能够生成一份报告(井图),了解其在一段时间内的性能。即小时、日、周、月年。

现在这一切都很好,我可以用时间戳查询它。但是在生成年度报告时,我真的不需要精确到一分钟,然后我需要每年每台机器存储 60*24*568 条记录。

我想了解如何存储所有值,然后汇总它们以减少需要存储的数据量。因此,当我生成年度报告时,它将每 2 天查看一次。它可以每天或每半小时查看一次,而不是每分钟和一个月都一样。

现在我的问题实际上是。如何将其存储在数据库中?

我是否应该为每个汇总版本制作表格,所以分钟 => 小时 => 天 => 周等

或者我是否保留一个包含所有条目的大表,然后使用 sql 对其进行总结等等。

我以前从来没有做过这样的事情,我什至不知道从哪里开始思考。这听起来有点像数据仓库,但请注意这不是一个巨大的规模。它将使用 Web 界面监视 5 个 -10 服务。我的想法实际上是从 Mikrotik Rotuers 那里得到的。我怀疑很多 oyu 会和他们一起工作。但是他们有一个很棒的资源图形系统,它很简单,但可以显示它需要的东西。

像这样:

【问题讨论】:

    标签: c# database database-design graph


    【解决方案1】:

    我认为您可以在几分钟内保留原始表格。因为将来您的需求可能会发生变化。比如 2 天到 1 天甚至 6 小时一次。要有效管理此表,请考虑对表进行分区。创建另一个包含汇总数据的表。写一条sql,从原表中插入聚合表。所以基本上你在这里进行提取、转换和加载(ETL)。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      相关资源
      最近更新 更多