MS Analysis Services用于Python的OLAP API

ktd*_*drv 5 python database olap

我正在寻找一种方法来连接到MS Analysis Services OLAP多维数据集,运行MDX查询,并将结果拉入Python.换句话说,正是Excel所做的.Python中是否有解决方案让我这样做?

有类似问题的人指向Django的ORM.尽管我喜欢这个框架,但这并不是我想要的.我也不是在寻找一种拉行和聚合它们的方法 - 这就是Analysis Services首先要做的事情.

想法?谢谢.

小智 8

这可以使用pythonnet很容易地完成:

http://pythonnet.github.io/

您加载SQL Server 2005和2008提供的Microsoft.AnalysisServices.dll或在此处获取可再发行组件包:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4

搜索SQLSERVER2008_ASAMO10.msi

然后你可以加载它并使用它.这是一个简单处理多维数据集的示例:

import CLR
from CLR.System.Reflection import Assembly

Assembly.LoadWithPartialName("AnalysisServices.DLL")

from CLR.Microsoft.AnalysisServices import Server
from CLR.Microsoft.AnalysisServices import ProcessType

serverName = 'localhost\sql2005'
dbName = 'MyDatabase'

# Connect to server
amoServer = Server()
amoServer.Connect(serverName)

# Connect to database
  amoDb = amoServer.Databases[dbName]
    amoDb.Process(ProcessType.ProcessFull)
Run Code Online (Sandbox Code Playgroud)


Mag*_*ith 4

我对Python完全一无所知,但如果它可以调用DLL,那么它应该能够使用微软的ADOMD对象。这是我能想到的最好的选择。

您可以查看 Office Web Components (OWC),因为它具有可以嵌入网页上的 OLAP 控件。我认为你可以将 MDX 传递给它,但也许你也希望 Python 看到结果,但我认为它不允许。

否则,也许您可​​以用另一种语言构建自己的“代理”。该程序/网页可以接受 MDX,并返回显示结果的 XML。然后 Python 就可以使用这个 XML。