分析數據建模師是幹什麼的「數據建模師工作內容及職業」

我畢業了之後是在通信公司,從一個軟體工程師開始做,做一些基本的系統運維工作,熟悉整個通信行業的業務模型。

因為我們通信行業主要是移動、聯通、電信,他們模型其實都是比較通用的。當時是有一家國際上大的諮詢公司,統一做的一套標準的通信三戶模型。然後基於這些模型,我們熟悉的一些計費系統、CRM 客戶關係管理系統等日常的運維工作。

三戶模型即客戶、 用戶和帳戶,來源於etom的模型。三戶模型在電信行業成為建設 運營支撐系統 普遍運用的模型,三戶模型也是根據營銷模型轉向「以客戶為中心」理念而產生的結果,客戶的需求成為支撐系統信息模型不斷趨於完善的主要驅動力。

後期我慢慢地轉到經營分析組,主要是給集團和我們省級倉庫去做一些指標數據和數據挖掘工作。從開發工程師切入,逐漸接觸到的一些更深層的業務、架構、模型。這塊模型不僅說是我們數據倉庫模型開發這個概念,還有一些我們通信行業的特有的模型概念,更加貼業務。

慢慢我自己也做了大概有三年左右的Oracle(甲骨文公司)的DBA 。因為當時是想在這一塊加強一下,當時覺得既然想從事技術,肯定要選擇一個方向,那麼要加強一下。我個人也比較喜歡資料庫,所以當時做了3年多的專職的DBA ,主要是從事專門Oracle的日常備份恢復升級,包括各類版本的切換、日常的補丁、優化等。

DBA : 資料庫管理員 (Database Administrator,簡稱DBA)

我覺得這個工作好像看上去可能跟我現在從事的數據倉庫建模工程師好像沒有那麼大關係,但是我覺得它是一個很好的技術基礎。因為對你後期的職業的發展方向,不僅是對於數據建模工程師,這些基礎對其他的職業方向選擇是一個特別棒的積累。

後期我個人從DBA出來了之後,基本上從事數據倉庫建模的架構、設計的工作。因為一般在項目上,整個項目的架構還有核心的ETL流的搭配都是我來做。這些環境部署完成之後,會有其他同事接手整個項目的詳細的開發工作。

ETL,是英文Extract-Transform-Load的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、載入(load)至目的端的過程。

因為一些工作就比較的常規了,然後我就負責整個項目的調度、進程工作。最近這幾年的話基本上就是設計整個數據倉庫、某一個集市的架構的設計,包括業務的設計,技術的選型、部署的方案,甚至後期的運維的一些工作。

2、在轉變過程中,有什麼困難點、機會點,這方面可以給我們分享一下嗎?

第一,我自己是一個對工作比較有自己想法的人,我在做一件事情之前,會盡量去多看一些東西,多去想一下,我未來幾年,3年或者5年左右想去往哪一個方向,在考慮這個問題的時候,我會結合目前的一些主流的技術去做一個判斷。

第二,我自己擅長哪些,比較喜歡哪一個方面。我會結合這2點去挑一個或者兩個方向,但不會太多,就是一到兩個方向。其實我們在工作上沒有那麼多的時間去積累去學習,因為畢竟我們是工作嘛,不可能像學校一樣去學習的,更多的時間是你在選定一個方向或者目標之後,在你的業餘的時間,在你的那個方向上多做一些功課,做一些準備。這樣的話你在工作上如果說有那麼一個機會,你才抓得住。像我其實剛才說在工作進行轉變的時候,就遇到了這樣的機會。

其實機會對每個人都很公平,因為他是擺在大家面前的,不是專為我準備的,只不過機會回來了之後,剛好我覺得我可以試一下,那我就抓住這個機會,那就像我當時做DBA,其實也是我是自己學很長時間,但是確實操作經驗沒有那麼多,那會兒也是項目上有一個這麼個決策,是需要有一個人來承擔這個工作。但是項目組其他的人覺得這塊好像跟我們之前的工作也不太相干,好像也不是那麼的喜歡,所以就都不願意做。

