Java 使用DynamoDB处理具有可视化目标的时间序列数据
有人建议我研究DynamoDB来存储timeseries数据,但鉴于我的最终目标是数据可视化,所以我不太确定 我有传感器,每10分钟发送一次数据,我想在一些图表中显示数据,默认情况下每周查看一次(每周1008个数据点(日期时间/值))。假设我提供10000次读取/秒(AWS“默认”最大值),并假设1条记录可以容纳1个容量单位(1kb)Java 使用DynamoDB处理具有可视化目标的时间序列数据,java,amazon-web-services,time-series,data-visualization,amazon-dynamodb,Java,Amazon Web Services,Time Series,Data Visualization,Amazon Dynamodb,有人建议我研究DynamoDB来存储timeseries数据,但鉴于我的最终目标是数据可视化,所以我不太确定 我有传感器,每10分钟发送一次数据,我想在一些图表中显示数据,默认情况下每周查看一次(每周1008个数据点(日期时间/值))。假设我提供10000次读取/秒(AWS“默认”最大值),并假设1条记录可以容纳1个容量单位(1kb) 除了东西越来越贵,这是否意味着我甚至不能同时支持10个客户?是我错了还是DynamoDB不是这项工作的合适工具?DynamoDB非常适合存储即将到来的事件数据,但
除了东西越来越贵,这是否意味着我甚至不能同时支持10个客户?是我错了还是DynamoDB不是这项工作的合适工具?DynamoDB非常适合存储即将到来的事件数据,但它不应该是您使用的唯一工具。您可以将DynamoDB与其他工具集成:
- 在DynamoDB前面放置一个缓存(例如ElasticCache),以允许从它而不是DynamoDB为您的重复查询提供服务
- 在DynamoDB前面放置一个缓冲队列(例如SQS),允许传感器以不同速率发送报告,同时保持较低的均衡写入速率
更新了DynamoDB文档中关于DynamoDB表格设计的更多链接:好东西!我喜欢根据我的访问模式更新记录的想法,我也可以在以后做一些其他的聚合。你有进一步阅读的参考资料吗?关于前面的队列,我需要一个持久化的队列,但是两次持久化数据(首先是队列,然后是dynamo)不是太过分了吗?我已经更新了DynamoDB关于访问模式和表设计的文档链接。关于队列“开销”,这是一个非常小的增加,有很大的好处——拥有松散耦合的系统对于良好的系统架构非常重要。它将为您节省资金(较低的DynamoDB配置吞吐量)并增加灵活性(多个读取器、模式更改…),也许可以检查一下这一点,以便了解为时间序列设计Dynamo模式的方法。