从ODBC访问Excel数据模型(Power Query)表

时间:2019-03-18 18:31:04

标签: excel powerquery

我们可以使用ODBC(Excel ODBC驱动程序)访问Excel数据。我们还可以访问数据模型中的数据(即Power Query表)吗?基本上,我正在考虑(错误地)使用Excel / Power Query作为数据库,并让外部应用程序(使用SQL)从中检索数据。

要阅读Sheet1,可以执行以下操作:

SELECT ... FROM [Sheet1$]

但是

SELECT ... FROM [table in data model] 

似乎不适合我。这应该可行还是根本不支持?

关于使用ODBC导入数据的Power Query有大量信息。在这里,我正在寻找另一种方式。

1 个答案:

答案 0 :(得分:2)

您应该自己区分Power Query表和Data Model(Power Pivot)表。您可以将一些PQ表设置为可加载到DM的表,因此仅针对该特定表将数据从PQ“传输”到DM。

我非常确定不可能从“仅PQ”表中获取数据。您可以通过VBA或解压缩Excel来获取m个查询(而不是它们的结果)。

关于PP(DM)表。实际上,Excel中有分析服务(VertiPac)引擎(以防万一-以及PowerBI Desktop中也有)。因此,一旦启动Excel或PBI,实际上也就启动了AS引擎实例。可以通过以下方式访问其中的数据:

  1. Excel VBA(应用程序的Visual Basic)。您具有Thisworkbook.Model.DataModelConnection。* API,并且可以获取数据本身以及进行建模。这是唯一以编程方式获取数据的“官方”方式。

  2. 功率查询-作为Analytical Services数据源。这是非官方的方式,但我读到,微软告诉他们他们将来不会关闭它(但您永远不会知道:-))。例如。 Dax Studio可以做到这一点-https://www.sqlbi.com/tools/dax-studio/。 不幸的是,虽然获得PBI AS服务非常容易,但我不知道如何在没有Dax Studio的情况下获得Excel AS服务。据我了解,这里的主要问题是如何获取Excel启动的AS端口号。但是我希望,如果您想使用Power Query的方式,此信息至少可以帮助您了解进一步搜索的方式。还是使用Power BI Desktop执行任务是合理的。

  3. Excel只是一个zip文件,因此绝对是其中的AS文件。我从没走过这种方式,但是您可以观察到exel zip的内容-那里的AS文件可能以某种有用的形式存在。