使用DataWorks進行大數據開發時,支持對開發、測試、生產等環境進行隔離,當您聯合使用了其他阿里云產品時,也可根據環境隔離訴求進行對應業務的環境設置與隔離,本文以DataWorks聯合EMR、OSS等產品為例,為您介紹如何實現開發生產等多套環境隔離。
背景信息
很多企業用戶在大數據的研發流程中有創建并隔離多套環境的需求,如創建并完全隔離開發、測試、生產環境,即各環境的數據物理存儲地址、任務運行集群、大數據作業腳本均隔離,并對操作人員有嚴格的權限管控,如僅運維團隊可使用生產環境,開發人員只能使用開發環境等要求。
本文以使用DataWorks、EMR、OSS、DLF進行大數據開發,并實現開發、生產環境隔離為例,為您示例如何實現環境隔離。其中:
DataWorks用于管理大數據作業的開發、運維、調度。
2個EMR集群分別用于開發和生產環境。
OSS用于存儲實際數據。
DLF用于存儲管理元數據。
DLF的環境隔離
在DLF中創建兩個數據目錄(catalog), 一個用于存儲開發環境下的元數據(dev catalog),一個用于存儲生產環境下的元數據(prod catalog),并設置目錄路徑為不同的OSS路徑。
操作詳情請參見數據目錄。
在相應的數據目錄中創建數據庫, 建議開發、生產的數據目錄下的數據庫名稱相同,指向的OSS路徑不同,方便后續的遷移工作。
EMR集群的環境隔離
分別設置2個EMR集群中各個引擎的catalog信息,保證EMR開發環境的集群引擎使用上述創建的開發環境的數據目錄(dev catalog),生產環境集群引擎使用的是生產環境的數據目錄(prod catalog)。
以Hive引擎為例,用于開發環境的實例需修改hive引擎中dlf.catalog.id
為開發環境的數據目錄(dev catalog),核心配置頁面如下。操作詳情請參見管理配置項。
以上為hive引擎的示例,2個EMR實例中,所有類型的引擎都需參考上述描述進行修改。
引擎配置修改完成后,需要下發配置并重啟組件,使修改的配置生效。
DataWorks的環境隔離
簡單模式空間環境隔離
分別創建2個簡單模式的DataWorks工作空間,一個用于開發環境,綁定開發環境的EMR集群,一個用于生產環境,綁定生產環境的EMR集群。操作詳情請參見創建工作空間。
在開發環境的工作空間中,使用DataStudio進行任務開發和調度配置,同時建表語句使用SQL命令完成。
建表語句示例:
CREATE TABLE if NOT EXISTS db1.table1 ( id int, name String);
說明由于數據庫已經在DLF中聲明了路徑,此處不再聲明路徑。
使用跨項目克隆功能,將開發環境下的業務流程發布至生產環境的工作空間中。
選擇需要克隆的業務流程,并設置計算引擎的映射、資源組等配置。操作詳情請參見發布中心概述。完成后即可在生產環境的工作空間中看到對應的任務,您可根據生產環境的業務需求進行修改、驗收、發布。
標準模式空間環境隔離
標準模式空間下,可以通過使用工作空間參數功能實現開發環境和生產環境分別訪問不同的EMR庫。
空間參數賦值不同的開發生產庫名,在代碼變量中賦值工作空間參數時可實現開發生產訪問不同的EMR庫。
定義工作空間參數。
進入數據開發頁面。登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入運維中心。
單擊左側導航欄中的調度設置,單擊頁面中的工作空間參數,單擊右側的新建工作空間參數按鈕,在新建工作空間參數對話框中,輸入以下參數信息:
參數名稱
示例值
參數名稱
emr_env,可自定義。
責任人
下拉選擇對應用戶。
適用工作空間
選擇所選工作空間名稱。
參數類型
選擇常量(明文)。
參數值(開發)
emr_dev,emr開發環境庫名。
參數值(生產)
emr_prod,emr生產環境庫名。
描述
可自定義。
您需要使用代碼變量賦值工作空間參數實現開發生產訪問不同的EMR庫,可以在DataStudio進行任務開發和調度配置時,單擊任務右側調度配置,在參數值位置配置工作空間參數名稱。具體操作如下圖所示:
任務發布開發環境時,變量會自動賦值為開發集群中存在的數據庫(emr_dev)。任務發布至生產環境時,變量會自動賦值為生產集群中存在的數據庫(emr_prod)。