Datasets - Execute Queries
(DAX) 针对提供的数据集的查询执行数据分析表达式。 数据集必须位于 “我的工作区” 或其他工作区中。
DAX 查询错误将导致:
- 响应错误,例如
DAX query failure
。 - 失败 HTTP 状态代码 (400) 。
请求多个表或超过允许的表行数的查询将导致:
- 返回的数据有限。
- 响应错误,例如
More than one result table in a query
或More 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 参数
名称 | 在 | 必需 | 类型 | 说明 |
---|---|---|---|---|
dataset
|
path | True |
string |
数据集 ID |
请求正文
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
queries | True |
要执行的数据集查询的列表 |
|
impersonatedUserName |
string |
要模拟的用户的 UPN。 如果模型未启用 RLS,则会忽略此情况。 |
|
serializerSettings |
结果集的序列化设置 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
确定 |
示例
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"
}
]
}
]
}
]
}
定义
名称 | 说明 |
---|---|
Dataset |
错误的详细信息(如果存在)。 |
Dataset |
与数据集关联的信息保护标签的详细信息(如果有)。 |
Dataset |
数据集查询 |
Dataset |
单个数据集查询的结果 |
Dataset |
对数据集执行查询的请求 |
Dataset |
对数据集执行查询请求的响应 |
Dataset |
数据集查询结果的序列化设置 |
Dataset |
数据表 |
DatasetExecuteQueriesError
错误的详细信息(如果存在)。
名称 | 类型 | 说明 |
---|---|---|
code |
string |
与错误关联的代码 |
message |
string |
错误的消息。 如果此处不存在,此信息也位于嵌套在 error 对象下的详细信息对象中。 |
DatasetExecuteQueriesInformationProtectionLabel
与数据集关联的信息保护标签的详细信息(如果有)。
名称 | 类型 | 说明 |
---|---|---|
id |
string |
信息保护标签的标识符 (guid) |
name |
string |
信息保护标签的显示名称 |
DatasetExecuteQueriesQuery
数据集查询
名称 | 类型 | 说明 |
---|---|---|
query |
string |
要执行的 DAX 查询 |
DatasetExecuteQueriesQueryResult
单个数据集查询的结果
名称 | 类型 | 说明 |
---|---|---|
error |
错误的详细信息(如果存在)。 |
|
tables |
查询的表数据列表 |
DatasetExecuteQueriesRequest
对数据集执行查询的请求
名称 | 类型 | 说明 |
---|---|---|
impersonatedUserName |
string |
要模拟的用户的 UPN。 如果模型未启用 RLS,则会忽略此情况。 |
queries |
要执行的数据集查询的列表 |
|
serializerSettings |
结果集的序列化设置 |
DatasetExecuteQueriesResponse
对数据集执行查询请求的响应
名称 | 类型 | 说明 |
---|---|---|
error |
错误的详细信息(如果存在)。 |
|
informationProtectionLabel |
与数据集关联的信息保护标签的详细信息(如果有)。 |
|
results |
结果列表,每个输入查询一个。 |
DatasetExecuteQueriesSerializationSettings
数据集查询结果的序列化设置
名称 | 类型 | 说明 |
---|---|---|
includeNulls |
boolean |
null (空) 值是否应包含在结果集中。 如果未指定,则默认值为 |
DatasetExecuteQueriesTableResult
数据表
名称 | 类型 | 说明 |
---|---|---|
error |
错误的详细信息(如果存在)。 |
|
rows |
object[] |
行列表 |