【发布时间】:2019-10-10 05:48:16
【问题描述】:
我的组织有一个SQL分析服务资源,我们可以使用excel或者powerbi连接cube使用服务器名(tooldata.amr.xxx.com)获取数据。
我想要的是使用 python 或 excel 自动执行数据查询并输出到 csv 文件以供下游应用程序使用(报告/图表等)
我在下面尝试过但失败了:
1.Microsoft.AnalysisServices.AdomdClient
FileNotFoundException Traceback(最近一次调用最后一次) 在
2. clr.AddReference ("Microsoft.AnalysisServices.AdomdClient.dll")
FileNotFoundException:无法找到程序集“Microsoft.AnalysisServices.AdomdClient.dll”。 在 Python.Runtime.CLRModule.AddReference(字符串名称)
看起来缺少一些环境。不知道如何进行。有什么建议吗?
import olap.xmla.xmla as xmla
provider = olap.xmla.xmla.XMLAProvider()
connect = provider.connect(location='http://tooldata.amr.xxx.com/OLAP/msmdpump.dll',username='user',password='pwd')
source = connect.getOLAPSource()
print (source.getCatalog("TestCube"))
ConnectionError: HTTPConnectionPool(host='tooldata.amr.xxx.com', port=80): Max retries exceeded with url: /OLAP/msmdpump.dll (由 NewConnectionError(': 无法建立新连接: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应'))
看起来需要从服务器端进行一些配置,但我无法控制,请放弃此选项。
3.既然我可以使用excel来获取SSAS数据,那是否可以使用python调用excel并刷新数据,然后从excel中解析出数据?有人试试吗?
谢谢。
【问题讨论】:
-
尝试 1) 将 .dll 的位置附加到 sys.path;或 2) 使用完整路径,例如clr.AddReference (r"D:\dlls\Microsoft.AnalysisServices.AdomdClient.dll")
-
感谢 Owl7,在我添加完整路径后它现在可以工作了
标签: python sql excel ssas cube