Web实时分析仪表板:应该使用哪些技术?(Node/django,Cassandra/Mongodb ..)



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

我们主要关注的是要使用的后端技术。(前面是D3.JS,DC.JS,Flaflet.js ...)

在django和node.js之间,我们认为我们将使用node.js,因为我们读取的速度比Django更快地完成了此类任务。但是我们不确定,我们愿意接受想法。

但是关于Mongo或Cassandra,我们很困惑。我们的数据主要是结构化的,因此将其存储在像Cassandra这样的桌子上可以使管理容易管理,而Cassandra似乎具有更好的性能。但是,我们还拥有IoT设备数据,其中有很多实时GPS位置...

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

TL; DR Summary;

  • 带有数百个同时用户的仪表板。
  • 存储的数据主要是结构化的文本/数字,但还包括图像,GPS阵列,IoT传感器,地理数据(矢量 - Polygons& rasters)
  • 数据库将收到来自传感器的高写入负载。
  • 仪表板性能非常重要。实时阅读数据比保持不腐败/安全更重要。
  • 大多数微积分/数学将在客户端的浏览器中计算,服务器将尝试避免数学操作。

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

Cassandra是一个不错的选择,如果您的仪表板可以围绕一组已知查询进行计划。如果这些用户将直接从仪表板进行临时查询到数据库,则您需要一些具有更高灵活性的东西,例如Elasticsearch或(无耻的插件)DataStax搜索。特别是如果您期望查询/数据库处理一些地理空间逻辑。

jaguardb对地理空间数据(2D和3D)具有非常有力的支持。它允许您每点位置存储多测量,而其他数据库仅支持一个测量值(PointM)。还支持许多复杂的查询,例如Voronoi Polygon,convexhull。它是开源,分布式和碎片,多个列索引等。

涉及PostgreSQL和Cassandra,它们之间的RAM/CPU/磁盘使用情况有很大差异吗?

我们的用例不需要交易,它将在一个节点中,我们将让IoT设备每秒编写最多500次的数据。但是,我的意思是,与Cassandra相比,与Potstgis更好的地理数据...

根据此用例,您是否建议卡桑德拉(Cassandra)或Postgis?

最新更新