我正在构建一个需要存储用户执行的大量事件的应用程序。 (将LOTS视为每月数百万)。
我需要报告这些事件(上个月x类型的总数等),需要一些有弹性和快速的东西。
我玩弄了Redis等来存储数据的聚合,但这可能只是意味着我正在构建一个不可重建的单个数字聚合的大量存储。
虽然这不是一个糟糕的解决方案,但我正在考虑将原始事件数据存储在表中,然后我可以根据需要进行查询,并可能定期生成聚合计数器。因此,这将使我能够随着时间的推移添加计数器,并对正在发生的事情进行临时检查,这是聚合不允许的事情。
问题是,最好怎么做?我显然不想为每个表创建一个模型(这是Rails更喜欢的),所以我只是创建表并根据需要与原始SQL交互,或者是否有其他选择来处理这种数据?
答案 0 :(得分:1)
我已经开发过具有该类型数据流的应用程序,解决方案如下:
- >存储一切 - >创建聚合 - >在短时间(1周或某些时间)之后删除所有内容以释放资源
因此,您只需使用rails存储事件,从另一个快速脚本(cron sql)创建一些后台聚合,使用rails读取聚合,然后使用另一个后台脚本删除原始事件。
另外..导轨和性能通常不是齐头并进;)