所以我說那我來試試吧,當時也剛好需要很長一段時間,就從一個普通的軟體開發工程師就做DBA,然後慢慢做出來覺得還挺喜歡的。各方面這種工作、職業大概就堅持做3年多

我職業的這種轉變,一方面是遇到的機會,當然最主要的是自己要想清楚,一旦先想清楚,要做好相應的準備,因為我們知道機會是明年回來,是明天會來。但是來了你如果抓不住,恐怕就要下一次了,但是下一次就不知道是什麼時候。

3、數據倉庫建模涉及的工作內容和以及與哪些角色配合,老師可以給我們分享一下嗎?

從這個工作內容來說,其實7、8年前的數據倉庫的建模工程師和現在的這種建模工程師,內容差別還挺大的。因為在7、8年前作為一個數據建模工程師,他的工作內容還蠻多的,除了要去承擔一些這種技術層面的架構選型,業務邏輯層面的優化、本地化以外,還要承擔大量的開發工作。

並不是說我把方案選定了,落地了有一個本地化之後,我的工作就基本上算告一段落,並不是這樣。他要承擔後期項目落地的工作,就是說他參與到整個數倉項目的設計,包括需求調研、確認、開發和部署。

但是現在因為現在這種行業的細分、工作也在細分。他把這個數據倉庫建設的工作分了很多細分的東西。比如說按照他的流程分為需求工程師,他只負責需求的收集和確認,那麼模型會分模型的設計工程師,也就是我們現在說的所謂的數據倉庫建模工程師,他主要涉及這個模型在落地到某一家具體的公司或者是某一個行業的時候,他的模型到底要怎麼優化,怎麼去剪裁,出於一個很詳細能落地的一個方案。這個方案落地完了之後,他的主要工作基本上算告一段落,後期會把這個模型或者方案提交給我們的開發人員,包括ETL流程,他可能也不參與過多的設計和開發。後期主要是我們的一些開發人員去參照他的這個模型方案去實現去落地。

所以我覺得結合到我的經驗,我感覺從個人的發展角度,應該更多的參與到整個流程的處理。數據倉庫模型的建設過程不是說僅局限於做需求,需求收集完我的工作就完了,或者說我只是拿一個方案就跟我沒有關係了。

這樣其實對於一個數據倉庫工程師來講,很難去承擔一個建模、一個架構師的工作。

對這一塊兒工作內容我建議,如果在做建模工程師的同學可以在項目上主動地去承擔項目分給你的工作以外的其他的的工作。

因為它更像是一個流水線,他要打通整個流程。如果你這個流程始終只停留在某一個環節的話,其實你很難對整個數據倉庫項目有一個全面的、直觀的了解,那你也就很難成長為一個真正的所謂的數據倉庫建模工程師。

4、在數據倉庫建模工作當中,他需要和哪些部門或者是哪些人配合?

建模工程師是數據倉庫開發過程中的一個中間環節,是數據倉庫開發工作的細分,建模工程師是專做模型的優化和落地以及方案實現,相當於似我們之前很流行的那種顧問的角色。

如果從數據建模工程師這個角度去看的話,把需求往業務系統去考慮,首先我們這個數據倉庫或者集市範圍在哪裡,這個要由我們去和甲方溝通,框出一個大致的範圍,以及明確我們整個企業哪一些業務。

比如以銀行為例,銀行會有比如說傳統的這種存貸款業務、信貸業務、卡的業務,包括信用卡、儲蓄卡,可能還有一些其他的金融類業務,比如債券等。那你現在建了這個數據倉庫、集市、或者叫比較流行數據湖的概念,他到底含在哪些業務,這個推廣一旦確定了這個範圍之後,我們的數據倉庫建模工程師就要基於這個範圍去和相應的業務系統去溝通他的業務。

因為每個業務系統在我們數據倉庫建設之前就已經成型,而且已經運行很多年了。他有自己的標準的業務模型,每一個業務都有自己的業務模型。我們數據倉庫建模工程師必須要去了解。這個時候他了解基於這個業務模型之後,抽象出來屬於那個業務系統的一些物理模型、概念模型和邏輯模型。

