天天看點

激活資料價值,探究DataOps下的資料架構及其實踐

據中國信通院釋出,2012 年到 2021 年 10 年間,大陸數字經濟規模由 12 萬億元增長到 45.5 萬億元,在整個 GDP 中的比重由 21.6% 提升至 39.8%。順應時代發展新趨勢,“資料” 成為新的生産要素已是毋庸置疑的共識。

如果說資料中台的崛起代表着企業數字化轉型從流程驅動走向資料驅動,從數字化走向智能化。那麼 DataOps,則是實作資料中台的一個優秀的理念或方法論。

DataOps 的概念早在 2014 年即由 Lenny Liebmann 提出,2018 年 DataOps 正式被納入 Gartner 的資料管理技術成熟度曲線當中,标志着 DataOps 正式被業界所接納并推廣起來。雖然目前在國内仍處于發展初期,但是 DataOps 的熱度逐年上升,在可預見的未來 2-5 年内将得到更加廣泛的實踐應用。

袋鼠雲便是其中的一位探索者。作為全鍊路數字化技術與服務提供商的袋鼠雲,從創立以來便一直深耕大資料領域。伴随着各行各業加速數智化轉型的步伐逐年加快,對于資料治理、資料管理等方面的許多問題也逐漸顯露。

為此,在技術進步和客戶數字轉型需求的驅動下,袋鼠雲打造的一站式大資料開發與治理平台 —— 數棧 DTinsight,基于 DataOps 理念開展資料價值化流程,實作了資料全生命周期的品質監管和資料開發流程規範,為資料治理保駕護航。

響應變化

DataOps 的核心理念之一就是及時響應需求端的變化。下面是一張很典型的企業資料架構圖:

資料從左側的源系統流入,中間環節是各類資料處理的工具,例如資料湖、資料倉庫或資料集市、AI 分析等,資料經過清洗、加工、彙總統計、資料治理等過程,最終通過 BI、定制化報表、API 等工具服務于各類需求方。

激活資料價值,探究DataOps下的資料架構及其實踐

企業内的資料架構師或管理者,在定義平台架構時,一般主要考慮生産環境下的極緻的性能、延遲、負載管理等問題,很多計算引擎 / 資料庫都精于此道。但這種架構并沒有展現出「響應快速變化」的能力:

這就像是設計一條公路,在設計時隻考慮了正常情況下的通行能力,并沒有考慮事故、堵車、暴雨等各種臨時變化,在「上線」之後發現每日疲于應對,并沒有提升太多通行能力(比如隻有 2 個車道的隧道,一個小的剮蹭事故就可能把整條隧道堵住)。企業内的資料平台也會遇到類似的情況,企業内的資料工作者,每天甚至每個小時都要響應這種變化,有時一個簡單的 SQL 變更上線甚至可能要花幾天的時間。

在設計階段考慮各種變化,可以更靈活、更穩定的響應,下面是 DataOps 視角下的資料架構。

DataOps 視角下的資料架構

資料架構師在建設伊始就提出如下一些靈活性的标準,例如:

・任務從完成開發到釋出生産,需要在 1 小時内完成,且對生産環境無影響

・在釋出至生産環境前,及時發現資料錯誤

・重大變更,在 1 天内完成

同時需要考慮一些環境的問題,包括:

・必需維護獨立的開發、測試和生産環境,但要在一定程度上保證其一緻性,至少是中繼資料的一緻性

・可以人工編排,或自動化的實作資料的測試、品質監控以及部署至生産環境

當架構師開始思考資料品質、快速釋出、資料的實時監控等問題時,企業就向 DataOps 邁進了一步。

DataOps 架構的分解與實踐

講完了 DataOps 視角下的資料架構,接下來來講講 DataOps 架構的分解與實踐。DataOps 具體實踐可以分解為如下幾個關鍵點:

激活資料價值,探究DataOps下的資料架構及其實踐

多環境的管理

DataOps 的第一步從「環境管理」開始,一般是指獨立的開發、測試和生産環境,每個環境下都可以支援任務的編排、監控和自動化測試。

