DataWorks的發布中心是資料開發中任務發布功能的升級版,主要解決多環境間節點、函數、資源、組件等對象的發布問題。當您需要將源工作空間中的節點、函數等對象同步至目標工作空間時,可以藉助該功能實現跨環境的一鍵發布。本文為您介紹發布中心的應用情境、邏輯說明、發布流程等內容。
功能介紹
發布中心的發佈動作以節點、函數、資源、組件等為最小執行單位,其關聯的商務程序及節點間依賴關係將同步部署至目標工作空間。詳情請參見發布變更邏輯。
基於不同的發布環境,DataWorks的發布中心支援同工作空間發布、跨工作空間發布和跨雲發布。
該功能僅支援標準模式且使用了新版資料開發的工作空間,在同一工作空間下,將節點、函數、資源、組件等對象批量從開發環境發布至生產環境。
跨工作空間發布主要用於同地區同一阿里雲帳號下,將節點、函數、資源、組件等對象從一個簡單模式的工作空間發布至另一個工作空間。基於該功能,您還可以實現簡單模式工作空間的生產開發環境隔離,更多資訊,請參見附錄:簡單模式如何?開發與生產隔離。
該功能僅支援使用了舊版資料開發的工作空間跨帳號、跨地區或跨雲平台(例如,金融雲、政務雲等)發布節點、函數、資源、組件等對象。其本質也是將節點由源工作空間遷移發布至目標工作空間,只是兩個工作空間所歸屬的地區、帳號、雲平台不同。
發布變更邏輯
如果節點存在依賴關係,則必須在上遊節點成功發布至目標工作空間後,下遊節點才能執行發佈動作。發布節點的變更情況如下:
節點發布時,系統會更改所有首碼為源工作空間名稱的節點輸入輸出,將其首碼由源工作空間名稱更換為目標工作空間名稱。同時,根據節點是否存在跨工作空間依賴,您可以基於業務需求配置發布環境的依賴映射參數,不同配置情況,節點發布後的上下遊依賴及輸入輸出名稱不同。詳情請參見:
發布MaxCompute引擎類任務,系統會修改任務代碼中涉及的源工作空間名稱為目標工作空間名稱,詳情請參見MaxCompute引擎類任務的代碼變更。
不存在跨工作空間依賴
project1中的節點不存在跨工作空間依賴,將project1的所有節點發布至project2。
發布後,所有的節點輸入輸出名稱中,涉及的project1首碼變更為project2。例如:
task_A的輸入名:由
project1_root變更為project2_root。task_A的輸出名:由
project1.task_A變更為project2.task_A。
存在跨工作空間依賴,未設定跨工作空間依賴映射
project1.task_A跨工作空間依賴project2.task_A,將project1的所有節點發布至project3。
發布後,節點的變更如下:
節點的輸入輸出:所有的節點輸入輸出名稱中,涉及的
project1首碼變更為project3。節點的跨工作空間依賴:原
project1.task_A跨工作空間依賴的project2.task_A,發布後,project3.task_A依然跨工作空間依賴project2.task_A。
存在跨工作空間依賴,設定了跨工作空間依賴映射
project1.task_A跨工作空間依賴project2.task_A,將project1的所有節點發布至project4,並設定project2依賴映射project3。
發布後,節點的變更如下:
節點的輸入輸出:所有的節點輸入輸出名稱中,涉及的
project1首碼變更為project4。節點的跨工作空間依賴:原
project1.task_A跨工作空間依賴的project2.task_A,發布後,project4.task_A跨工作空間依賴變更為依賴project3.task_A。
源工作空間的節點跨工作空間依賴使用系統輸出名時(即源工作空間節點的列表中包含了非本空間下節點的系統輸出名),建議您重新修改依賴使用非系統的輸出名,否則會出現發布失敗情況。
不建議引用系統產生的輸出名:
在未使用新版資料開發(Data Studio)的工作空間中,系統輸出名展示格式為
工作空間名稱.檔案ID_out,例如shanghai_simple02.504822000_out。建議引用如下格式的輸出名:
工作空間名稱.產出表名稱(推薦)工作空間名稱.節點名稱
MaxCompute引擎類任務的代碼變更
MaxCompute引擎類任務(例如,ODPS SQL、ODPS Spark等 )發布到目標工作空間後,執行任務代碼時,系統會將任務代碼中涉及的源工作空間名稱更換為目標工作空間名稱。
樣本task_A為ODPS SQL/MaxCompute SQL節點。在project1中查詢table_A的代碼為SELECT * FROM project1.tableA,將project1的所有節點發布至project2。
節點發布至project2後,查詢table_A的代碼將變更為SELECT * FROM project2.tableA。