這個時候便於我們進行需求的收集整理,以及我們介面,甚至數據倉庫業務系統的一個映射。因為這裡邊會涉及到兩個概念,一個是業務系統的模型,還有是我們數據倉庫的模型。這兩個模型很相似的,有可能差異度很大。

當要把應用系統的數據納入到數據倉庫模型裡面,涉及到一個兩個模型的融合的問題。那麼這個怎麼融合?這就是數據倉庫建模工程師主要做的一個工作,或者說他的一個價值體現在這裡,這是一個非常重要的地方。

5、數據倉庫開發完整流程環節是什麼?

如果我們從數據開發這個環節說的話,比如說我如果是作為項目組中的一個核心的數據倉庫的開發員的,首先我介入到這個項目之後,我要了解你的需求,非常明確的一個需求說明書要給我是,因為這是我在開發過程中要參考的一個文檔。

比如說我要設計某個流程,某個業務邏輯處理,我要寫一些代碼,那麼這個代碼他其實就是我們業務需求上的一個轉換實現。那麼需求就是我的一個參照,這是第一點需求說明書。

第二點,我要了解數據倉庫模型工程師最終設計出來的這個模型方案,方案其實我可以說他給我拿過來,他最終落地就是一個業務系統到數據倉庫系統映射的一個方案,就是我們的一些表映射、一些業務規則的映射。這個方案我作為一個開發工程師一定要拿到,這是第二點。

第三,我要知道我們項目組整體的開發語言開發工具,開發環境。開發工具可能是一些市面上比較流行的、主流的開源或者閉源的商務工具。環境也要看是我們國產化的環境,或者是其他的一些環境,還包括我們的資料庫環境、主機環境、ETL工具。

這個我作為一個數據開發工程師,我都要知道。有了這些基礎之後,你還要給我提供一些開發環境、測試環境、生產環境,方便我進行一系列各自工作的開展,大概是這麼一些。

6、關於工作細分的原因和產生的影響,老師可以談談你的看法嗎?

以前的平台相對來說比較單一,而且基本上處於被國外的幾個平台就壟斷,也就不存在所謂的平台管理。

也就不需要這種基於平台的數據產品經理把控這一塊工作。但是現在是這種基於大數據平台也好,或者MPP架構的這種平台也好,越來越多的廠家,你當做平台的時候,這幾家平台他的兼容性關係非常大,因為它是類似於一個套件,你的套件要考慮到向上游進入、向下游進入,那上游我們說的可能更多的是報表展示工具,像下游可能是ETL工具,一些語言的選擇。

MPP架構,是一種列式存儲格式,比較有代表性的是HBASE 和Teradata兩種列式存儲平台

這個時候確實是需要有一個面向平台的,而且他了解多平台的這樣一個數據經理去把控一些技術選型問題,包括給企業提供一些建議。比如說企業涉及到一個選型,比如說是這種可能是涉及到一個遷移。因為最近幾年比較流行概念就是國產化。

那麼這個國產化就涉及到你公司企業現有的這種布局,倉庫平台不選擇國產的平台,還是選擇一個國外的平台。國內的平台有那麼三五個,你選擇哪一款更合適,更要結合有數據面向平台的這種推進。他去了解了之後,綜合我們企業自身的特點,去提供一個比較合適的解決方案。

相當於目前工作的越來越細分,越垂直,然後其他衍生的崗位就更細了,也導致了兩個問題。

第一項目組會比較臃腫,本來這個事可能就一個人到兩個人就可以完成,但是現在可能需要3到4個人,而且單從時間上你會更長,這是第一個情況。

第二,他會讓一個人在某一塊做得很深,因為他只都是一塊,但是會導致另外一個負面的問題,他只懂這一塊,這一塊向上向下,因為他不負責,所以他也不會顧及整個流程當中,他甚至對於他的上游都不關心,因為他上游可能就是另外一個同事在負責了,跟他們工作上沒有交集,那這就會導致我們這種工作上的這種交集的部分會有一些到底是你來做還是我來做不清楚的情況。

如果說這種銜接不好的話,會給項目造成一些很負面的影響。

