5

我目前正在开发一个生成大量日志数据的大型 Web 应用程序。因为我们没有将所有事件记录到数据库的基础设施,所以我们将它们写入文件。不幸的是,这使得在日志中搜索特定事件变得非常困难,并且无法生成频率报告。

在试图弄清楚如何实现更好的数据库日志记录时,我发现了 Amazon 的服务。特别是SimpleDBDynamoDB。SimpleDB 的用例之一是记录,但后来它指出

Amazon SimpleDB 旨在存储相对少量的数据...

这似乎是矛盾的。以下是我的问题:

  1. 这些数据库服务是否适合记录应用程序事件?
  2. 是否适合从日志数据生成报告?
  3. 我会使用时间戳作为我的主键吗?
  4. 这种服务有缺点还是我应该考虑的其他事情?

2018 年 6 月 13 日更新:此后我使用 SimpleDB 记录大型应用程序的应用程序数据。关键是将日志划分为与它们生成的时间段相对应的域(例如每天),以确保它们不会超出其限制。然后设置 CRON 作业以定期删除旧域。该解决方案运行良好并且易于搜索。

4

2 回答 2

5

我的回答是基于我在生产环境中使用 SimpleDB 的经验。

  1. 我每天将数千个应用程序事件记录到 SimpleDB。
  2. 我们有研究人员定期从 SimpleDB 中提取日志数据,他们从未抱怨过。我不确定在 SimpleDB 本身上运行报告查询,但我不明白为什么这会是一个问题,当我运行查询时,它们对我来说总是很快。
  3. SimpleDB 索引所有列,没有“主键”。
  4. 我个人不喜欢使用为与 SimpleDB 交互而构建的第三方工具。此外,根据您将使用的数据量和处理量来考虑价格。
于 2012-10-04T16:19:51.943 回答
3

SimpleDB旨在存储相对少量的数据。如果您有“大量的日志数据”并且想要“搜索日志以查找特定事件”和“生成频率报告”,那么您肯定想要使用 DynamoDB。

DynamoDB 具有“散列键”(例如,索引)和“范围键”,它们允许您以各种方式对数据进行排序。例如:“显示从上周到现在的所有 INFO 日志。”

此外,如果您查看官方 DynamoDB 论坛,开发人员和支持人员非常善于跟进并确保您的问题得到解答。

于 2012-10-05T05:59:59.357 回答