所以数据层次结构非常简单:
Account >> SubAccount >> Category >> Product
我需要为每个产品提取每日统计数据(这只是一个数字,我们称之为每日绩效)。可以有几十个账号,几十个子账号,上百个品类,上百万个产品。
让我这样做的 API 的形式是
GetCurrentPerformance(Product)
现在,在基于 Web 的仪表板中,我需要能够显示任何产品、类别、子帐户和帐户的时间与性能。如果自上次获取GetCurrentPerformance(Product)
.
我正在云上构建这个解决方案,最好是在 AWS 上。我正在尝试决定如何最好地存储我每天获取的数据。这是我考虑过的:
- 将所有内容放入数据库 (RDBMS)。担心桌子大小会以多快的速度失控。
- 为每个产品维护一个平面文件,将当天的绩效附加到此文件中。在获取(平均)时计算类别、子帐户和帐户的统计信息,并为每个类别、子帐户和帐户维护一个文件。问题:文件需要存储在 S3 上,S3 不支持追加。使整个拉文件、附加数据、推文件非常耗时。
- 为每天的数据(所有产品)维护一个文件。然后在批处理作业中,计算每个产品、类别、子帐户和帐户的统计信息。维护一个文件/数据库,以便不必为平均计算引用所有文件。关注点:要显示特定产品的时间线,需要阅读数百个文件。
- No-SQL 数据库?没有这方面的经验。
这似乎是一个非常简单的问题——但我对最好的处理方式感到困惑。建议表示赞赏。