【问题标题】:Connect to SQL Server Analysis Cube with Python (Anaconda)使用 Python (Anaconda) 连接到 SQL Server 分析多维数据集
【发布时间】:2021-01-31 02:34:05
【问题描述】:

我正在使用 Python 来自动化一些报告,但我在尝试连接到 SSAS 多维数据集时遇到了困难。我在 Windows 7 上使用 Anaconda 4.4,除了 Anaconda 中包含的库之外,我无法安装任何库。

我已经使用 pyodbc+pandas 连接到 SQL Server 数据库并使用 SQL 查询提取数据,现在的目标是在 SSAS 多维数据集上做类似的事情,使用 MDX 查询来提取数据,但我无法得到成功的连接。

第一个连接字符串与我用来连接 SQL Server 数据库的字符串非常相似,但它给了我一个身份验证错误。我可以使用 SQL Server Management Studio 毫无问题地访问多维数据集,因此我知道我的 Windows 凭据可以访问。

connection = pyodbc.connect('Trusted_Connection=yes',DRIVER='{SQL Server}',SERVER='Cube Server', database='Cube')
query = "MDX query"
report_df = pandas.read_sql(query, connection)

Error: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '*****'. (18456) (SQLDriverConnect)")

当我尝试在Question1Question2我得到一个不同的错误:

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

任何帮助/指导将不胜感激。我对 SSAS 多维数据集的经验很少,所以我可能在完成这项任务时走错了路,即使连接问题得到解决,将数据加载到 pandas 中也会出现另一个问题,等等。

【问题讨论】:

标签: python sql-server anaconda ssas


【解决方案1】:

SSAS 不支持ODBC clients 。它确实通过 IIS 提供 HTTP 访问,这需要a few configuration steps。配置完成后,任何客户端都可以通过 HTTP 发出 XMLA 查询。

xmla package 可以连接到各种 OLAP 源,包括基于 HTTP 的 SSAS

【讨论】:

  • 感谢您的回答。我刚刚与 DBA 核实了他们是否可以/将配置 HTTP 访问。将更新结果
  • 检查this guide。它展示了如何使用捆绑在 Power BI Desktop(免费)中的 OLAP 引擎进行测试,直到 DBA 决定做什么
【解决方案2】:

也许这个解决方案会帮助你https://stackoverflow.com/a/65434789/14872543 这个想法是在 linced MSSQL Server 上使用该构造

SELECT olap.* from OpenRowset ('"+ olap_conn_string+"',' " + mdx_string +"') "+ 'as olap'

【讨论】:

    【解决方案3】:

    Pyadomd 软件包可能会帮助您解决问题:

    Pyadomd

    它没有在 Windows 7 上测试,但我希望它可以正常工作:-)

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多