繁体   English   中英

如何将生产数据存储到Rails应用程序中的报表数据库?

[英]How to to store production data to a reporting DB in a Rails app?

我们希望跟踪Rails应用的生产数据,以便我们可以在几个月内对其进行分析。

更准确地说,我们有一些带有“状态”和日期列的数据模型,这些模型可以经常更改。 想法是每当状态或任何其他属性更改时,在数据库或日志文件中的某处写一行新行。 这些行包含此对象的所有属性的副本。

我看到了不同的解决方案:

  • 使用带有after_save的观察者,并将保存的数据复制到报告Mysql Db
  • 使用记录器系统。
  • 在数据库级别上执行另一级别的操作,检测表中的更改并将受影响的行复制到报告数据库中。

如果将数据存储在数据库中,则提取数据会更容易。 日志文件速度更快,并且不会大大减慢该过程。 我不知道什么是最好的方法,或者是否有其他解决方案/实现。

你看过act_as_versioned吗? 我敢肯定有一个为此目的编写的更现代的库,但是它可以满足您的需要:在更新时对数据进行版本控制,以便以后可以对其进行跟踪。 无论如何,它可能会为您提供模板。

有一个宝石选项: http : //github.com/andersondias/acts_as_auditable

现在,我在保存到审计表中还是以CVS格式保存文件之间犹豫不决。 我的感觉是第二种方法更好,因为在文件中写入速度更快,而且我们不依赖于与数据库服务器的连接。

任何单个BI工具都可以将CVS文件用作数据源。 问题是每次更改表的结构时,我必须创建一个不同的文件。 但这有问题吗?

最后,我使用了一个观察器和一个带有FasterCSV的记录器来生成审核日志。

我无法正确复制/粘贴所有代码,因此对于有兴趣的人,这里是博客文章的链接:

记录Rails生产数据以执行一些审核(bi)

这可以轻松地适用于任何Rails模型。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM