xmla

___ answer3834365 ___

Ich weiß Python nicht, aber ich bin Autor von mondrian / olap4j.

Wenn Sie mit py4j auf olap4j zugreifen können, großartig. Wenn nicht, bedenke definitiv XMLA. Es ist möglicherweise nicht so langsam wie Sie denken (es sei denn Pythons XML-Analyse ist langsam). Das größte Problem ist die Komplexität der Erstellung von SOAP-Anfragen und das Verständnis der Antworten.

Julian

    
___ answer4403261 ___

Wie Sie wissen, ist Mondrian eine komplette OLAP-Engine, die in Java auf einer Datenbank wie MySQL geschrieben ist. Wenn ich also Ihre Frage verstehe, wollen Sie Mondrian verwenden und sich fragen, wie Sie es mit Python verbinden können.

Ich verwende Mondrian in einer .jar-Datei, um MDX-Abfragen in der Befehlszeile zu verarbeiten und einen JSON zurückzusenden. Python ruft es direkt in der Befehlszeile auf.

%Vor%

Und für die Server-Verwendung packe ich es in ein Servlet und sende MDX mit ajax. Die Ajax-Aufrufe sind kein großer Overhead und deshalb sehe ich keine Notwendigkeit, Python und Java zu koppeln, anstatt nur mit dem Mondrian-Server zu kommunizieren.

    
___ qstnhdr ___ Abfrage OLAP Mondrian (MDX, XMLA) mit einer Python-Schnittstelle? ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ answer13525708 ___

Um ein wenig abzuschließen, habe ich gerade dieses Python-Paket entdeckt, um auf den XMLA-Server zuzugreifen: www . Es sagt, es funktioniert mit Mondrian, icCube, MSAS.

    
___ tag123psycopg2 ___ Psycopg ist ein PostgreSQL-Adapter für die Python-Programmiersprache. Es implementiert PEP 249 mit vielen Erweiterungen. ___ tag123mdx ___ Mehrdimensionale Ausdrücke (MDX) ist eine Abfragesprache für OLAP-Datenbanken. Es wurde von Microsoft entwickelt, hat aber später breite Unterstützung von anderen OLAP-Anbietern erhalten. ___ tag123olap ___ OLAP (Online Analytical Processing) ist eine Kategorie von Softwaretools, die eine Analyse von Daten in einer Datenbank ermöglicht, die für Abfragen und Berichte optimiert sind. Mit OLAP-Tools können Benutzer verschiedene Dimensionen multidimensionaler Daten analysieren, die für einen schnellen Zugriff gespeichert sind. Zum Beispiel bietet es Zeitreihen- und Trendanalyseansichten. ___ tag123xml ___ XML for Analysis ist ein Industriestandard für den Datenzugriff in Analysesystemen wie OLAP und Data Mining. ___ qstntxt ___

Tatsächlich verwende ich R + Python mit RPY2, um Daten zu manipulieren, und ggplot, um schöne Grafiken zu erstellen .. Ich habe einige Daten in einer PostgreSQL-Datenbank, und ich verwende psycopg2, um Daten abzufragen.

Ich beginne eine Abschlussarbeit, und in Zukunft brauche ich einen OLAP-Würfel , um meine (sehr große) zu speichern. Simulationsdaten: Mehrfachdimension, Aggregationsabfrage, etc.

Gibt es die beste oder gebräuchlichste Methode für die Schnittstelle zwischen Python (und ich möchte Python + R, kein jpivot oder ein anderes Dashboard in Java) und eine OLAP-Engine wie Mondrian ? Ich suchte bei Google nach einer Lösung und fand nichts.

Ich habe SQLAlchemy und Django-ORM kurz bewertet, aber sie haben kein MDX oder XML / A-Schnittstelle zum Abfragen eines OLAP-Servers (Mondrian oder andere) ...

Ist es möglich, eine Abfrage in MDX zu schreiben und mit psycopg + ODBC meinen OLAP-Server abzufragen, und der OLAP-Server gibt mir eine Antwort aus meinen Simulationsdaten (keine Zuordnung auf Python-Objekt, aber für mich ist das in Ordnung)?

Update 1:

Warum muss ich nach OLAP + Mondrian-Technologie suchen?

Weil Universität von Laval (GeoSoa Departements + Thierry Badard) eine räumliche Erweiterung zu OLAP: SOLAP geschrieben hat , und implementiert dies in Mondrian als GeoMondrian GeoMondrian . Das interessiert mich, weil ich an der räumlichen multiagentenbasierten Simulation (~ = Geosimulation) arbeite.

