在 Delta Live Tables 管線上執行更新

本文說明 Delta Live Tables 管線更新是什麼,以及如何執行。

建立管線並準備好執行它之後,您就會開始 更新。 管線更新會執行下列動作:

  • 使用正確的組態啟動叢集。
  • 探索定義的所有數據表和檢視,並檢查是否有任何分析錯誤,例如無效的數據行名稱、遺漏相依性和語法錯誤。
  • 使用最新的可用數據,建立或更新數據表和檢視。

您可以檢查管線原始程式碼中是否有問題,而不需等待使用 驗證更新建立或更新資料表。 這項 Validate 功能在開發或測試管線時很有用,可讓您快速尋找並修正管線中的錯誤,例如不正確的數據表或數據行名稱。

若要瞭解如何建立管線,請參閱 教學課程:執行您的第一個 Delta Live Tables 管線

啟動管線更新

Azure Databricks 提供數個選項來啟動管線更新,包括下列專案:

  • 在 Delta Live Tables UI 中,您有下列選項:
    • Delta 即時數據表開始圖示按兩下管線詳細數據頁面上的按鈕。
    • 從管線清單中,按兩下 向右箭號圖示[動作] 資料行。
  • 若要在筆記本中啟動更新,請按下筆記本工具列中的 [ Delta Live Tables > Start ]。 請參閱 從筆記本開啟或執行 Delta Live Tables 管線。
  • 您可以使用 API 或 CLI 以程式設計方式觸發管線。 請參閱 Delta Live Tables API 指南
  • 您可以使用 Delta Live Tables UI 或作業 UI,將管線排程為作業。 請參閱 排程管線

Delta Live Tables 如何更新數據表和檢視

資料表和檢視表已更新,以及這些數據表的更新方式取決於更新類型:

  • 全部重新整理:所有實時數據表都會更新,以反映其輸入數據源的目前狀態。 針對所有串流數據表,新的數據列會附加至數據表。
  • 全部重新整理:所有實時數據表都會更新,以反映其輸入數據源的目前狀態。 針對所有串流數據表,Delta Live Tables 會嘗試清除每個數據表中的所有數據,然後從串流來源載入所有數據。
  • 重新整理選取項目:的行為 refresh selectionrefresh all相同,但可讓您只重新整理選取的數據表。 選取的即時數據表會更新,以反映其輸入數據源的目前狀態。 針對選取的串流數據表,會將新的數據列附加至數據表。
  • 完整重新整理選取項目:的行為 full refresh selectionfull refresh all相同,但可讓您只對選取的數據表執行完整重新整理。 選取的即時數據表會更新,以反映其輸入數據源的目前狀態。 針對選取的串流數據表,Delta Live Tables 會嘗試清除每個數據表中的所有數據,然後從串流來源載入所有數據。

對於現有的實時數據表,更新的行為與具體化檢視上的SQL REFRESH 相同。 對於新的實時數據表,行為與 SQL CREATE 作業相同。

啟動所選取資料表的管線更新

您可能只想重新處理管線中所選資料表的數據。 例如,在開發期間,您只會變更單一數據表,而想要減少測試時間,或管線更新失敗,而您想要只重新整理失敗的 數據表

注意

您可以只搭配觸發的管線使用選擇性重新整理。

若要啟動只重新整理所選資料表的更新,請在 [ 管線詳細 數據] 頁面上:

  1. 按兩下 [ 選取資料表] 以重新整理。 [選取 要重新整理的數據表] 對話框隨即出現。

    如果您沒有看到 [ 選取要重新整理的 數據表] 按鈕,請確定 [ 管線詳細 數據] 頁面會顯示最新的更新,且更新已完成。 例如,如果未顯示最新更新的 DAG,因為更新失敗,則不會顯示 [ 選取重新整理數據表 ] 按鈕。

  2. 若要選取要重新整理的數據表,請按下每個數據表。 選取的數據表會反白顯示並加上標籤。 若要從更新中移除數據表,請再次按兩下數據表。

  3. 按兩下 [重新 整理] 選取專案

    注意

    [重新 整理選取專案 ] 按鈕會顯示括弧中選取的數據表數目。

若要重新處理已擷取所選數據表的數據,請按兩下 藍色向下插入號[重新整理選取專案] 按鈕旁的 [重新整理] 選取範圍,然後按兩下 [完整重新整理] 選取專案

啟動失敗數據表的管線更新

如果管線更新因為管線圖形中的一或多個數據表發生錯誤而失敗,您可以只啟動失敗數據表和任何下游相依性的更新。

注意

排除的數據表不會重新整理,即使它們相依於失敗的數據表也一樣。

若要更新失敗的數據表,請在 [ 管線詳細數據 ] 頁面上,按兩下 [ 重新整理失敗的數據表]。

只更新選取的失敗資料表:

  1. 按兩下 按鈕向下[重新整理失敗的數據表] 按鈕旁的 ,然後按兩下 [選取數據表以進行重新整理]。 [選取 要重新整理的數據表] 對話框隨即出現。

  2. 若要選取要重新整理的數據表,請按下每個數據表。 選取的數據表會反白顯示並加上標籤。 若要從更新中移除數據表,請再次按兩下數據表。

  3. 按兩下 [重新 整理] 選取專案

    注意

    [重新 整理選取專案 ] 按鈕會顯示括弧中選取的數據表數目。

