用于NodeJS的OLAP服务器

我一直在寻找方法来为由NodeJs和MySQL编写的REST服务器提供支持的应用程序提供分析。 发现的OLAP实际上可以使这更容易。

并find一个python库,提供一个名为“切片机”的OLAP HTTP服务器

http://cubes.databrewery.org/

  • 有人可以解释这是如何工作的? 这是否意味着我必须更新我的模式。 并创build所谓的事实表?

  • 这可以与我的NodeJS应用程序一起使用吗? 任何例子? 由于我只创build了单个服务器应用程序。 python会驻留在同一个nodejs服务器上吗? 它将如何开始? ('永远app.js'是我的默认脚本)

  • 如果我不能使用python,因为我没有exp,那么在Nodejs中做什么是基本的?

我的模型基本上是单词列表,所以我有Olap查询是在几天,几周,几个月的长度2,5,10字母在语言英语,法语,德语等

想法,提示和指导非常赞赏!

正如您发现的那样,CUbes提供了一个HTTPS OLAP服务器( slicer工具)。

有人可以解释这是如何工作的?

作为OLAP服务器,您可以向服务器发出OLAP查询。 这个API是基于REST / JSON的,所以你可以通过HTTP轻松地从Javascript,nodejs,Python或者其他select的语言中查询服务器。

服务器可以回答OLAP查询。 OLAP查询基于“事实”和“维度”的模型。 例如,您可以查询“某个特定国家和产品的总销售额,按月单列”。

这是否意味着我必须更新我的模式。 并创build所谓的事实表?

OLAP查询是基于事实和维度概念构build的。

面向OLAP的数据仓库策略通常涉及创build这些事实和维度表,构build所谓的星型模式或雪花模式。 这些模式为关系数据库上的OLAPtypes查询提供了更好的性能。 数据通常由所谓的ETL过程(可以是一个简单的脚本)加载,以适当的forms加载数据。

但是,Python Cubes框架不会强制您更改模式或创build替代模式。 它有一个SQL后端,它允许你定义你的模型(在事实和维度方面),而不需要改变实际的数据库模型。 这是模型定义的文档: https : //pythonhosted.org/cubes/model.html 。

但是,在某些情况下,您可能更喜欢为数据挖掘定义模式,并使用转换过程定期加载数据。 这取决于你的需求,你拥有的数据量,性能考虑等等。

使用Cubes,您还可以使用其他非RDBMS后端(即MongoDB),其中一些提供像Cubes这样的OLAP服务器可以利用的内置聚合function。

这可以与我的NodeJS应用程序一起使用吗?

您可以从NodeJS向您的多维数据集切片器服务器发出查询。

任何例子?

有一个Javascript客户端库来查询多维数据集。 你可能想要使用这个: https : //github.com/Stiivi/cubes.js/

我不知道使用NodeJS的任何例子。 您可以尝试从Cubes中包含的AngularJS应用程序获得灵感( https://github.com/Stiivi/cubes/tree/master/incubator )。 另一个客户端工具是CubesViewer,它可能在构build模型时对您有用: http : //jjmontesl.github.io/cubesviewer/ 。

由于我只创build了单个服务器应用程序。 python会驻留在同一个nodejs服务器上吗? 它将如何开始? ('永远app.js'是我的默认脚本)

您将运行Cubes Slicer服务器作为Web应用程序(直接从您的Web服务器,即Apache)。 例如,使用Apache,您可以使用允许为python应用程序提供服务的apache-wsgi mod。

切片机也可以作为一个独立的进程中的小型Web服务器运行,这是在开发过程中非常方便(但我不build议生产环境)。 在这种情况下,它将监听不同的端口(通常是: http://localhost:5000 )。

如果我不能使用python,因为我没有exp,那么在Nodejs中做什么是基本的?

你根本不需要使用Python。 您可以configuration和使用Python Cubes作为OLAP服务器,并从Javascript代码(即直接从浏览器)运行查询。 从客户端angular度来看,就像一个数据库系统,您可以通过HTTP查询并以JSON格式获取响应。