Datasets - Execute Queries

(DAX) 针对提供的数据集的查询执行数据分析表达式。 数据集必须位于 “我的工作区” 或其他工作区中。

DAX 查询错误将导致:

  • 响应错误,例如 DAX query failure
  • 失败 HTTP 状态代码 (400) 。

请求多个表或超过允许的表行数的查询将导致:

  • 返回的数据有限。
  • 响应错误,例如 More than one result table in a queryMore than {allowed number} rows in a query result
  • 成功的 HTTP 状态代码 (200) 。

查询中完全限定的列将返回具有完全限定名称的列, MyTable[MyColumn]例如 。 在查询中重命名或创建的列将在方括号内返回,例如 [MyNewColumn]

权限

必须启用“集成设置”下的“数据集执行查询 REST API”租户设置

用户必须具有数据集读取和生成权限。 有关详细信息,请参阅管理数据集访问权限

所需范围

Dataset.ReadWrite.All 或 Dataset.Read.All

限制

  • 不支持托管在 Azure Analysis Services 或与本地Azure Analysis Services模型建立实时连接的数据集。
  • 每个 API 调用一个查询。
  • 每个查询一个表请求。
  • 每个查询最多 100,000 行或 1,000,000 个值, (以第一个) 命中者为准。 例如,如果查询 5 列,则最多可以返回 100,000 行。 如果查询 20 列,则最多可以返回 50,000 行 (100 万行除以 20) 。
  • 每个查询最多 15MB 数据。 超过 15MB 后,将完成当前行,但不会写入其他行。
  • 无论查询的数据集如何,每个用户每分钟有 120 个查询请求的限制。
  • 若要使用服务主体,请确保在“开发人员设置”下启用“管理租户”设置“”允许服务主体使用 Power BI API”。 但是,无论管理员租户设置如何,每个 RLS 限制 为 RLS 的数据集或启用了 SSO 的数据集都不支持服务主体。
  • 目前仅支持 DAX 查询。 不支持 MDX 和 DMV 查询。

POST https://api.powerbi.com/v1.0/myorg/datasets/{datasetId}/executeQueries

URI 参数

名称 必需 类型 说明
datasetId
path True

string

数据集 ID

请求正文

名称 必需 类型 说明
queries True

DatasetExecuteQueriesQuery[]

要执行的数据集查询的列表

impersonatedUserName

string

要模拟的用户的 UPN。 如果模型未启用 RLS,则会忽略此情况。

serializerSettings

DatasetExecuteQueriesSerializationSettings

结果集的序列化设置

响应

名称 类型 说明
200 OK

DatasetExecuteQueriesResponse

确定

示例

Execute queries example

Sample Request

POST https://api.powerbi.com/v1.0/myorg/datasets/cfafbeb1-8037-4d0c-896e-a46fb27ff229/executeQueries
{
  "queries": [
    {
      "query": "EVALUATE VALUES(MyTable)"
    }
  ],
  "serializerSettings": {
    "includeNulls": true
  },
  "impersonatedUserName": "someuser@mycompany.com"
}

Sample Response

{
  "results": [
    {
      "tables": [
        {
          "rows": [
            {
              "MyTable[Year]": 2010,
              "MyTable[Quarter]": "Q1"
            },
            {
              "MyTable[Year]": 2010,
              "MyTable[Quarter]": "Q2"
            },
            {
              "MyTable[Year]": 2011,
              "MyTable[Quarter]": "Q1"
            }
          ]
        }
      ]
    }
  ]
}

定义

名称 说明
DatasetExecuteQueriesError

错误的详细信息(如果存在)。

DatasetExecuteQueriesInformationProtectionLabel

与数据集关联的信息保护标签的详细信息(如果有)。

DatasetExecuteQueriesQuery

数据集查询

DatasetExecuteQueriesQueryResult

单个数据集查询的结果

DatasetExecuteQueriesRequest

对数据集执行查询的请求

DatasetExecuteQueriesResponse

对数据集执行查询请求的响应

DatasetExecuteQueriesSerializationSettings

数据集查询结果的序列化设置

DatasetExecuteQueriesTableResult

数据表

DatasetExecuteQueriesError

错误的详细信息(如果存在)。

名称 类型 说明
code

string

与错误关联的代码

message

string

错误的消息。 如果此处不存在,此信息也位于嵌套在 error 对象下的详细信息对象中。

DatasetExecuteQueriesInformationProtectionLabel

与数据集关联的信息保护标签的详细信息(如果有)。

名称 类型 说明
id

string

信息保护标签的标识符 (guid)

name

string

信息保护标签的显示名称

DatasetExecuteQueriesQuery

数据集查询

名称 类型 说明
query

string

要执行的 DAX 查询

DatasetExecuteQueriesQueryResult

单个数据集查询的结果

名称 类型 说明
error

DatasetExecuteQueriesError

错误的详细信息(如果存在)。

tables

DatasetExecuteQueriesTableResult[]

查询的表数据列表

DatasetExecuteQueriesRequest

对数据集执行查询的请求

名称 类型 说明
impersonatedUserName

string

要模拟的用户的 UPN。 如果模型未启用 RLS,则会忽略此情况。

queries

DatasetExecuteQueriesQuery[]

要执行的数据集查询的列表

serializerSettings

DatasetExecuteQueriesSerializationSettings

结果集的序列化设置

DatasetExecuteQueriesResponse

对数据集执行查询请求的响应

名称 类型 说明
error

DatasetExecuteQueriesError

错误的详细信息(如果存在)。

informationProtectionLabel

DatasetExecuteQueriesInformationProtectionLabel

与数据集关联的信息保护标签的详细信息(如果有)。

results

DatasetExecuteQueriesQueryResult[]

结果列表,每个输入查询一个。

DatasetExecuteQueriesSerializationSettings

数据集查询结果的序列化设置

名称 类型 说明
includeNulls

boolean

null (空) 值是否应包含在结果集中。 如果未指定,则默认值为 false

DatasetExecuteQueriesTableResult

数据表

名称 类型 说明
error

DatasetExecuteQueriesError

错误的详细信息(如果存在)。

rows

object[]

行列表