我目前正在开发一个生成大量日志数据的大型Web应用程序。因为我们没有将所有事件记录到数据库的基础结构,所以我们将它们写入文件。不幸的是,这使得在日志中搜索特定事件非常困难,并且无法生成频率报告。
在试图找出如何实现更好的数据库日志记录时,我找到了亚马逊的服务。具体为SimpleDB和DynamoDB。 SimpleDB的一个用例是logging,但后来它说明了
Amazon SimpleDB旨在存储相对少量的数据......
这似乎是矛盾的。以下是我的问题:
更新2018-06-13:我已经使用SimpleDB在大型应用程序上记录应用程序数据。关键是将日志划分为与其生成时间段相对应的域(例如每天),以确保它们不会超出其限制。然后设置CRON作业以定期删除旧域。该解决方案运行良好,易于搜索。
答案 0 :(得分:5)
我的回答是基于我在生产环境中使用SimpleDB的经验。
答案 1 :(得分:3)
SimpleDB 旨在存储相对的少量数据。如果您有“大量日志数据”并且您想“搜索特定事件的日志”和“生成频率报告”,那么您肯定希望使用DynamoDB。
DynamoDB具有“哈希键”(例如索引)和“范围键”,允许您以各种方式对数据进行排序。例如:“显示从上周到现在的所有INFO日志。”
此外,如果您查看official DynamoDB forum,开发人员和支持人员非常擅长跟进并确保您的问题得到解答。