Web实时分析仪表板:应使用哪些技术? (node / django,cassandra / mongodb ...)

时间:2019-03-08 14:05:11

标签: node.js mongodb postgresql cassandra postgis

我们想开发一个仪表板来分析地理空间数据。 这是我们想要做的一种小而接近的方法:http://adilmoujahid.com/images/data-viz-talkingdata.gif

我们主要关心的是要使用的后端技术。 (前面将是D3.js,DC.js,leaflet.js ...)

在Django和node.js之间,我们认为我们将使用node.js,因为在执行此类任务时,其读取速度比Django快。但是我们不确定,我们愿意接受想法。

但是关于Mongo或Cassandra,我们是如此困惑。我们的数据主要是结构化的,因此将其存储在诸如Cassandra的表中将使其易于管理,而且Cassandra似乎具有更好的性能。但是,我们还拥有物联网设备数据,具有大量实时GPS位置...

您能给我们哪些建议以实现我们的目标?

TL;灾难恢复摘要;

  • 具有数百个同时用户的仪表板。
  • 存储的数据将主要是结构化的文本/数字,但还将包括图像,GPS阵列,IoT传感器,地理数据(矢量多边形和栅格)
  • 数据库将收到来自传感器的高写入负载。
  • 仪表板性能非常重要。实时读取数据比保持数据安全无虞更为重要。
  • 大多数演算/数学将在客户端的浏览器中计算,服务器将尝试避免数学运算。

3 个答案:

答案 0 :(得分:2)

免责声明:我是DataStax员工,所以我将在Cassandra上发表评论。

如果可以围绕一组已知查询计划仪表板,那么

Cassandra是一个不错的选择。如果这些用户将从仪表板直接对数据库进行临时查询,则需要具有更多灵活性的功能,例如ElasticSearch或(无耻插件)DataStax Search。特别是如果您希望查询/数据库能够处理某些地理空间逻辑。

答案 1 :(得分:1)

JaguarDB对地理空间数据(2D和3D)具有非常强大的支持。它使您可以在每个点位置存储多个测量值,而其他数据库仅支持一个测量值(pointm)。还支持许多复杂的查询,例如Voronoi多边形,凸壳。它是开源的,分布式和分片的,多列索引等。

答案 2 :(得分:0)

关于Postgresql和Cassandra,它们之间在RAM / CPU / DISK使用方面有很大区别吗?

我们的用例不需要事务,它将在单个节点中,并且我们的Io​​T设备每秒可以写入多达500次数据。不过,我从中读到,与Potsgis搭配使用的地理数据要比cassandra更好。

根据此用例,您是否推荐Cassandra或Postgis?