处理来自API的大数据以进行可视化

时间:2018-05-30 07:50:57

标签: java spring rest web

我们说我有一个API可以提供上个月的股票价值。每小时对数据进行采样。

现在我想制作一个可以在折线图上显示这些数据的网络应用程序。我不需要所有的小时样本,所以我的问题是我应该如何做这项工作?

我的想法是会有一个后端应用程序(即在Java Spring中)从API中获取数据并计算每天的平均值(使用流,可能是并行流?)然后将其放入新集合并将其传递到前端以放入图表。

2 个答案:

答案 0 :(得分:2)

从UI开始思考,你需要什么,你需要多久以及多快?

然后从后端获取数据,如果一次有太多数据而API无法做到,则:

  • 获取数据并减少UI需要(后端),使用一次并丢弃
  • 或者获取数据并减少UI需要的内容(后端),保留缓存一段时间
  • 或者预处理数据,以便在UI需要时,它就会准备就绪

对于返回格式,考虑一些轻量级的东西,比如一些简单命名的json数组{"dayAverages": [0.34, 1253.432, ...]}, "month" : 2, "year": 2018},然后在UI中适应你的lib的需要(这是有争议的)。

同时观察用户如何使用用户界面,然后您可以获得有关如何优化体验的一些想法(下个月预加载......)

如果您出于学习目的而这样做,请考虑将其作为async + lambdas = bonus :)。

答案 1 :(得分:1)

关于你的问题" ......我该如何做这项工作?" -

这是非常广泛的。有很多很多方法可以做到这一点。其中一些方法在很大程度上取决于您的体系结构,您的应用程序需要多少流量,API可以处理的请求加载等等。以下是一些需要考虑的一般事项:

  • 任何类型的MVC架构(或类似版本)都适合您的Web应用程序。
  • 你提到需要一个"后端应用程序"某种类型。不确定这里的含义,但平均功能可以直接构建到您的Web应用程序框架中,而无需单独的后端应用程序。
  • 如果您要计算在Web应用中显示的平均值,则需要在某处保持状态。假设API没有给你这个,你需要一个类型的数据库,或者至少某种类型的内存缓存存储引擎来促进这一点。如何执行此操作取决于您的体系结构和应用程序上的流量/负载(例如,您将拥有多个负载平衡的服务器)。

希望有所帮助。如果你问一些具体问题,我们可以提供更多。