Die GeoSoa-Abteilung hat eine Ajax-basierte Komponente zur Kommunikation und Visualisierung räumlicher Daten mit GeoMondrian: SOLAPLAYERS erstellt, die einen Mondrian-Server mit seinem Xlma-Servlet abfragen können.

Problem: wahrscheinlich langsam in Big Data Manipulation, brauche Internet oder Apache 2. Kurz gesagt, es ist nur zur Visualisierung von Daten oder Karten ... In meinem Fall brauche ich Rohdaten, um meine eigenen Daten Manipulation + Grafiken mit R: Raum Analyse, Regressionsanalyse, Rank-Tail, usw. Hier hilft mir SOLAP, Daten für diese spätere komplexe R-Analyse vorzubereiten.

Warum Python?

1 - Webzugriff auf räumliche Daten -

Ich versuche ein "cooles" Python-Framework zu verwenden, wie GeoDjango oder MapFish : große Community in GIS, Open Source, nutze GeoAlchemy Manipulieren von räumlichen Abfragen / Daten, einschließlich Visualisierung mit JavaScript-Erweiterungen und OpenLayers , usw.

2 - Lokaler Zugriff auf Geodaten im GIS -

Ich möchte ein Plugin in QGIS (Open Source GIS) erstellen, um auf Daten zuzugreifen und diese zu visualisieren, und QGIS plugin und API = Python.

3 - Automatische Analyse der Daten -

Ein Benutzer oder Wissenschaftler führt eine Simulation mit Grid Computing durch und wählt eine automatische Analyse (R + ggplot2 + MDX-Abfrage), die mit diesen Daten ausgeführt werden soll. Mein Ziel ist es, einen synthetischen Bericht der Simulation (Grafik, Tabellendaten, etc.) Zu erstellen.

Nach der Simulation gehen die Daten also in den OLAP / SOLAP-Cube und viele Python-Skripte (vom Benutzer erstellt) erhalten Daten mit MDX, manipulieren Daten mit R + RPY2 und schreiben und produzieren coole Ausgaben für den Wissenschaftler auf doku- Wiki oder eine andere Community-Plattform.

Problem?

1 - Olap4j, der API-Kern von Mondrian zur Kommunikation mit einer externen Komponente, ist Java-made: /

2 - SOLAPLAYERS benutzt Ajax um auf Daten zuzugreifen, zu langsam für mich.

3 - SQLAlchemy und GeoAlchemy haben keine Treiberverbindung zu einer mehrdimensionalen Datenbank (OLAP).

* Lösung? *

1 - Py4j für den Zugriff auf Java-Objekt oder Java-Sammlung in Olap4j mit Python? Schreibe meine eigene Funktion um auf die Java Mapped Collection zuzugreifen? = & gt; gefährlich und nicht sehr einfach? ...

2 - XLMA mit Ajax Mondrian Server? Es ist zu langsam.

3 - Schreibe meinen eigenen py-Connector nach OLAP Mondrian? = & gt; Autsch. Es ist ein schwerer Weg, denke ich.

Was soll ich tun?

    
___ answer3802002 ___

Für sehr große Daten-Cubes Speicher und Retrieval funktioniert der HDF5-Speicher sehr gut (h5py oder PyTables für eine Python-Schnittstelle). Ihre Anwendung kann dann entweder auf einer Maschine mit einer lokalen Kopie der HDF5-Datenbank ausgeführt werden oder eine Ad-hoc-Serverlösung (immer noch in Python) erstellen.

Ich habe bei Bedarf hybride SQL / HDF5-Speicher-Strategien entworfen, und sie funktionieren ziemlich gut.

Wenn die MDX-Abfragesprache wirklich benötigt wird:

  • als ORM (frühere Antworten zu stackoverflow)

  • cubulus (obwohl nur eine Teilmenge von MDX implementiert ist)

  • führen Sie den OLAP Ihrer Wahl als separaten Server aus und kommunizieren Sie mit ihm über eine Ad-hoc-Schnittstelle (möglicherweise sogar XML über http).

___
4
Antworten

Abfrage OLAP Mondrian (MDX, XMLA) mit einer Python-Schnittstelle?

Tatsächlich verwende ich R + Python mit RPY2, um Daten zu manipulieren, und ggplot, um schöne Grafiken zu erstellen .. Ich habe einige Daten in einer PostgreSQL-Datenbank, und ich verwende psycopg2, um Daten abzufragen. Ich beginne eine Abs...
25.09.2010, 09:25