做一个可交互科学数据网站,如何最优化架构?

想做一个大气信息网站,想采用下面这个过程:

  1. 基于世界地图的网站,用户在上面选取数据点和定义数据需求;
  2. 提交给服务器,在数据库自动抓取相关数据;
  3. 后台用python处理和分析数据,并制图和生成报告;
  4. 提交给用户页面;
    整个过程不能太慢。
    我初步想法是html+css+JS + python + D3.js + Node.js。 但是不知道能不能成型。
    烦请大家给个建议,如何架构好这个网站?
    谢谢

既然python已经被你考虑为是必须的,则可以考虑去掉node,转而使用python的web框架,这样后台全用python实现,好处多多
前端jquery+d3问题不大,或者考虑下vue,这个就得看你哪个用的熟了

牛。谢谢回复。
是的,python是必须的,主要处理大数据分析和制图。那我考虑用web框架试试
前端就用d3.js了。

我前台网页技巧还行。但是对于跟python接口,还有前台后台之间的信息传递不太懂。您能推荐一些link或者相关方法文献给我吗?谢谢
主要是关键词不会用英文搜索

全部用Python做就好了。可以使用现成的framework。
https://pythonspot.com/web-dev/

数据库你们是用什么?Python支持的数据库还挺多的。

后台用什么语言倒是其次的。你的用户量,数据量多少?

全用python是一个很全新的概念,不知道效率和效果还有功能怎么样?
数据库还没有想好用什么类型。
我现在有很多大型数据,是netcdf形式的。我想用户选取数据点,然后从这些netcdf文件里面去提取数据进行分析制图。请问我如何构建数据库?使用起来最高效?
谢谢

用户量暂时还不知道。数据量倒是有很多。我历史数据和预测数据都是netcdf形式存储的,好多T。请问如何从这些文件中高效提取分析数据?

所以说这才是你应该最主要关注的。至于后台是不是用node.js都是次要的事情…
这个级别的数据量,你应该是不会期望说等每次用户请求了再开始处理吧?

本来初步想法是用户请求了再来分析。:frowning: 所以才问有没有方法可以快速高效提取数据然后进行统计分析制图。如果能在10秒内完成也还是可以的。
不过也有先预处理所有数据点,到时候只是调用而已。不过这样的话前期工作量很大。

第二种可以用geoserver。

因为你数据处理用python,服务端当然也推荐用python。python后台挺简单的,看你需求了,可以从最简单的flask用起。如果你需要前后端持续通信的,估计要用web socket.你前端用angular or react or vue?数据库这东西随便用个免费的postgresql就行了。或者你要上nosql 或者 rdf 数据库?

我感觉她目前的问题主要在那几T的数据上。

我觉得与其在这里找一群完全没见过你到底要处理什么数据/没见过你到底怎么处理数据的人来给架构建议,不如你自己做一点实验。
你不是说处理数据的python模型是现成的么?你不如把处理数据的那部分python先写出来。不要考虑前台,不要考虑web部分。 先看一下数据处理部分的load到底有多少。

没有一个具体参考数据前,这里所有人给的建议都是想当然。

没有web服务的情况下,目前你的程序能做到的处理一个请求到作完图需要多长时间?如果耗时太久那你的工作重点就不是web服务器了,而是怎么做优化。。。
不知道你具体是做什么的,但是一般来说优化一个算法或者过程本身就是一个值得研究的课题,不是一两句能说明白的。。。

好的,我先去实验实验。用现存的script来处理一下提取数据和制图,看看需要多久load时间。到时候再向您请教。
想问问一个关于数据存储和数据提取的问题。
如果全世界所有坐标点数据一共有5T,每年存为了一个netcdf文件(每个文件约100G)。如果我想提取世界上任意一个点在过去50年的海面风速数据,有没有更有效的数据存储和提取方法?最终目标是用坐标index去搜索数据区间,然后只访问跟数据区间相关的文件。

几个T?那莫不是要用spark了

地图上有多少个点?感觉点数应该不少
如果真是这样,把数据预处理一下,每点的过去50年数据存放在一起,然后对点的坐标做index,应该可以很快查询。。。

看你需要什么样的索引获取符合条件的数据,如果用传统数据库,然后索引想用地理位置(2维或者多维)的话估计得用Gist index 或者干脆上postgis了。我没用过netcdf,不知道它能不能像parquet一样可以通过meta data只读取所需要的部分。

720*360