设计数据密集的轻量级可扩展RESTful Web架构

时间:2012-11-21 20:08:05

标签: javascript json rest architecture csv

我有大约1000个.csv文件,每日数据可追溯到30年前。 我正在为自己构建一个RESTful应用程序,理想情况下用户将输入感兴趣的股票代码 以及可能超过10年的每日数据的感兴趣的时间框架。

设计1

我在考虑以下流程:

1) user input symbol='GOOG'
2) user input startDate='01-01-1997', endDate=getTodayDate()
3) client requests location of GOOG.csv file in dropbox server or EC2
4) server returns GOOG.csv to client
5) client parses .csv file until all data is collected and plotted

OR

设计2

1) user input symbol='GOOG'
2) user input startDate='01-01-1997', endDate=getSystemDate()
3) client requests location of GOOG.csv file in dropbox server or EC2
4) server-side converts GOOG.csv file to GOOG.json file 
5) server returns GOOG.json object to client side for plotting

OR

设计3

0) During maintenance time, convert all 1000 .csv files to .json objects
1) user input symbol='GOOG'
2) user input startDate='01-01-1997', endDate=getSystemDate()
3) client requests location of GOOG.json file in dropbox server or EC2 
4) server returns GOOG.json object to client side for plotting

此后我的最终目标是在同一张图表中绘制多达6个不同的图表。以及绘制历史投资组合回报。

哪种设计合适,不会占用太多内存并提供良好的性能?

2 个答案:

答案 0 :(得分:1)

结帐SOLR项目。它支持CSV数据的索引,并提供支持REST的搜索API。

举一个简单的例子,见:

答案 1 :(得分:0)

从您的简短描述中我将使用Design 2并在服务器上强制执行一些缓存或动态存储转换后的json项目,这样您就不必在当天晚些时候再次转换它们。如果事实证明您在服务器端有太多的负载或内存消耗,您可以随时转移到设计3。