代码之家  ›  专栏  ›  技术社区  ›  Pinser

用于NodeJS的OLAP服务器

  •  1
  • Pinser  · 技术社区  · 10 年前

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

    找到了一个python库,它提供了一个名为“切片器”的OLAP HTTP服务器

    http://cubes.databrewery.org/

    • 有人能解释一下这是怎么回事吗?这是否意味着我必须更新我的模式。并创建所谓的事实表?

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

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

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

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

    1 回复  |  直到 10 年前
        1
  •  3
  •   jjmontes    10 年前

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

    有人能解释一下这是怎么回事吗?

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

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

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

    OLAP查询是围绕事实和维度概念构建的。

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

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

    然而,在某些情况下,您可能仍然希望为数据挖掘定义模式,并使用转换过程定期加载数据。这取决于您的需求、数据量、性能考虑等。。。

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

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

    您可以从NodeJS向立方体切片器服务器发出查询。

    有什么例子吗?

    有一个Javascript客户端库来查询立方体。你可能想用这个: https://github.com/Stiivi/cubes.js/

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

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

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

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

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

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