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 和 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
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"
}
]
}
]
}
]
}
定義
名稱 | 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[] |
數據列清單 |