共用方式為


執行元數據掃描

下列簡短逐步解說示範如何使用掃描器 API,從組織的 Fabric 專案擷取元數據。 它假設網狀架構系統管理員已在組織中設定元數據掃描。

如需元數據掃描傳回的成品和子標識符元數據清單,請參閱 管理員 - WorkspaceInfo GetScanResult API 的檔。

以下是掃描器 API。 它們同時支援公用和主權雲端。

重要

您為掃描開發的應用程式可以使用標準委派系統管理員存取令牌或服務主體進行驗證。 這兩個驗證路徑互斥。 在服務主體下執行時,您的應用程式上不得設定任何 Power BI 管理員同意的必要許可權。 如需詳細資訊,請參閱 啟用只讀系統管理員 API 的服務主體驗證。

步驟 1:執行完整掃描

在沒有modifiedSince 參數的情況下呼叫 workspaces/modified,以取得租使用者中工作區標識碼的完整清單。 此掃描會擷取租使用者中的所有工作區,包括個人工作區和共用工作區。 如果您想要從掃描中排除個人工作區,請使用 workspaces/modifiedexcludePersonalWorkspaces 參數。

將清單分成最多 100 個工作區的區塊。

針對 100 個工作區的每個區塊:

呼叫 workspaces/getInfo 以觸發這 100 個工作區的掃描呼叫。 您將在回應中收到 scanId,以在下一個步驟中使用。 在位置標頭中,您也會收到統一資源標識碼 (URI) 來呼叫下一個步驟。

注意

不能同時撥打超過16個通話。 呼叫端應該等候 scanStatus API 的掃描成功/失敗回應,再叫用另一個呼叫。

如果您預期收到的某些元數據未傳回,請洽詢您的 Fabric 系統管理員,以確定他們已啟用 所有相關的系統管理參數

使用您從呼叫工作區/getInfo 收到的位置標頭的 URI,並在工作區/scanStatus/{scan_id} 上進行輪詢,直到傳回的狀態為 “Succeeded”。 此狀態表示掃描結果已就緒。 建議使用 30-60 秒的輪詢間隔。 在位置標頭中,您也會在下一個步驟中收到要呼叫的 URI。 只有在狀態為 「成功」之後,才使用它。

使用您從呼叫 workspaces/scanStatus/{scan-id} 收到的位置標頭 URI,並使用 workspaces/scanResult/{scan_id}讀取數據。 數據會根據工作區/getInfo 呼叫中傳遞的參數,包含工作區、專案資訊和其他元數據的清單。

步驟 2:執行累加掃描

既然您擁有所有工作區及其資產的元數據和譜系,建議您只執行參考先前掃描的累加式掃描。

呼叫已設定為上次掃描開始時間的modifiedSince 參數所修改的工作區/修改,以取得已變更的工作區,因此需要另一次掃描。 modifiedSince 參數應該設定為過去 30 天內的日期。

將此清單分成最多 100 個工作區的區塊,並使用三個 API 呼叫、workspaces/getInfoworkspaces/scanStatus/{scan_id}和 workspaces/scanResult/{scan_id},取得這些已變更工作區的數據,如步驟 1 所述。

考量與限制

  • 尚未重新整理或重新發行的語意模型將會在 API 回應中傳回,但不會傳回其子語法資訊和表達式。 例如,語意模型名稱和譜系包含在回應中,但不包含語意模型的數據表和數據行名稱。
  • 包含 DirectQuery 數據表的語意模型只有在語意模型上已採取某種動作時,才會傳回子主題元數據,例如,在語意模型上建置報表的人、根據報表檢視報表的人員等等。
  • 不支援即時數據集、具有物件層級安全性語意模型、與 AS-AzureAS 內部部署即時連線的語意模型,以及子修飾元數據不支援 Excel 完整逼真數據集。 對於不支持的數據集,回應會傳回未從數據集取得子修飾元數據的原因。 其位於名為 schemaRetrievalError 的欄位中, 例如 schemaRetrievalError:不支援的要求。不支援 RealTime 資料集。
  • API 不會針對在共用工作區中大於 1 GB 的語意模型傳回子主題元數據。 在 進階版 工作區中,語意模型沒有大小限制。

授權

中繼資料掃描不需要特殊授權。 它適用於所有租使用者的元數據,包括位於非 進階版 工作區中的專案。