DataWorks工作空間類型分為“簡單模式”、“標準模式”兩種,兩種類型在權限管理上有細分區別。本實踐將基于DataWorks標準模式空間完成從“數據建模”到“數據生產”的基本流程,幫助您快速掌握規范化的數據體系建設流程,提升在數據開發過程中的規范性、安全性、穩定性。
背景信息
DataWorks采取RBAC權限模型供用戶管理DataWorks所有頁面可見功能以及API的使用權限,同時這套權限體系與MaxCompute的RBAC角色體系存在天然的映射關系,詳情可參見空間級模塊權限管控。不同工作空間類型的權限管理特征與優缺點不一致,以下表格為您對比介紹兩種空間類型的權限細分特點。
細分特點 | 簡單模式 | 標準模式 |
描述 | 在簡單模式工作空間下,一個DataWorks空間下層對應一個MaxCompute項目(或一個EMR集群、Hologres數據庫等),該環境即視為生產(PROD)環境。 | 在標準模式工作空間下,一個DataWorks空間下層對應兩個MaxCompute項目(或兩個EMR集群、Hologres數據庫等),一個視為開發(DEV)環境,一個視為生產(PROD)環境。 |
權限概述 | 在簡單模式空間下,DataWorks的“開發”角色因為與MaxCompute數據源的“Role_Project_Dev” Role進行了映射,因此DataWorks開發角色天然能夠讀取MaxCompute項目內的所有數據。 | 在標準模式空間下,DataWorks的“開發”角色因為與MaxCompute數據源(dev環境)的“Role_Project_Dev” Role進行了映射,因此:
|
優點 | 簡單、方便、易用。 僅需要授權數據開發人員“DataWorks開發角色”即可完成所有數據倉庫開發工作。 | 安全、規范。
|
缺點 | 存在不穩定、不安全的風險。
| 流程相對復雜,一般情況下無法一人完成所有數據開發、生產流程。 |
關于簡單模式與標準模式差異詳情可參考文檔:必讀:簡單模式和標準模式的區別
標準模式對使用流程的影響
如圖,標準模式“生產、開發隔離”的模式將影響數據模型設計、數據處理邏輯代碼發布等流程。
實踐操作流程
以下以一個具體的實踐為您演示,標準模式下規范化的數據開發流程。
Step1:開通產品與創建空間
開通DataWorks與MaxCompute。
創建DataWorks工作空間。
說明阿里云主賬號可直接操作創建工作空間,如需使用RAM用戶創建工作空間,則需對RAM用戶授權后再操作,詳情可參見創建RAM用戶。
配置工作空間基本信息。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的工作空間,進入工作空間列表頁面。單擊創建工作空間,參數根據界面提示配置,完成后單擊創建工作空間。
為工作空間創建MaxCompute數據源。具體操作,請參見創建MaxCompute數據源。
其中生產環境的MaxCompute訪問身份即調度訪問身份,是開發任務發布到生產環境進行周期性調度運行時所使用的身份,通常情況下為保證調度任務順利進行,比起開發者自己的身份來,調度訪問身份往往擁有較大數據范圍讀寫權限。
生產環境MaxCompute訪問身份默認情況下為阿里云主賬號,如您存在不同部門使用不同空間并要求調度訪問身份權限隔離,則可以選擇獨立RAM用戶作為該空間專屬調度身份。
Step2:角色管理
在DataWorks工作空間下,您可以根據不同的業務場景為不同的RAM用戶設置不同的工作空間權限,DataWorks目前有預設角色,同時也支持您自定義角色。您在將RAM用戶添加到DataWorks工作空間時,可以選擇添加為當前工作空間的預設角色或者自定義角色。
DataWorks權限體系與MaxCompute權限體系是相互獨立的,某個用戶擁有DataWorks使用權限不代表一定擁有MaxCompute使用權限,但工作空間的兩種模式權限的情況例外,如背景信息所示。
角色規劃。
預設角色
DataWorks提供預設角色供用戶進行快速授權,具體權限請參見附錄:預設角色權限列表(空間級),除此之外,預設角色權限控制大體可以參考以下說明。
空間級別-空間管理員角色:可以做當前空間所有操作。
空間級別-開發角色:可以做任務開發的工作,如DataStudio任務開發、數據服務開發、DQC配置等。
空間級別-運維角色:負責配置資源與任務部署,如配置數據源、發布任務。
空間級別-部署角色:僅負責發布任務。
空間級別-模型設計師角色:僅能操作建模工作,無法定義數據標準。
同時,為方便用戶進行數據開發工作,這些DataWorks預設角色與MaxCompute數據源Role存在映射關系,詳情請參見背景信息。
以下以一個案例為您示例。
DataWorks上給一個RAM用戶授予開發角色,他可以在DataWorks上開發代碼并且提交,但是他不能將代碼直接發布到生產,發布生產操作需要有運維權限(項目所有者、管理員、運維角色擁有此權限)。
在MaxCompute引擎層面,DataWorks上為RAM用戶授予開發角色這個操作,在MaxCompute引擎層面就是為這個RAM用戶授予了一個role_project_dev這個角色,這個角色會被賦予一些當前MaxCompute項目的表和項目的權限。
說明查看MaxCompute Role所擁有權限請參考用戶規劃與管理。
DataWorks自定義角色
您可以通過自定義角色控制是否讓某個RAM用戶只能訪問部分模塊,同時您也可以自行控制配置引擎權限映射操作給該自定義角色默認的底層MaxCompute引擎相關的權限。
角色分配。
在本案例中,您需要準備至少5個RAM用戶,并對其賦予如下幾種角色: 授權步驟請參考用戶授權與管理,其中:
數據團隊主管被賦予“空間管理員”權限。
數據開發人員被賦予“開發角色”權限。
數據建模人員被賦予“模型設計師角色”權限。
運維人員被賦予“運維角色”權限。
數據分析師人員被賦予“開發角色”權限。
Step3:權限管理
在上述“角色管理”中已對角色相關內容進行了介紹,雖然部分默認配置涉及數據權限管理(如背景信息),但DataWorks仍提供了更為專業的概述,幫助您快速構建平臺的數據內容、個人隱私等相關的安全能力,實現更加精細化、場景化的數據權限及高危風險行為管控,滿足企業面向高風險場景的各類安全要求(例如,審計),無需您額外配置即可直接使用該功能。
準備工作。
請參考如下步驟打開相關配置,以實現更加精細化的權限管控能力。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的工作空間,進入工作空間列表頁面。,單擊創建工作空間,選擇生產、開發環境隔離,其他參數根據界面提示配置,完成后單擊創建工作空間。
啟動列級別訪問控制。詳情請參見Label權限控制。
進入安全中心平臺安全診斷,打開數據下載控制。
操作詳情請參見進入平臺安全診斷。打開后即可實現odpscmd tunnel download,數據下載權限需申請后才能執行。
標準模式下的數據權限管理。
在標準模式下,當數據產出至生產環境后,默認情況下任何人均無數據讀寫權限。此時,如開發人員或分析師需讀取生產環境數據進行數據分析或用于生產,則可以發起相關權限申請流程。
默認數據權限申請流程。
登錄數據地圖定位至某張表。
點擊權限申請。
選擇所需申請的權限點以及字段并發起申請。
執行審批。
表責任人(Owner)或空間管理員角色進入DataWorks審批中心-待我審批,即可完成表權限審批。
自定義數據權限申請流程。
在上述步驟中,表權限申請流程僅需由“表責任人(Owner)”或“空間管理員”執行審批即可,但對于權限管控相對嚴格的企業來說,遠遠無法滿足其需求,仍需更加復雜的審批流程來支持權限申請與審批。
DataWorks支持管理員通過定義MaxCompute項目維度、數據保護傘分級分類維度的審批策略來進行數據權限申請審批,滿足企業在不同場景下、針對不同類別數據的審批流程定義,實現更加安全的授權流程。
Step4:數據建模
數據建模的流程包括:創建數據標準、創建數據模型、修改數據模型、保存模型至模型庫、提交模型至開發環境計算引擎。操作詳情請參見數據建模。
Step5:數據開發與生產
進行數據開發與生產前,您需要了解幾個重要的概念。
生產開發數據源
DataWorks支持基于標準模式工作空間對應的兩個環境這一特性,來分別為這兩個環境配置不同的數據庫訪問地址。即您可以在數據源配置界面分別為開發環境(DataStudio)測試運行時和生產調度時指定不同的數據庫訪問地址。
同一個名稱的數據源存在開發環境和生產環境兩套配置,您可以通過數據源隔離使其在不同環境隔離使用。DataWorks將通過判斷任務執行環境來自動訪問對應環境下該同名數據源對應的配置信息。詳情請參考數據源開發和生產環境隔離。
調度參數
調度參數是DataWorks在調度場景下支持自動根據業務時間替換為具體值的參數,節點中使用調度參數后,在調度場景下,可以實現將對應業務時間的業務數據動態寫入對應的時間分區中。詳情請參見調度參數支持的格式。
依賴關系
調度依賴就是調度場景下節點間的上下游依賴關系,在DataWorks調度場景中,上游節點運行成功,下游任務節點才會開始運行。
根據表血緣來配置節點調度依賴后,可以保障調度任務在運行時能取到正確的數據,避免下游節點取數據時,上游表數據還未正常產出,導致下游節點取數出現問題。
在DataWorks依賴配置中,上游節點的輸出作為下游節點的輸入,形成節點依賴關系。平臺支持通過自動解析快速設置節點依賴,關于調度依賴詳情可參考文檔調度依賴配置指引。
了解相關概念后,您可進行數據開發與生產的操作步驟。
以管理員權限創建生產開發數據源。
開發人員創建業務流程。
開發人員在業務流程內新建節點。
開發人員配置節點任務并配置調度屬性、依賴關系。
開發人員提交任務并發起代碼審核。
代碼審批人員進行代碼審核決定是否通過審批進入待發布狀態。
有運維權限的同學可將節點發布生產或者根據節點變更內容來決定是否取消發布。
運維同學或開發人員進入發布包界面查看發布狀態。