NodeJS的OLAP服务器

时间:2014-08-05 07:19:21

标签: python node.js reporting olap

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

找到了一个python库,它提供了一个名为' Slicer'

的OLAP HTTP服务器

http://cubes.databrewery.org/

  • 有人能解释一下这是如何运作的吗?这是否意味着我必须更新我的架构。并创建所谓的事实表?

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

  • 如果我因为没有exp而无法使用python,那么在Nodejs中有什么基础知识呢?

我的模型基本上是单词列表,所以我所拥有的olap查询是用英语,数周,数月长度为2,5,10个字母的英语单词,法语,德语等等。

非常感谢您的想法,提示和指导!

1 个答案:

答案 0 :(得分:3)

正如您所知,CUbes提供了一个HTTPS OLAP服务器(slicer工具)。

  

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

作为OLAP服务器,您可以向服务器发出OLAP查询。 API基于REST / JSON,因此您可以通过HTTP轻松地从Javascript,nodejs,Python或您选择的任何其他语言查询服务器。

服务器可以回答OLAP查询。 OLAP查询基于“事实”和“维度”的模型。例如,您可以查询“按月份逐项列出的给定国家/地区和产品的总销售额”。

  

这是否意味着我必须更新我的架构。并创建所谓的事实表?

OLAP查询是围绕Facts and Dimension概念构建的。

面向OLAP的数据仓库策略通常涉及创建这些Fact和Dimension表,构建所谓的Star Schema或Snowflake Schema。这些模式为关系数据库上的OLAP类型查询提供了更好的性能。数据通常由所谓的ETL进程加载(它可以是一个简单的脚本),以适当的形式加载数据。

但是,Python Cubes框架不会强制您更改架构或创建备用架构。它有一个SQL后端,允许您定义模型(根据事实和维度),而无需更改实际的数据库模型。这是模型定义的文档:https://pythonhosted.org/cubes/model.html

但是,在某些情况下,您可能仍然希望为数据挖掘定义架构,并使用转换过程定期加载数据。这取决于您的需求,您拥有的数据量,性能考虑因素等......

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

  

这可以与我的NodeJS App一起使用吗?

您可以从NodeJS向Cube Slicer服务器发出查询。

  

任何例子?

有一个Javascript客户端库来查询Cubes。您可能想要使用这个:https://github.com/Stiivi/cubes.js/

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

  

因为我只创建了单个服务器应用程序。 python是否驻留在同一个nodejs服务器上。它将如何开始? ('forever app.js'是我的默认脚本)

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

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

  

如果我因为没有exp而无法使用python,那么在Nodejs中有什么基础知识呢?

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