rey*_*n64 8 python olap mdx psycopg2 xmla
实际上我正在使用R + Python和RPY2来操作数据和ggplot来创建漂亮的图形..我在PostgreSQL数据库中有一些数据,而我正在使用psycopg2来查询数据.
我正在开始论文,将来我需要一个OLAP多维数据集来存储我的(非常大的)模拟数据:多维,聚合查询等.
是否有任何最佳或标准的实践来连接Python(我想要Python + R,没有jpivot或Java中的其他仪表板)和像Mondrian这样的OLAP引擎?我在Google上搜索了任何解决方案,但我找不到任何东西.
我简要地评价SQLAlchemy的和Django的ORM,但他们没有MDX或XML/A接口来查询OLAP服务器(蒙德里安或其他)...
是否可以编写一个查询的MDX,并与psycopg + ODBC,查询我的OLAP服务器,OLAP服务器给我从我的模拟数据的应答(Python对象上没有映射,但它的确定对我来说)?
更新1:
为什么我需要搜索OLAP + Mondrian技术?
由于拉瓦尔大学(GeoSoa个省+蒂埃里Badard)写了一个空间延伸到OLAP:SOLAP,并在蒙德里安实施本作GeoMondrian.我感兴趣的是因为我正在研究基于空间多代理的模拟(〜=地理模拟).
所述GeoSoa DEPARTEMENT创建一个基于Ajax组件通信和可视化与GeoMondrian空间数据:SOLAPLAYERS,其可通过其Xlma的servlet查询蒙德里安服务器.
问题:可能是在大数据处理速度慢,需要互联网或Apache 2,简单地说,这只是可视化的数据或地图...就我而言,我需要的原始数据,以使自己的数据处理+与R图形:空间分析,回归分析分析,排序等等.在这里,SOLAP帮助我为后来的复杂R分析准备数据.
为何选择Python?
1 - 对空间数据的Web访问 -
我试图用一个"酷"的Python框架,像GeoDjango内置或MapFish:在GIS大社区,开源,使用GeoAlchemy操纵空间查询/数据,包括与JavaScript扩展和可视化的OpenLayers等.
2 - GIS中对空间数据的本地访问 -
我想在QGIS(开源GIS)中创建一个插件来访问和可视化数据,以及QGIS插件和API = Python.
3 - 自动分析数据 -
用户或科学家使用网格计算运行模拟,并选择他们想要对此数据运行的自动分析(R + ggplot2 + MDX查询).我的目标是创建模拟的综合报告(图形,表格数据等).
因此,在模拟之后,数据转到OLAP/SOLAP多维数据集,许多Python脚本(由用户创建)通过MDX获取数据,使用R + RPY2处理数据,并为doku-wiki或其他人的科学家编写并生成很酷的输出.社区平台.
问题?
1 - Olap4j是Mondrian与外部组件通信的API核心,是Java制造的:/
2 - SOLAPLAYERS使用Ajax访问数据,对我来说太慢了.
3 - SQLAlchemy和GeoAlchemy没有与多维数据库(OLAP)的驱动程序连接.
*解决方案?*
1 - Py4j用Python访问olap4j中的Java对象或Java集合?编写我自己的函数来访问Java映射集合?=>危险而且不是很容易?...
2 - XLMA与Ajax Mondrian服务器?太慢了.
3 - 将自己的py连接器写入OLAP Mondrian?=>哎哟.我认为这是一个艰难的方式.
我该怎么办?
小智 6
我不懂python,但我是mondrian/olap4j的作者.
如果你可以使用py4j访问olap4j,那很好.如果没有,一定要考虑XMLA.它可能没有你想象的那么慢(除非python的XML解析很慢).最大的问题是构造SOAP请求和理解响应的复杂性.
朱利安
如您所知,Mondrian是一个完整的OLAP引擎,用java编写,在MySQL之类的数据库上.所以如果我理解你的问题,你想使用Mondrian并想知道如何将它与Python接口.
我使用包装在.jar中的Mondrian在命令行上处理MDX查询并发送回JSON.Python直接在命令行中调用它.
import commands
result = commands.getoutput('java -jar Mondrian_cli.jar -q
select NON EMPTY Crossjoin({[Measures].[Store Sales]},
Crossjoin([Time].[1997].Children, [Store].[All Stores].Children)) ON COLUMNS,
[Product].[All Products].Children ON ROWS from [Sales]')
Run Code Online (Sandbox Code Playgroud)
对于服务器使用,我将其打包在servlet中,然后使用ajax发送MDX.ajax调用不是一个很大的开销,这就是为什么我不认为需要耦合Python和Java而不仅仅是与Mondrian服务器通信.
| 归档时间: |
|
| 查看次数: |
9616 次 |
| 最近记录: |