7
votes

Services d'analyse MS OLAP API pour Python

Je cherche un moyen de se connecter à un Cube OLAP d'analyse MS, exécutez des requêtes MDX et tirez les résultats en Python. En d'autres termes, exactement ce qu'est Excel. Y a-t-il une solution dans Python qui me permettrait de le faire?

Quelqu'un avec une question similaire est dirigé vers l'ormes de Django. Autant que j'aime le cadre, ce n'est pas ce que je cherche. Je ne cherche pas non plus un moyen de tirer des rangées et de les agréger - c'est ce que les services d'analyse sont pour la première place.

idées? Merci.


1 commentaires

Avez-vous essayé d'envelopper l'adomd.dll? J'étais sur le point de lui donner un coup.


3 Réponses :


4
votes

Je suis complètement ignorant à propos de Python, mais s'il peut appeler des DLL, il devrait pouvoir utiliser l'objet Adomd de Microsoft. C'est la meilleure option que je puisse penser.

Vous pouvez consulter les composants Web Office (OWC), car celui-ci dispose d'une commande OLAP que celle qui peut être intégrée sur une page Web. Je pense que vous pouvez passer mdx à cela, mais vous voulez peut-être que Python de voir les résultats aussi, ce que je ne pense pas que cela le permet.

Sinon, vous pouvez peut-être construire votre propre "proxy" dans une autre langue. Ce programme / WebPage pourrait accepter MDX dans et vous renvoyer XML montrant les résultats. Python pourrait alors consommer ce XML.


2 commentaires

Pour tout ce que je sais, cela peut appeler des dlls. Le problème est qu'ils sont si mal documentés. En fait, la même chose s'applique au protocole de communication client-OLAP serveur client. Je voudrais mettre en œuvre un client dans Python moi-même (ou essayez de) mais je ne trouve rien nulle part. Des pointeurs?


Trouvez un exemple de python qui montre comment appeler une DLL. Ensuite, installez MS SQL Server 'Composants du client' sur votre machine de développement et essayez de modifier l'exemple Python pour appeler Adomd.dll et utiliser la documentation Microsoft pour vous indiquer les classes / objets à utiliser. Dans VBScript, nous ferions serveur.createObject ("adomd.cellset")



9
votes

Ceci peut être fait assez facilement à l'aide de Pythonnet:

http://pythonnet.github.io/

Vous chargez le Microsoft.Analysisservices.dll proposé avec SQL Server 2005 et 2008 ou obtenez le package redistribuable ici:

http://www.microsoft.com/downloads/fr/details.asaspx?familyId= B33D2C78-1059-4CE2-B80D-2343C099BCB4

Recherchez SQLSERVER2008_ASAMO10.MSI

Ensuite, vous pouvez le charger et l'utiliser. Voici un exemple qui traite simplement des cubes: xxx


0 commentaires

1
votes

Vous pouvez facilement connecter et accéder à des cubes forts> OLAP STRAND> à l'aide de Python Package XMLA fort>. xmla strong> joue un rôle essentiel dans la communication avec OLAP forte> et effectue toutes les fonctions avec les cubes.

Installer xmla strong> par p>

import olap.xmla.xmla as xmla
provider = xmla.XMLAProvider()
connect = provider.connect(location='http://localhost/OLAP/msmdpump.dll',
 username = 'test', password = 'test')
source = connect.getOLAPSource()


0 commentaires