我目前正在开发一个生成大量日志数据的大型 Web 应用程序。因为我们没有将所有事件记录到数据库的基础设施,所以我们将它们写入文件。不幸的是,这使得在日志中搜索特定事件变得非常困难,并且无法生成频率报告。
在试图弄清楚如何实现更好的数据库日志记录时,我发现了 Amazon 的服务。特别是SimpleDB和DynamoDB。SimpleDB 的用例之一是记录,但后来它指出
Amazon SimpleDB 旨在存储相对少量的数据...
这似乎是矛盾的。以下是我的问题:
- 这些数据库服务是否适合记录应用程序事件?
- 是否适合从日志数据生成报告?
- 我会使用时间戳作为我的主键吗?
- 这种服务有缺点还是我应该考虑的其他事情?
2018 年 6 月 13 日更新:此后我使用 SimpleDB 记录大型应用程序的应用程序数据。关键是将日志划分为与它们生成的时间段相对应的域(例如每天),以确保它们不会超出其限制。然后设置 CRON 作业以定期删除旧域。该解决方案运行良好并且易于搜索。