赛库分析工具的python集成

mara-mondrian的Python项目详细描述


玛拉·蒙德里安

Build StatusPyPI - LicensePyPI versionSlack Status

一个用于Mondrian Server的python接口,MondrianXMLA服务器与Saiku即席分析工具相结合。附带

  • 本地运行Mondrian服务器的Makefile。在

  • Mara Schema定义生成Mondrian schema。在

  • 蒙德里安缓存刷新。在

  • Saiku认证通过Mara ACL。在

安装

要直接使用库,请使用pip:

pip install mara-mondrian

或者

^{pr2}$

关于一个集成到flask应用程序的例子,请看一下mara example project 1。在

跑赛库

在项目中,在项目Makefile中包含.scripts/mondrian-server.mk(例如https://github.com/mara/mara-example-project-1/blob/master/Makefile)。在

运行make setup-mondrian-server将创建所需的mondrian-server.properties文件。然后运行make run-mondrian-server将启动Saiku和8080端口上的XMLA服务器:

Saiku

要在生产环境中运行Mondrian服务器,请查看https://github.com/project-a/mondrian-server/blob/master/README.md。在

特点

蒙德里安模式生成

如果您在Mara Schema中定义了一个数据仓库模式,那么您可以使用mara_mondrian/schema_generation.py中的函数write_mondrian_schema自动创建一个Mondrian模式文件。在

{a18}看一个例子。在

蒙德里安缓存刷新

mara_mondrian/connection.py中的函数flush_mondrian_cache触发模式的重新加载和Mondrian服务器中所有缓存的刷新。在

此文件还包含用于发出XMLA请求的函数。在

通过Mara ACL

一旦将mara_mondrian/views.py中的Saiku ACL资源添加到项目中,就可以轻松控制哪些用户可以查询哪些多维数据集:

Saiku ACL

在这个例子中,“Management”组的用户可以查询所有多维数据集,“Marketing”中的用户只能查询“Customers”和“Leads”(除了Thomas,他还可以查询“Order items”和“Sellers”)。在

请看一下https://github.com/project-a/mondrian-server/blob/master/README.md如何设置它。在

请确保/mondrian/saiku/authorize端点是Mara ACL中的白名单,例如https://github.com/mara/mara-example-project-1/blob/master/app/ui/__init__.py

monkey_patch.patch(mara_acl.config.whitelisted_uris)(lambda:['/mara-app/navigation-bar','/mondrian/saiku/authorize'])

尝试Mara Mondrian最简单的方法是运行mara example project 1。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate:合并并删除,而不是从数据库中删除实体对象   java如何在WebFilter中有条件地从Mono返回?   java调用mysql c3p0函数   可执行jar Java jar文件加载错误:无法找到或加载主类。类导致的错误:java。lang.ClassNotFoundException:某些东西。班   java如何减少/更改爬网后的延迟?   从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?   java如何模拟影响对象的void返回方法   当我试图在ubuntu上启动JavaScala时,它抛出了一个异常   java如何正确输出游戏   理解java和C++背景下的JavaScript原型   oracle如何将Java函数转换为postgresql函数   多线程为什么我的java服务器程序在超时后不退出?   java如何使listView中的按钮在单击时工作?   试图将这个嵌套的java forloop转换为python,但我不知道如何转换。有没有一种方法可以像这样为循环执行if语句?   java幂函数在计算器中的应用   如何在java中滚动浏览mysql数据库   在Spring Boot应用程序的JUnit测试中,java没有符合自动连线JPA存储库要求的bean   java如何使用扩展类的JPanel对象?