[英]How to to store production data to a reporting DB in a Rails app?
我们希望跟踪Rails应用的生产数据,以便我们可以在几个月内对其进行分析。
更准确地说,我们有一些带有“状态”和日期列的数据模型,这些模型可以经常更改。 想法是每当状态或任何其他属性更改时,在数据库或日志文件中的某处写一行新行。 这些行包含此对象的所有属性的副本。
我看到了不同的解决方案:
如果将数据存储在数据库中,则提取数据会更容易。 日志文件速度更快,并且不会大大减慢该过程。 我不知道什么是最好的方法,或者是否有其他解决方案/实现。
你看过act_as_versioned吗? 我敢肯定有一个为此目的编写的更现代的库,但是它可以满足您的需要:在更新时对数据进行版本控制,以便以后可以对其进行跟踪。 无论如何,它可能会为您提供模板。
有一个宝石选项: http : //github.com/andersondias/acts_as_auditable
现在,我在保存到审计表中还是以CVS格式保存文件之间犹豫不决。 我的感觉是第二种方法更好,因为在文件中写入速度更快,而且我们不依赖于与数据库服务器的连接。
任何单个BI工具都可以将CVS文件用作数据源。 问题是每次更改表的结构时,我必须创建一个不同的文件。 但这有问题吗?
最后,我使用了一个观察器和一个带有FasterCSV的记录器来生成审核日志。
我无法正确复制/粘贴所有代码,因此对于有兴趣的人,这里是博客文章的链接:
这可以轻松地适用于任何Rails模型。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.