執行中繼資料掃描
下列簡短逐步解說示範如何使用掃描程式 API,從組織 Fabric 項目擷取中繼資料。 內容假定 Fabric 管理員已在組織中設定中繼資料掃描。
如需中繼資料掃描傳回的成品和子成品中繼資料清單,請參閱適用於管理員的文件 - WorkspaceInfo GetScanResult API。
下列是掃描器 API。 這些 API 同時支援公用和主權雲端。
重要
您開發的掃描應用程式可以使用標準委派系統管理員存取權杖或服務主體進行驗證。 這兩個驗證路徑互斥。 在服務主體下執行時,您的應用程式上不得設定任何需要 Power BI 系統管理員同意的存取權限。 如需詳細資訊,請參閱為唯讀系統管理員 API 啟用服務主體驗證 (部分機器翻譯)。
步驟 1:執行完整掃描
在不使用 modifiedSince 參數的情況下呼叫 workspaces/modified,以取得租用戶中工作區識別碼的完整清單。 此掃描會擷取租用戶中的所有工作區,包括個人工作區和共用工作區。 如果您想要從掃描中排除個人工作區,請使用 workspaces/modified excludePersonalWorkspaces 參數。
將清單分成最多 100 個工作區的區塊。
針對 100 個工作區的每個區塊:
呼叫 workspaces/getInfo 以觸發這 100 個工作區的掃描呼叫。 您會在回應中收到 scanId,以在下一個步驟中使用。 在位置標頭中,您也會收到統一資源識別項 (URI) 來呼叫下一個步驟。
注意
不得同時撥打超過 16 個通話。 在叫用另一個呼叫之前,呼叫者應該先等候來自 scanStatus API 的掃描成功/失敗回應。
如果一些您預期收到的中繼資料未傳回,請與您的 Fabric 管理員聯絡,確保已啟用所有相關系統管理員切換。
使用您從呼叫 workspaces/getInfo 所取得的位置標頭 URI ,並在 workspaces/scanStatus/{scan_id} 輪詢,直到傳回狀態為「成功」為止。 此狀態表示掃描結果已就緒。 建議使用 30-60 秒的輪詢間隔。 在位置標頭中,您也會收到下一個步驟中要呼叫的 URI。 只有在狀態為「成功」之後才可以使用。
使用您呼叫 workspaces/scanStatus/{scan-id} 時所取得的位置標頭 URI,並使用 workspaces/scanResult/{scan_id} 讀取資料。 資料包含根據 workspaces/getInfo 呼叫中所傳遞參數的工作區、項目資訊和其他中繼資料清單。
步驟 2:執行累加掃描
現在,您擁有所有工作區及其資產的中繼資料和譜系,建議僅執行參考先前掃描的累加式掃描。
呼叫 workspaces/modified ,並將 modifiedSince 參數設定為上次掃描的開始時間,以取得已變更的工作區,因此需要再次掃描。 modifiedSince 參數應設定為過去 30 天內的日期。
將此清單分成最多 100 個工作區區塊,並使用如步驟 1 所述的三個 API 呼叫來取得這些已變更工作區的資料:workspaces/getInfo、workspaces/scanStatus/{scan_id},以及 workspaces/scanResult/{scan_id}。
考量與限制
- 尚未重新整理或重新發行的語意模型將會在 API 回應中傳回,但不會傳回其子成品資訊和運算式。 例如,語意模型名稱和譜系包含在回應中,但不包含語意模型的資料表和資料行名稱。
- 只有在語意模型上已採取特定動作時,僅包含 DirectQuery 的語意模型資料表才會傳回子成品中繼資料,例如在語意模型中建置報表,或根據語意模型檢視報表等等。
- 實時資料集、具有物件層級安全性的語意模型、即時連線至 AS-Azure 和 AS 內部部署的語意模型,以及不受子成品中繼資料支援的 Excel 完整逼真度資料集。 針對不受支援的資料集,回應會傳回無法從資料集取得子成品中繼資料的原因。 其位於名為 schemaRetrievalError 的欄位中,例如,schemaRetrievalError:不支援的要求。不支援的 RealTime 資料集。
- API 不會針對在共用工作區中大於 1 GB 的語意模型傳回子成品中繼資料。 在 Premium 工作區中,語意模型沒有大小限制。
授權
中繼資料掃描不需要特殊授權。 其適用於所有租用戶中繼資料,包括位於非進階版工作區中的項目。
相關內容
- 中繼資料掃描概觀
- 設定中繼資料掃描。
- 針對唯讀管理員 API 啟用服務主體驗證。
- 了解 Power BI REST 管理員 API。
- 更多問題嗎? 詢問 Power BI 社群。