數棧目前可支援同時對接多套環境,隻要網絡相通,即可實作一套數棧對多個不同環境的統一對接和統一管理。數棧是通過 Console 中的「叢集」概念來進行不同環境的區分,不同的叢集可靈活對接各類不同的計算引擎,例如各類開源或發行版 Hadoop、星環 Inceptor、Greenplum、OceanBase,甚至 MySQL、Oracle 等傳統的關系型資料庫,如下圖所示:

激活資料價值,探究DataOps下的資料架構及其實踐

任務釋出

承接上個步驟的多環境管理,在實際開發過程中,需要進行多個環境之間的任務釋出,假設存在開發、測試、生産環境,則需要在多個環境之間進行級聯形式的釋出,如下圖所示:

激活資料價值,探究DataOps下的資料架構及其實踐

在這種多環境釋出的情況下,數棧可支援三種方式進行釋出管理:

● 一鍵釋出

當各個環境網絡相通,可使用一套平台對接各個環境,實作「一鍵釋出」。一鍵釋出過程中,僅有一定權限的使用者才可以執行釋出動作,提升生産環境穩定性。與此同時,可自動替換一些關鍵的環境資訊,例如同步任務中的資料源連接配接參數、不同環境下的算力配置等。一鍵釋出比較适合 SaaS 或内部雲平台的管理方式。

● 導入 / 導出式釋出

在目前國内接觸的絕大多數場景中,客戶為了實作更高的安全等級,生産環境會采用嚴格的實體隔離。這種場景可以采用導入導出的方式實作任務的跨環境釋出,使用者可手動将新增、變更或删除的任務導入至下遊環境。

● Devops 釋出

某些客戶可能已經采購或自研了公司級的線上釋出工具,此時需要數棧定制化的對接其接口,将相關變更資訊由第三方 CI 工具(例如 Jekins)代為執行釋出。

激活資料價值,探究DataOps下的資料架構及其實踐

代碼的版本管理

每次進行跨環境的釋出時,需要記錄每次釋出代碼的版本,便于後期排查問題。在實際場景中,經常需要進行不同版本間的代碼對比、版本回退等操作。

數棧除了支援對代碼内容進行對比之外,還支援對任務相關的更多資訊進行對比,包括任務排程周期的配置、任務執行參數、環境參數等,并可以「一鍵回退」至指定的版本。

激活資料價值,探究DataOps下的資料架構及其實踐

通路與權限管理

在企業内的多個環境中,一般對生産環境的要求最高,對開發和測試環境相對寬松。在這種情況下,即需要管理使用者在不同環境下的認證或通路資訊。實際上為了開發和測試友善,且沒有敏感資料,在這 2 個環節,一般是普通使用者都有全部的資料權限,并可以通路各種工具,但在生産環境中,使用者肯定隻有自己權限範圍内的資料權限。

根據引擎的不同,數棧可支援多種資料權限管理方式,包括:

● Hadoop 引擎

以 Kerberos 為基礎的認證安全 + 以 Ranger/LDAP 為基礎的資料安全。可以支援庫、表、字段級别的資料權限控制。同時可支援資料脫敏。

激活資料價值,探究DataOps下的資料架構及其實踐

● JDBC 類引擎

部分場景中,客戶可能并未采用 Hadoop 來建設資料平台,而是采用一些 JDBC 類的資料庫(例如 TiDB、Doris、Greenplum),而數棧本身并不管理 JDBC 資料庫的權限,而是采用賬号綁定的方式來控制,以此區分不同賬号的權限,例如:

・數棧 A 賬号,綁定資料庫 root 賬号

・數棧 B 賬号,綁定資料庫 admin 賬号

● 任務編排、測試與監控

在釋出上線至生産後,數棧可将上述各個環節串連起來,使用者從開發階段可以一鍵釋出至測試環境,經測試環境驗證後,觀察任務執行個體、資料産出的運作情況,運作無誤後可釋出至生産環境。

寫在最後的話

DataOps 是一種最佳實踐的理念,但目前在國内還處于比較早期的階段,數棧在這方面有過一些實踐經驗,但還有不少可以優化的内容,比如資料品質的規則也需要跨環境釋出、任務代碼、任務模闆的導出需要支援更多的任務類型等等,期待未來行業内有更多的 DataOps 的最佳實踐能産生。

繼續閱讀