我有一个Web应用程序(Java后端),它处理从包含许多传感器的硬件平台上传的大量原始数据。
目前上传原始数据并将数据解压缩并存储为Postgresql数据库中的“文本”字段,以允许用户登录并生成数据的各种图表/图表(使用JS图表库客户端)
示例字符串......
[45,23,45,32,56,75,34 ...
阵列通常包含~300,000个值,但这可能高达1,000,000,具体取决于传感器记录的时间长度,因此存储的字符串大小可能是几百千字节
目前这似乎工作正常,因为每天只有大约200个上传,但是当我看到应用程序的可扩展性和备份数据的能力时,我正在寻找存储此数据的替代方案
对我来说,DynamoDB看起来是一个很好的选择,因为我可以继续在我的SQL表中存储上传详细信息,只保存一个要调用的URL端点来检索数组....但后来我发现项目大小有限至64kb
我确信有一百万种方法可以做到这一点我想把它告诉SO社区,听听其他人推荐的内容,无论是网络服务还是本地存储....考虑性能,可扩展性,可维护性等等......
提前致谢!
更新:
只是为了澄清上面显示的数据只是'Y'值,因为它是时间采样的X值被视为数组中的位置....所以我不认为存储作为元组会有任何好处
答案 0 :(得分:0)
您可以尝试Couchbase和ElasticSearch的元组。 Couchbase是非常快速的面向文档的NoSql数据库。 CB的数千次插入操作是正常的。物品尺寸限制为20MB。 “获取”操作的性能是几万。有一个缺点,你只能通过id查询数据(有“视图”,但我认为将它们调整到绘图将太困难了)。补偿这种缺陷可能是ElasticSearch,它可以非常快速地执行任何查询。 Couchbase和ElasticSearch中的格式数据是json文档。
答案 1 :(得分:0)
我刚遇到Google Cloud Datastore,它允许我存储单项Strings高达1Mb(未编入索引),似乎是Dynamo的一个很好的替代品
答案 2 :(得分:0)
如果您希望存储此类字符串,则可能需要使用S3(包含1个对象) 数组字符串),在这种情况下,您将通过启用存储桶来启用“备份” 版本
答案 3 :(得分:0)