在 Delta Live Tables 管線上執行更新
本文說明 Delta Live Tables 管線更新是什麼,以及如何執行。
建立管線並準備好執行它之後,您就會開始更新。 管線更新會執行下列動作:
- 使用正確的設定啟動叢集。
- 探索所有已定義的數據表和檢視,並檢查是否有任何分析錯誤,例如無效的數據行名稱、遺漏相依性和語法錯誤。
- 使用最新的可用資料,建立或更新資料表和檢視。
使用驗證更新,您可以檢查管線原始程式碼中是否有問題,而不需要等待建立或更新數據表。 這項功能在開發或測試管線時很有用,因為它可讓您快速尋找並修正管線中的錯誤,例如不正確的數據表或數據行名稱。
若要瞭解如何建立管線,請參閱 設定 Delta Live Tables 管線。
您可以使用 Databricks 作業或其他工具協調管線更新。 請參閱 在工作流程中執行 Delta Live Tables 管線。
啟動管線更新
Azure Databricks 有數個選項可啟動管線更新,包括下列專案:
- 在 Delta Live Tables UI 中,您有下列選項:
- 按下 [管線詳細資料] 頁面上的 按鈕。
- 從管線清單中,按下 [動作] 資料行中的 。
- 若要在筆記本中啟動更新,請將筆記本附加至設定的管線,然後按兩下 [ 啟動]。 請參閱在筆記本中開發和偵錯差異即時資料表管線。
- 您可以使用 API 或 CLI 以程式設計方式觸發管線。 請參閱 管線 API。
- 您可以使用 Delta Live Tables UI 或工作 UI,將管線排程為工作。 請參閱排程管線。
注意
使用上述任何方法手動觸發管線更新的默認行為是重新整理全部。
Delta Live Tables 如何更新資料表和檢視
重要
串流數據表或具象化檢視表的完整刷新將清空並重新計算數據表或檢視表,以反映其輸入數據源的當前狀態。 針對串流數據表,檢查點也會重設。 例如,如果記錄已從數據源中移除,因為數據保留原則、手動刪除,或保留期間較短的來源,例如 Kafka,完整重新整理之後的數據表或檢視狀態可能會與先前的狀態不同。 此外,完成完整重新整理的時間和資源會與源數據的大小相互關聯。
Databricks 建議僅在必要時執行完整重整,並且當輸入數據源包含重新建立數據表或檢視當前狀態所需的數據時才這樣做。 若要防止在資料表或檢視表上執行完整重新整理,請將資料表屬性 pipelines.reset.allowed
設定為 false
。 請參閱 Delta Live Tables 數據表屬性。 您也可以使用 附加流程 將數據附加至現有的串流數據表,而不需要完整重新整理。
資料表和檢視已更新,以及這些數據表和檢視的更新方式取決於更新類型:
- 全部重新整理:所有資料表都會更新,以反映其輸入資料來源的目前狀態。 對於串流資料表,新的資料列會附加至資料表。
- 全部重新整理:所有資料表都會更新,以反映其輸入資料來源的目前狀態。 對於串流資料表,Delta Live Tables 會嘗試清除每個資料表中的所有資料,然後從串流來源載入所有資料。
-
重新整理選取項目:的行為
refresh selection
與refresh all
相同,但可讓您只重新整理選取的數據表。 選取的資料表會更新,以反映其輸入資料來源的目前狀態。 針對串流數據表,新的數據列會附加至數據表。 -
完整重新整理選取項目:的行為
full refresh selection
與 相同full refresh all
,但可讓您只對選取的數據表執行完整重新整理。 選取的資料表會更新,以反映其輸入資料來源的目前狀態。 針對串流數據表,Delta Live Tables 會嘗試清除每個數據表中的所有數據,然後從串流來源載入所有數據。
針對現有的具體化檢視,更新的行為與具體化檢視上的SQL REFRESH
相同。 針對新的具體化檢視,行為與 SQL CREATE
作業相同。
啟動所選取資料表的管線更新
您可以選擇只針對管線中選取的數據表重新處理數據。 例如,在開發期間,您只會變更單一資料表,而想要減少測試時間,或管線更新失敗,而您想要只重新整理失敗的資料表。
注意
您可以只搭配觸發的管線使用選用重新整理。
若要啟動,請只重新整理在 [管線詳細資料] 頁面所選資料表的更新:
按下 [選取資料表] 以重新整理。 [選取要重新整理的資料表] 對話方塊隨即出現。
如果您沒有看到 [ 選取數據表以進行重新 整理] 按鈕,請 確認 [管線詳細 數據] 頁面會顯示最新的更新,且更新已完成。 例如,如果未顯示最新更新的 DAG,因為更新失敗, 則不會顯示 [選取重新整理數據表 ] 按鈕。
若要選取要重新整理的數據表,請按下每個數據表。 選取的資料表會醒目提示並加上標籤。 若要從更新中移除數據表,請再次按兩下數據表。
按下 [重新整理選取範圍]。
注意
[重新整理選取範圍] 按鈕會顯示括弧中選取的資料表數目。
若要重新處理已擷取選取數據表的數據,請按兩下 [重新整理選取專案] 按鈕旁的 [重新整理] 選取範圍,然後按兩下 [完整重新整理] 選取專案。
啟動失敗資料表的管線更新
如果管線更新因為管線圖形中的一或多個資料表發生錯誤而失敗,您可以只啟動失敗資料表和任何下游相依性的更新。
注意
排除的資料表不會重新整理,即使它們相依於失敗的資料表也一樣。
若要更新失敗的資料表,請在 [管線詳細資料] 頁面上,按下 [重新整理失敗的資料表]。
只更新選取的失敗資料表:
按下 [重新整理失敗的資料表] 按鈕旁的 ,然後按下 [選取資料表以進行重新整理]。 [選取要重新整理的資料表] 對話方塊隨即出現。
若要選取要重新整理的數據表,請按下每個數據表。 選取的資料表會醒目提示並加上標籤。 若要從更新中移除數據表,請再次按兩下數據表。
按下 [重新整理選取範圍]。
注意
[重新整理選取範圍] 按鈕會顯示括弧中選取的資料表數目。
若要重新處理已擷取選取數據表的數據,請按兩下 [重新整理選取專案] 按鈕旁的 [重新整理] 選取範圍,然後按兩下 [完整重新整理] 選取專案。
檢查管線是否有錯誤,而不等待資料表更新
重要
Delta Live Tables Validate
更新功能目前為公開預覽。
若要檢查管線的原始程式碼是否有效而不執行完整更新,請使用驗證。
Validate
更新會解析管線中定義的資料集和流程定義,但不會具體化或發佈任何資料集。 驗證期間發現的錯誤,例如不正確的資料表或資料行名稱,會在UI中報告。
若要執行Validate
更新,請按兩下 [開始] 旁的管線詳細數據頁面,然後按兩下 [驗證]。
Validate
更新完成之後,事件記錄檔會顯示只與Validate
更新相關的事件,而且 DAG 中不會顯示任何計量。 如果找到錯誤,事件記錄檔中會提供詳細資料。
您只能看到最新 Validate
更新的結果。 如果 Validate
更新是最近執行的更新,您可以在更新歷程記錄中選取它來查看結果。 如果在更新之後 Validate
執行另一個更新,UI 中就無法再使用結果。
如何選擇管線界限
Delta Live Tables 管線可以處理單一資料表的更新、具有相依關聯性的許多資料表、沒有關聯性的許多資料表,或具有相依關聯性之資料表的多個獨立流程。 本節包含可協助判斷如何分割管線的考慮。
較大的差異實時數據表管線有數個優點。 其中包括下列各項:
- 更有效率地使用叢集資源。
- 減少工作區中的管線數目。
- 減少工作流程協調流程的複雜性。
關於處理管線應如何分割的一些常見建議包括下列各項:
- 在小組界限分割功能。 例如,數據小組可能會維護管線來轉換數據,而數據分析師則維護分析已轉換數據的管線。
- 在應用程式特定界限上分割功能,以減少結合,並協助重複使用一般功能。
開發和生產模式
您可以在開發與生產模式之間切換,以最佳化管線執行。 使用管線 UI 中的 按鈕,在這兩種模式之間切換。 根據預設,管線會在開發模式中執行。
當您在開發模式中執行管線時,Delta Live Tables 系統會執行下列動作:
- 重複使用叢集以避免重新啟動的額外負荷。 根據預設,叢集會在啟用開發模式時執行兩個小時。 您可以使用設定 Delta Live Tables 管線
pipelines.clusterShutdown.delay
設定來變更此設定。 - 停用管線重試,讓您可以立即偵測並修正錯誤。
在生產模式中,Delta Live Tables 系統會執行下列動作:
- 重新啟動叢集,以取得特定的可修復錯誤,包括記憶體流失和過時認證。
- 在發生特定錯誤時重試執行,例如無法啟動叢集。
注意
在開發和生產模式之間切換只會控制叢集和管線執行行為。 發行資料表目錄中的儲存位置和目標結構描述必須設定為管線設定的一部分,而且在模式之間切換時不會受到影響。
排程管線
您可以手動啟動觸發的管線,或使用 Azure Databricks 工作依排程執行管線。 您可以直接在 Delta Live Tables UI 中使用單一管線工作來建立及排程工作,或將管線工作新增至工作 UI 中的多任務工作流程。 請參閱Delta Live Tables 管線工作的作業。
若要在 Delta Live Tables UI 中建立單一工作工作和工作的排程:
- 按下 [排程 > 新增排程]。 如果管線包含在一或多個排程工作中,則會更新 [排程] 按鈕以顯示現有排程的數目,例如[排程] (5)。
- 在 [工作名稱] 欄位中,輸入工作的名稱。
- 將 [排程] 設定為 [已排程]。
- 指定期間、開始時間和時區。
- 設定一或多個電子郵件地址,以在管線啟動、成功或失敗時接收警示。
- 按一下 [建立]。