若要重新處理已擷取所選數據表的數據,請按兩下 藍色向下插入號[重新整理選取專案] 按鈕旁的 [重新整理] 選取範圍,然後按兩下 [完整重新整理] 選取專案

檢查管線是否有錯誤,而不等待數據表更新

重要

Delta Live Tables Validate 更新功能處於 公開預覽狀態

若要檢查管線的原始程式碼是否有效而不執行完整更新,請使用 ValidateValidate更新會解析管線中定義的數據集和流程定義,但不會具體化或發佈任何數據集。 驗證期間發現的錯誤,例如不正確的數據表或數據行名稱,會在UI中報告。

若要執行Validate更新,請在管線詳細數據頁面上,按兩下 藍色向下插入號 [開始] 旁的 [驗證]。

更新 Validate 完成之後,事件記錄檔會顯示只與 Validate 更新相關的事件,而且 DAG 中不會顯示任何計量。 如果找到錯誤,事件記錄檔中會提供詳細數據。

您只能看到最新 Validate 更新的結果。 Validate如果更新是最近執行的更新,您可以在更新歷程記錄選取它來查看結果。 如果在更新之後 Validate 執行另一個更新,UI 中就無法再使用結果。

連續與觸發的管線執行

如果管線使用 觸發的執行 模式,系統會在成功重新整理管線中的所有數據表或選取的數據表之後停止處理,確保每個屬於更新一部分的數據表都會根據更新啟動時可用的數據來更新。

如果管線使用 持續 執行,Delta Live Tables 會在數據來源送達時處理新數據,讓整個管線中的數據表保持最新狀態。

執行模式與正在計算的數據表類型無關。 具體化檢視和串流數據表都可以在任一執行模式中更新。 為了避免在連續執行模式下進行不必要的處理,管線會自動監視相依的差異數據表,並只在這些相依數據表的內容變更時執行更新。

注意

Delta Live Tables 運行時間無法偵測非差異數據源中的變更。 數據表仍會定期更新,但預設觸發間隔較高,以避免過度重新計算使叢集上發生的任何累加處理變慢。

比較數據管線執行模式的數據表

下表醒目提示這些執行模式之間的差異:

觸發 連續
更新何時停止? 自動完成一次。 持續執行,直到手動停止為止。
處理哪些數據? 啟動更新時可用的數據。 所有數據到達設定的來源時。
最適合使用哪些數據新鮮度需求? 數據更新每隔 10 分鐘、每小時或每天執行一次。 每 10 秒到幾分鐘之間需要的數據更新。

觸發的管線可以減少資源耗用量和費用,因為叢集只執行足夠長的時間來執行管線。 不過,在觸發管線之前,將不會處理新的數據。 持續管線需要一律執行的叢集,其成本更高,但會降低處理延遲。

您可以使用設定中的 [管線模式] 選項來設定執行模式

如何選擇管線界限

Delta Live Tables 管線可以處理單一數據表的更新、具有相依關聯性的許多數據表、沒有關聯性的許多數據表,或具有相依關聯性之數據表的多個獨立流程。 本節包含可協助判斷如何分割管線的考慮。

較大的差異實時數據表管線有許多優點。 其中包括下列各項:

  • 更有效率地使用叢集資源。
  • 減少工作區中的管線數目。
  • 減少工作流程協調流程的複雜性。

關於處理管線應如何分割的一些常見建議包括下列各項:

  • 在小組界限分割功能。 例如,數據小組可能會維護管線來轉換數據,而數據分析師則維護分析已轉換數據的管線。
  • 在應用程式特定界限上分割功能,以減少結合,並協助重複使用一般功能。

開發和生產模式

您可以在開發與生產模式之間切換,以優化管線執行。 差異實時數據表環境切換圖示使用管線 UI 中的按鈕,在這兩種模式之間切換。 根據預設,管線會在開發模式中執行。

當您在開發模式中執行管線時,Delta Live Tables 系統會執行下列動作:

  • 重複使用叢集以避免重新啟動的額外負荷。 根據預設,叢集會在啟用開發模式時執行兩個小時。 您可以使用設定計算設定中的 設定來變更此pipelines.clusterShutdown.delay設定。
  • 停用管線重試,讓您可以立即偵測並修正錯誤。

在生產模式中,Delta Live Tables 系統會執行下列動作:

  • 重新啟動叢集,以取得特定的可復原錯誤,包括記憶體流失和過時認證。
  • 在發生特定錯誤時重試執行,例如無法啟動叢集。

注意

在開發和生產模式之間切換只會控制叢集和管線執行行為。 儲存體 發行數據表目錄中的位置和目標架構必須設定為管線設定的一部分,而且在模式之間切換時不會受到影響。

排程管線

您可以手動啟動觸發的管線,或使用 Azure Databricks 作業依排程執行管線。 您可以直接在 Delta Live Tables UI 中使用單一管線工作來建立及排程作業,或將管線工作新增至作業 UI 中的多任務工作流程。

若要在 Delta Live Tables UI 中建立單一工作工作和作業的排程:

  1. 按兩下 [ 排程 > ] [新增排程]。 如果管線包含在一或多個排程工作中,則 [排程] 按鈕會更新以顯示現有排程的數目,例如排程 (5)
  2. [作業名稱] 欄位中輸入作業的名稱
  3. 將 [ 排程] 設定為 [已排程]。
  4. 指定期間、開始時間和時區。
  5. 設定一或多個電子郵件位址,以在管線啟動、成功或失敗時接收警示。
  6. 按一下 [建立]