AI/BI 儀表板中的資料集物質化

Important

這項功能位於 測試版 (Beta) 中。 要使用它,工作區管理員必須從預覽頁面開啟 AI/BI 儀表板的實體化功能。 請參閱 管理 Azure Databricks 預覽。

AI/BI 儀表板是以儀表板範圍內的資料集為基礎建構而成。 預設情況下,每個資料集都是即時評估,因此每當儀表板載入或檢視器與其互動時,底層查詢、加入和原始碼掃描都會在你的 SQL 倉庫中再次執行。 對於以高成本的來源端查詢或多個聯結為基礎的儀表板,在每次互動時都重新執行這些查詢,速度慢且成本高。

資料集物質化會預先計算並儲存結果,因此繁重的工作會在排程中一次性完成,而非每次儀表板載入或互動。 互動會從儲存的結果中渲染,讓發佈的儀表板更快。

實體化採用 Unity Catalog 計量視圖實體化技術。 請參閱度量檢視的具體化。

哪些內容會被實體化

Materialization 會預先計算並儲存資料集資料。 兩種資料集類型之間儲存的內容有所不同:

  • 對於 SQL 資料集,完整的查詢結果會預先計算並儲存。
  • 對於局部度量視圖,列層級資料模型(來源資料、連接欄位與過濾欄位)會被儲存,而測量值則仍會在查詢時根據預先計算的基底計算。

Benefits

資料集實體化帶來以下好處:

  • 更快的儀表板,無需重新建模。 昂貴的聯結與來源資料掃描會依排程執行,而非在每次載入時都執行,因此當儀表板重新查詢大型資料表時,檢視者就不必再等待。
  • 降低讀取時的資料倉儲成本。 預先計算基礎資料模型可避免每次檢視器與頁面載入重複相同繁重的查詢,從而減少冗餘的倉庫使用。
  • 沒有營運成本。 Azure Databricks 會幫你建立、儲存並刷新實體化的資料。 沒有管線、架構或儲存空間需要管理。

Costs

資料集實體化會產生儲存與計算成本:

  • 儲存空間。 你要為儲存實體化的資料付費。 收費取決於所使用的儲存裝置。 關於 Unity 目錄中儲存的概述,請參閱 使用 Unity 目錄連接雲端物件儲存。
  • 計算。 初始建立與刷新在無伺服器的 Lakeflow 管線上執行,並產生計算費用。 請參見 Lakeflow管線定價。

權衡這些成本與因避免重複掃描來源資料和聯結作業而節省的成本。 選擇一個能平衡資料新鮮度與計算成本的更新時程。

何時使用實體化

實體化並不總是提升效能的正確手段。 其好處在於,以讀取預先計算好的資料表,取代對資料集反覆進行的完整重新計算(掃描與連接)。 在符合以下一項或多項情況時,將資料集具體化:

  • 高度互動式的儀表板。 儀表板有許多篩選、交叉篩選或深入篩選功能。 若未進行實體化,每次互動都會重新執行資料集查詢,因此預先計算這些資料集,就能在單次工作階段中反覆帶來效益。
  • 昂貴的資料集。 資料集是建立在多個資料表聯結、複雜檢視表或通用資料表運算式(CTE)、視窗函式,或跨多個資料表的聯集作業之上。
  • 大型表格上的選擇性篩選。 該資料集會從數十億筆資料列中選取一小部分,例如某個區域或最近 7 天的資料。 物質化只儲存那小部分。
  • 對定時新鮮度的容忍度。 資料只需與儀表板更新排程相同,例如每小時或每日更新,而非即時更新。

對於很少載入的小型資料集或儀表板,即時查詢通常足夠快,實體化可能不值得花費那麼多成本。 因為實體化可針對每次發佈和每個資料集個別選擇是否啟用,所以你只需在能帶來效益的地方套用它。

要求

  • 存取 AI/BI 儀表板。
  • 儀表板會以 「分享資料權限 」選項發佈。 不支援對以個別資料權限發佈的儀表板進行實體化。 請參閱 什麼是共用資料權限?。
  • 工作區啟用無伺服器運算。 初始建立與刷新皆在無伺服器的 Lakeflow 管線上執行。 請參見 設置無伺服器 SQL 倉庫。
  • 在執行 Databricks Runtime 17.3 及以上版本的 SQL 倉儲上的 CAN USE 權限。

啟用資料集物質化

資料集預設會被選擇為物質化,但在儀表板上,物質化是關閉的,直到你在發佈時開啟 「物質化資料集」 選項。

選擇要實現哪些資料集

在 資料 標籤中,點擊資料集旁的實體化圖示以包含或排除該資料。

