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 個數據列(1 百萬個除以 20 個數據列)。
- 每個查詢最多 15 MB 的數據。 超過 15MB 之後,目前的數據列將會完成,但不會寫入其他數據列。
- 不論查詢的數據集為何,每位使用者每分鐘有120個查詢要求的限制。
- 若要使用服務主體,請確定系統管理員租用戶設定 [允許服務主體在 開發人員設定 下使用Power BI API。 不過,無論系統管理員租用戶設定為何,每個 RLS 限制的數據集都不支援服務主體 或已啟用 SSO 的數據集。
- 目前僅支援DAX查詢。 不支援 MDX、INFO 函式和 DMV 查詢。
POST https://api.powerbi.com/v1.0/myorg/datasets/{datasetId}/executeQueries
URI 參數
名稱 | 位於 | 必要 | 類型 | Description |
---|---|---|---|---|
dataset
|
path | True |
string |
數據集標識碼 |
要求本文
名稱 | 必要 | 類型 | Description |
---|---|---|---|
queries | True |
要執行的數據集查詢清單 |
|
impersonatedUserName |
string |
要模擬之使用者的UPN。 如果模型未啟用 RLS,則會忽略此專案。 |
|
serializerSettings |
結果集的串行化設定 |
回應
名稱 | 類型 | Description |
---|---|---|
200 OK |
還行 |
範例
Execute queries example
範例要求
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"
}
範例回覆
{
"results": [
{
"tables": [
{
"rows": [
{
"MyTable[Year]": 2010,
"MyTable[Quarter]": "Q1"
},
{
"MyTable[Year]": 2010,
"MyTable[Quarter]": "Q2"
},
{
"MyTable[Year]": 2011,
"MyTable[Quarter]": "Q1"
}
]
}
]
}
]
}
定義
名稱 | Description |
---|---|
Dataset |
如果存在,則為錯誤的詳細數據。 |
Dataset |
信息保護標籤的詳細數據,如果有的話,與數據集相關聯。 |
Dataset |
數據集查詢 |
Dataset |
單一數據集查詢的結果 |
Dataset |
對數據集執行查詢的要求 |
Dataset |
數據集的回應會執行查詢要求 |
Dataset |
數據集查詢結果的串行化設定 |
Dataset |
數據表 |
DatasetExecuteQueriesError
如果存在,則為錯誤的詳細數據。
名稱 | 類型 | Description |
---|---|---|
code |
string |
與錯誤相關聯的程序代碼 |
message |
string |
錯誤的訊息。 如果不存在這裡,在錯誤物件下巢狀的詳細數據物件中也會找到此資訊。 |
DatasetExecuteQueriesInformationProtectionLabel
信息保護標籤的詳細數據,如果有的話,與數據集相關聯。
名稱 | 類型 | Description |
---|---|---|
id |
string |
資訊保護標籤的識別碼 (guid) |
name |
string |
資訊保護標籤的顯示名稱 |
DatasetExecuteQueriesQuery
數據集查詢
名稱 | 類型 | Description |
---|---|---|
query |
string |
要執行的DAX查詢 |
DatasetExecuteQueriesQueryResult
單一數據集查詢的結果
名稱 | 類型 | Description |
---|---|---|
error |
如果存在,則為錯誤的詳細數據。 |
|
tables |
查詢的數據表數據清單 |
DatasetExecuteQueriesRequest
對數據集執行查詢的要求
名稱 | 類型 | Description |
---|---|---|
impersonatedUserName |
string |
要模擬之使用者的UPN。 如果模型未啟用 RLS,則會忽略此專案。 |
queries |
要執行的數據集查詢清單 |
|
serializerSettings |
結果集的串行化設定 |
DatasetExecuteQueriesResponse
數據集的回應會執行查詢要求
名稱 | 類型 | Description |
---|---|---|
error |
如果存在,則為錯誤的詳細數據。 |
|
informationProtectionLabel |
信息保護標籤的詳細數據,如果有的話,與數據集相關聯。 |
|
results |
結果清單,每個輸入查詢一個。 |
DatasetExecuteQueriesSerializationSettings
數據集查詢結果的串行化設定
名稱 | 類型 | Description |
---|---|---|
includeNulls |
boolean |
是否應該在結果集中包含 Null (空白) 值。 如果未指定,則預設值為 |
DatasetExecuteQueriesTableResult
數據表
名稱 | 類型 | Description |
---|---|---|
error |
如果存在,則為錯誤的詳細數據。 |
|
rows |
object[] |
數據列清單 |