把這個數據倉庫建模工程師理解為這個數據倉庫建設期的一個樞紐,所有的需求、模型,包括業務系統模型都會流到他這裡,由他進行整理,最後輸出一個屬於倉庫的建設模型方案,然後再由他形成的這個落地的模型的建設方案去提交給我們開發人員,開發人員才能依據這個東西進行後續開發和測試和上線。

在有些在具體項目上,有的時候,建模工程師的這個角色,可能就是由某個平台的數據產品經理來承擔,但是也要看情況,因為類似銀行或者是四大行、中信這種體量太大,不可能說由數據產品經理去承擔一個建模工程師的角色,只能說去向建模工程師去索要一些方案,當然是要經過建模工程師落地之後的東西,他去整理出一些他這個角色要輸出的一些東西。

7、大數據相關的崗位分類和對應崗位解決的問題,老師可以分享一下嗎?

中國太大了,他其實也分城市不同級別,像北上廣深這種一線城市,大數據的崗位的熱度已經過去了,畢竟不是做那麼熱了,更多的是一些演算法工程師或者搞神經網路的這種更往前一步的這種工程師更熱門。

比如說你是數學專業的,你對演算法有非常多的研究,一些神經網路上也有一些研究。像這種崗位在北上廣深的需求大於大數據開發。但是對於二三線的省會城市,我了解到的,像新疆、甘肅這種西北的城市的大數據平台,甚至都沒有建設的很好,那我還是比較如果說在那些城市的同學,去從事他自己公司的開發崗位,其實還挺有前途。

大數據開發工程師,首先他也分不同的內容。如果你是在大學學的這種軟體工程的專業,那基本上是語言類C或者C++,那基本是大數據平台的開發工程師。像說我剛剛做一些介面,比如說舉個簡單的例子,這種大型的電商他每天的每秒鐘的數據都是幾個G、幾百個G每秒鐘。這時候對於這種幾秒,每秒鐘幾一個G這種大數據量、超大數據量的這種處理能力,像我們這種一般的傳統數據工程師因為他們沒有那個能力,我覺得他的產品這時候需要我們一些基於大數據平台的和大數據平台語言的這種平台工程師去開發,去為這種每秒幾個G上百G的數據介面做處理。

如果你是這種專業畢業的,那我覺得更好的去,比如說現在從事這種java開發前端工程師,他也可以很好的去轉型,是大數據開發工程師的崗位。因為大數據平台開發供應商的語言和java的語言類速度是非常高,大概百分之七八十都相似,他不需要重新學習,這樣相對門檻比較低,就是一個很基礎的技術轉型。

而且如果你去二三線城市的省會,這種項目很好,既包括通信或者金融,還有一個方向,剛才說是大數據開發工程師的方向,就是我們的大數據倉庫的架構師。因為現在大數據平台對於像我剛才說的國內的那種二三線省會城市,處於選型或者優化過程中,這個是涉及到我再去給我的企業公司進行一個大數據平台的選型的時候,我到底選擇國產的還是國外的一些更多的產品。像國外的產品,更成熟,但運維的成本也更高。

那麼你選擇國內的這種大A品牌的,相對來說成本要低得多。但是國內的產品因為我用過很多像國內的一些比較成熟的產品,他的產品相對來說不那麼成熟,兼容性好不那麼好。

那麼你會覺得好像我花得很低的成本就部署一個更好的一個大數據平台,國內的是未來的這個維護成本也很高,你需要一個比較好的自身的團隊來維護這個平台。這時候我們說基於這種考慮,就需要有一個從事大數據平台架構這麼一個人來同時給你結合企業自身的數據信息化的特點,國內國外的這種大數據平台產品的選型、環境的部署、運維這塊工作。

因為以前來講的話,國外的這種產品在成熟度比較高,基本上部署完之後,後期的運維成本比較低。但是現在我們說產品平台太多了,他的成熟度相對降低了,這就導致你一定要有一個人或者是一個運維組會專門做整個大數據平台的部署,運維的工作性能調優等等。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/281669.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-21 13:19
下一篇 2024-12-21 13:19

相關推薦

發表回復

登錄後才能評論