我正在使用 Ruby on Rails 3.2.13,我必须存储和处理定期发送到我的服务器的提要数据。我想以适当的方式存储该数据,因为计划该数据将用于构建和显示折线图。我的问题主要与通过关心系统性能(因为数据每 30 秒发送到服务器并且可能超过 5000 个字符)和保持数据操作的便利性(因为数据包括哈希数组结构)在数据库中存储数据有关)。
也就是说,我的服务器会定期接收 Ruby on Rails 识别的数据(在 HTTP 请求查询字符串中),如下所示:
Parameters:
{
"feed1"=>{
"1"=>"A,35,text1.1,5",
"2"=>"B,76,text1.2,-6",
"3"=>"D,45,text1.3,-1",
"4"=>"Z,48,text1.4,-10",
"5"=>"G,26,text1.5,-999",
"6"=>"Y,10,text1.6,-67",
"7"=>"T,98,text1.7,45",
"8"=>"N,04,text1.8,315",
"9"=>"E,37,text1.9,90"
},
"feed2"=>{
"1"=>"T,53,text2.1,76",
"2"=>"J,67,text2.2,85",
"3"=>"O,54,text2.3,-967",
"4"=>"D,85,text2.4,41",
"5"=>"N,97,text2.5,99",
"6"=>"P,32,text2.6,48",
"7"=>"Z,87,text2.7,21",
"8"=>"S,27,text2.8,3",
"9"=>"I,67,text2.9,0"
},
"..."=>{...}
}
我想以“智能”方式存储上述数据,并以有效的方式处理这些数据,以便在折线图中显示。
我怎么能/应该做到这一点?有什么药方或建议吗?
例如:
- 我应该为每个传入的提要数据请求(每 30 秒!)创建一个数据库行吗?
- 由于我想以 char 形式显示过去 24 小时的数据,我应该如何管理这段时间的数据?删除“旧”值?更新这些值?或者是什么?
- 为了节省性能和数据库内存,我想使用Rails 序列化功能。我应该继续序列化吗?或者,还有什么可能是另一种解决方案?