資料分頁中,一個資料集顯示綠色的具體化圖示,另一個資料集則顯示未選取圖示。

當你將資料集排除在物質化之外時,針對該資料集的查詢會回傳即時結果,而針對實體化資料集的查詢則會反映最新的實體化執行。 當所有資料集使用相同的具體化排程時,小工具的資料新鮮度會維持一致。

以實體化方式發佈

  1. 在草稿儀表板中點擊 發佈 。
  2. 在發佈對話框中選擇 「分享資料權限 」。
  3. 開啟 「Materialize datasets」 選項,即可將資料 頁選中的 資料集實體化。
  4. 按一下 [發佈]。

發布對話框,並選擇共享資料權限,並選擇資料集實體化選項。

在每次發佈時開啟 Materialize datasets 選項。

設定刷新時間表

實體化的資料會依儀表板的更新排程進行更新。 使用 儀表板排程 來調整刷新頻率。

如果儀表板沒有排程,啟用實體化發佈會新增每日更新排程。 現有的時刻表被保留。 若沒有啟用排程,物質化資料在建立後不會自動刷新。

儀表板的排程面板顯示一個 Datasets 實體化的更新排程徽章。

查看實體化狀態

在已公布的儀表板中,打開 烤肉串選單圖示。 選單並選擇 資訊。 側邊欄顯示每個具體化資料集的狀態與刷新資訊。

已發佈儀表板的烤肉串選單,並有資訊選項以查看物質化狀態。

資訊側邊欄列出每個實體化資料集的狀態與刷新資訊。

重用與清理

Azure Databricks 管理你實體化資料的生命週期:

  • 跨修訂版本重複使用。 若同一使用者重新發布儀表板且資料集未被更改,現有的實體化將被重用,避免浪費計算。
  • 自動清理。 Azure Databricks 會刪除已發佈的儀表板不再參考的實體化結果,例如在定義變更或取消發佈之後。

重新發布不一定能刷新已具象化的資料。

Limitations

資料集實體化有以下限制:

  • 僅公開顯示儀表板。 實體化適用於已發佈的儀表板。 草稿持續查詢即時數據。
  • 沒有參數化資料集。 定義參數的資料集無法被具體化。 如果你選擇將參數化資料集納入實體化,Azure Databricks 不會將其實體化,而是會將其標示為失敗。
  • 刷新只依照儀表板的排程進行。 沒有為每個資料集獨立的更新排程。 實體化會依照儀表板的排程重新整理頻率進行重新整理。
  • 需要無伺服器架構。 初始建立與刷新是在無伺服器的 Lakeflow 管線上執行,因此工作區必須啟用無伺服器運算。
  • 受保護的資料不會從實體化中提供。 無法為受列級安全、欄遮罩或屬性基礎存取控制(ABAC)政策保護的來源資料建立實體化。 若在建立物質化後為來源資料表新增列級安全性,後續對度量視圖的查詢會繞過物質化,直接對原始資料執行。
  • 分享所需資料權限。 只有在你以共享資料權限發佈時,才能啟用實體化。 以個別資料權限發佈時,您無法啟用此功能。

常見問題

以下問題涵蓋資料集實體化行為、刷新與權限。

具體化會改變我的指標或結果嗎?

實體化會保留資料集的查詢邏輯,但其資料會反映最新一次成功重新整理的資料。 對於局部度量視圖,測量是在查詢時針對已實現的資料計算。 請參閱哪些內容會被具體化。

如果實體化尚未準備好或無法取得會怎樣?

如果實體化尚未準備好或在查詢時無法取得,查詢會回傳錯誤,而非查詢即時資料。 等物質化完成後,再重新執行查詢。

具體化的資料存放在哪裡?

Azure Databricks 會將實體化資料儲存在受管理的內部儲存體中,其範圍限定於你已發佈的儀表板。 你沒有東西可以發佈到 Unity Catalog,也沒有架構或儲存空間需要管理。 存取權限仍然依循您的儀表板及其基礎資料的權限設定。

具體化的資料多久刷新一次?

實體化的資料會依儀表板的更新排程進行更新。 請參見 設定刷新時間表。

具體化使用哪些運算資源?

初始建立和刷新都運行在由 Azure Databricks 管理的無伺服器 Lakeflow 管線上。 這就是為什麼工作空間必須啟用無伺服器運算。

物質化會影響權限嗎?

No. 物質化不會賦予額外資料存取權。 存取權限仍依照儀表板的分享設定及發布權限。

當我重新出版時會發生什麼事?

當同一使用者重新發布未更改的資料集時,現有的物質化資料可以重複使用。 請參見 重複使用與清理。 在每次發佈時開啟 Materialize datasets 選項。

其他資源