【问题标题】:Using DynamoDB for Timeseries Data with visualization goal将 DynamoDB 用于具有可视化目标的时序数据
【发布时间】:2013-08-30 01:20:32
【问题描述】:

有人建议我研究 DynamoDB 来存储时间序列数据,但我不太确定,因为我的最终目标是数据可视化。

我的传感器每 10 分钟发送一次数据,我想在一些图表中以默认的每周视图可视化数据(每周 1008 个数据点(日期时间/值))。假设我提供 10,000 次读取/秒(AWS“默认”最大值),并且假设 1 条记录适合 1 个容量单位 (1kb)。

除了东西变得昂贵之外,这是否意味着我什至不能同时只支持 10 个客户端?是我错了还是 DynamoDB 不适合这项工作?

【问题讨论】:

  • 也许可以查看这个 SO answer 以了解如何为时间序列设计 Dynamo 模式。

标签: java amazon-web-services time-series data-visualization amazon-dynamodb


【解决方案1】:

DynamoDB 非常适合存储您即将到来的事件数据,但它不应该是您使用的唯一工具。您可以将 DynamoDB 与其他工具集成:

  • 在您的 DynamoDB 前面放置一个缓存(例如 ElasticCache),以允许从它而不是 DynamoDB 中处理您的重复查询
  • 在您的 DynamoDB 前面放置一个缓冲队列(例如 SQS),以允许您的传感器以不同的速率发送其报告,同时保持较低的平衡写入 DynamoDB 速率。

您还可以在 DynamoDB 中拥有多种格式的数据,具体取决于您的访问模式。例如,您可以拥有一个记录,其中包含每个传感器整周的数据点,并且您可以每 10 分钟更新一次该记录,而不是仅在每个报告中附加新的记录数据。每个传感器的每周记录可以是每天或每月,您可以根据需要进行记录。尽管如此,您每次写入和读取只需要读取 1 或 7 条记录或任何其他少量记录。

更新了 DynamoDB 文档中有关 DynamoDB 表设计的更多链接:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html

【讨论】:

  • 好东西!我喜欢根据我的访问模式更新记录的想法,我以后也可以做一些其他的聚合。您对此有进一步阅读的参考吗?关于前面的队列,我需要一个持久化的队列,但是两次持久化数据是不是有点矫枉过正(先队列,后发电机)?
  • 我已经更新了 DynamoDB 关于访问模式和表设计的文档的链接。关于队列“开销”,它的添加量非常小,但好处却很大——拥有松散耦合的系统对于良好的系统架构很重要。它将为您节省资金(降低 DynamoDB 预置吞吐量)并提高灵活性(多个读取器、架构更改......)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
  • 2016-04-10
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多