共用方式為


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 個數據列, (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
datasetId
path True

string

數據集標識碼

要求本文

名稱 必要 類型 Description
queries True

DatasetExecuteQueriesQuery[]

要執行的數據集查詢清單

impersonatedUserName

string

要模擬之使用者的UPN。 如果模型未啟用 RLS,則會忽略此情況。

serializerSettings

DatasetExecuteQueriesSerializationSettings

結果集的串行化設定

回應

名稱 類型 Description
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"
            }
          ]
        }
      ]
    }
  ]
}

定義

名稱 Description
DatasetExecuteQueriesError

如果有,則為錯誤的詳細數據。

DatasetExecuteQueriesInformationProtectionLabel

如果有任何與數據集相關聯的信息保護卷標詳細數據。

DatasetExecuteQueriesQuery

數據集查詢

DatasetExecuteQueriesQueryResult

單一數據集查詢的結果

DatasetExecuteQueriesRequest

對數據集執行查詢的要求

DatasetExecuteQueriesResponse

數據集的回應會執行查詢要求

DatasetExecuteQueriesSerializationSettings

數據集查詢結果的串行化設定

DatasetExecuteQueriesTableResult

數據表

DatasetExecuteQueriesError

如果有,則為錯誤的詳細數據。

名稱 類型 Description
code

string

與錯誤相關聯的代碼

message

string

錯誤的訊息。 如果沒有這裡,在錯誤物件下巢狀的詳細數據物件中,也會找到此資訊。

DatasetExecuteQueriesInformationProtectionLabel

如果有任何與數據集相關聯的信息保護卷標詳細數據。

名稱 類型 Description
id

string

信息保護標籤的識別碼 (guid)

name

string

資訊保護標籤的顯示名稱

DatasetExecuteQueriesQuery

數據集查詢

名稱 類型 Description
query

string

要執行的DAX查詢

DatasetExecuteQueriesQueryResult

單一數據集查詢的結果

名稱 類型 Description
error

DatasetExecuteQueriesError

如果有,則為錯誤的詳細數據。

tables

DatasetExecuteQueriesTableResult[]

查詢的數據表數據清單

DatasetExecuteQueriesRequest

對數據集執行查詢的要求

名稱 類型 Description
impersonatedUserName

string

要模擬之使用者的UPN。 如果模型未啟用 RLS,則會忽略此情況。

queries

DatasetExecuteQueriesQuery[]

要執行的數據集查詢清單

serializerSettings

DatasetExecuteQueriesSerializationSettings

結果集的串行化設定

DatasetExecuteQueriesResponse

數據集的回應會執行查詢要求

名稱 類型 Description
error

DatasetExecuteQueriesError

如果有,則為錯誤的詳細數據。

informationProtectionLabel

DatasetExecuteQueriesInformationProtectionLabel

如果有任何與數據集相關聯的信息保護卷標詳細數據。

results

DatasetExecuteQueriesQueryResult[]

結果清單,每個輸入查詢一個。

DatasetExecuteQueriesSerializationSettings

數據集查詢結果的串行化設定

名稱 類型 Description
includeNulls

boolean

null (空白) 值是否應該包含在結果集中。 如果未指定,則預設值為 false

DatasetExecuteQueriesTableResult

數據表

名稱 類型 Description
error

DatasetExecuteQueriesError

如果有,則為錯誤的詳細數據。

rows

object[]

數據列清單