User self-service ETL platform 使用者自定義 ETL 平台

SamSam
7 min readApr 29, 2020

--

首先,開宗明義一下,要做到這樣的事情,是非常辛苦的。除非你願意雞婆管很多事情,然後公司也願意付你相對應的報酬….

這像是把資料報表「模組化」。使用者用他喜歡的模組,自己去兜他要的成品。因為我們知道,使用者的需求總是不斷的變動。當然,早在七八年前,就有類似的商業產品,提供使用者,從「固定」資料內,產生他們要的成品報表。

那當然,這也是幾乎所有資料工程師,最後提供終端資料消費者的成品,是「宇宙無敵超級滿滿的大平台」。換句話說,就是一個可能有著70個columns以上的大table。你要什麼上面都有了。

嗯啊,光刷欄位就2分鐘,就問你厲不厲害XD
超級資料武器
慢慢找吧...

然後身為資料工程基礎人員,我們可能會在各種「組合資料」、「搭建基礎平台」,甚至串好「商業邏輯」中,度過我們的餘生。

表面上,對的,這就是我們的「價值」所在。市場上對我們的期待,對於資料工作者(data scientist, data engineer, data analyst, database administrator, data architect … whatever you want to call this guy…)就是這麼想的。

但,就是那個BUT,小弟不喜歡跟別人一樣。對我來說,光是瞬息萬變的商業邏輯,就是要花非常多時間來維持資料的一致性,以及與真正前端使用者的互動。不僅僅只是自己ETL跑順、報表呈現這麼簡單基礎自動化的事情。

進入正題,你怎麼可能有讓使用者,面對他們business jungle的處境,有不改需求的呢?那解決方式緊接著來,你該如何讓資料的提供平台,更user-friendly,甚至,把夢想做大,user self-sevice!

再次強調,這不是給一個滿滿大平台的這種基本層次。我要user 一起加入ETL的世界。user define、user 參與他自己的報表資料來源!

是的你沒看錯。我為了這個,苦苦的磨了一整年啊!

阿其實也就只要一年啊…. 各位老闆。做不做、有沒有找到對的人做而已。

User要的都很簡單XD

小弟於是,將商業邏輯打包,資料底層table切割整理,包成如下圖所示的各模組

模組化

我把模組包成了sales, marketing, finance, customer等類別做為範例。每個模組,代表著裡面所需要的資料,當然我們最重要的,就是把各模組的關聯性、邏輯建立好,然後,將每個關聯性的邏輯,再小心的包成使用者能夠控制的元件。這樣,使用者只要面對他自己定義清楚的元件,該元件背後所代表的資料模組就能產生相對應的作用。

這也不是什麼新鮮事。就是軟體工程的抽象化設計,我拿來用在連接商業世界罷了。

原生架構概念如下,太陽底下沒有新鮮事:

恩概念就講完啦。「說起來」,都超簡單的。接下來要實戰了。不然看了一堆屁話沒有實例,你們不就跟「很多」只會打嘴砲的主管一樣…XD 自己拉椅子吼,不忙。

小弟呈現、實做的工具,是使用 Pentaho server 9.0 (以前大家熟知的Kettle) 當作實踐。當然坊間有各種工具,包含Python, R等。但我必須強調,能夠拿來與user清楚溝通,省去開發工作的話,這樣的平台,你必須不能有太多的code。大家用模組化的元件來溝通,以元件來做需求轉換,才會夠快、夠實際。(其他類似如Trinity, Infomatica等等軟體工具都有,這邊不贅述,我沒拿廣告費)

這邊砸了部分人的飯碗,但我是希望大家往更高層次的地方走,不是只是自己做的很開心,結果沒半點用,進而影響大家的價值

不要跟我說,你都拿上面這段跟user溝通,我書讀得少,你不要騙我

不要廢話嘴砲,以下是我的實力 (實例XD)。我都拿這樣的東西跟user溝通,或請user直接自己拉概念。至少user把他要的概念拉起來,我再把概念串成實際的結果!清楚的說明document,資料流,呈現結果!

再來,user想什麼時候資料更新,就什麼時候資料更新!我的main data flow已經將operation system分層分好。好的資料平台定義,就是user愛怎麼查就怎麼查、愛怎麼組合就怎麼組合!給user放飛的自由,就是給自己自由。這世界上還有很多更有價值的工作等著我們去做!

Schedule你愛什麼時候跑,我就給你什麼時候跑,自己設定,不要來找我麻煩!

Webpage 操作,你自己連進server跑ETL。我連ETL都給user跑!不然self-service講嘴砲的嗎?然後,你的商業變動行為是能等的嘛?

【喔喔喔是總經理要的喔,那下午就好了】
【這個要等,請你開JIRA工單,我跟PO溝通完後,可能排進下一個sprint做開發】

有沒有熟悉?就是這個味道啊…. 這就是你們要的A……gile……嗎?敏捷式軟體工程嗎?

好的,又做完了。重點整理一下:

你的Data Lake、Business process現在走到哪個進程了呢?歡迎批評指教。

Originally published at http://datamansamxiao.wordpress.com on April 29, 2020.

--

--

SamSam
SamSam

Written by SamSam

用有限的資料知識探索無限的世界

No responses yet