很重要的一點(diǎn),“數(shù)據(jù)工程”正在發(fā)展出新一代,與互聯(lián)網(wǎng)革命一樣,要發(fā)展出新的工具、新的方法,新的套路。也正是這種不斷推陳出新的“新技術(shù)”的出現(xiàn)才使互聯(lián)網(wǎng)以及計(jì)算機(jī)技術(shù)推動(dòng)社會(huì)的進(jìn)步和發(fā)展。
當(dāng)商業(yè)智能工程師的工作逐漸超越了“經(jīng)典”的商業(yè)智能,就開始創(chuàng)造出了新的的學(xué)科——數(shù)據(jù)工程師。
而新學(xué)科的出現(xiàn),則意味著要開發(fā)新技能、新的工作方式、新的工具,而這些往往要背棄傳統(tǒng)方法。
數(shù)據(jù)科學(xué)與數(shù)據(jù)工程
數(shù)據(jù)科學(xué)(Data Science)當(dāng)下在經(jīng)歷“青春期”,自我肯定和定義自身的階段。
數(shù)據(jù)工程(Data Engineering)比數(shù)據(jù)科學(xué)更為年輕些,也正在經(jīng)歷類似的事情。(下統(tǒng)稱DE)
DS 與 DE 相同的部分:codeing, 深入分析,數(shù)據(jù)可視化
但是DE比DS更接近軟件工程(有爭(zhēng)議),DE還需要進(jìn)行工程建模、基礎(chǔ)設(shè)施、框架和服務(wù)。
DE還不成熟的理解:可以被視作是商業(yè)智能、數(shù)據(jù)倉庫以及部分軟件工程的超集,同時(shí)集成了“大數(shù)據(jù)”分布式系統(tǒng)、擴(kuò)展Hadoop生態(tài)系統(tǒng)、流處理和大規(guī)模計(jì)算的概念。
對(duì)于較小的公司,沒有數(shù)據(jù)基礎(chǔ)架構(gòu)團(tuán)隊(duì),僅是設(shè)置和運(yùn)營(yíng)公司的數(shù)據(jù),常用的平臺(tái)有Hadoop,Hive,HBase,Spark等。
對(duì)于大公司而言,對(duì)數(shù)據(jù)基礎(chǔ)架構(gòu)團(tuán)隊(duì)的需求增長(zhǎng),則開始創(chuàng)建正式的角色來管理此類工作,自動(dòng)化數(shù)據(jù)工程流程,解決更高級(jí)別的問題。同時(shí),也出現(xiàn)了更好的自助服務(wù)工具,不再僅僅是制作和維護(hù)報(bào)告、儀表板等簡(jiǎn)單的任務(wù)。
數(shù)據(jù)倉庫技術(shù)(ETL)的變化
代碼允許任意級(jí)別的抽象,允許以熟悉的方式的進(jìn)行所有邏輯操作,與源代碼一起進(jìn)行良好的集成,易于版本和寫作。
在過往,ETL工具演變?yōu)閳D形界面,這是數(shù)據(jù)處理歷史上的一個(gè)彎路。抽象“數(shù)據(jù)處理”,在計(jì)算和存儲(chǔ)上都有一定的復(fù)雜性,但解決方案不是將ETL的原語(如聚合、過濾等)變成以“拖放方式”展現(xiàn),而是更加抽象的級(jí)別。
比如,在現(xiàn)代數(shù)據(jù)環(huán)境中所需抽象的一個(gè)例子是A/B測(cè)試框架中的實(shí)驗(yàn)配置:什么是實(shí)驗(yàn)?什么是相關(guān)的治療方法?應(yīng)該暴露多少百分比的用戶?每項(xiàng)實(shí)驗(yàn)預(yù)計(jì)會(huì)影響哪些指標(biāo)?實(shí)驗(yàn)什么時(shí)候生效?
我們現(xiàn)在有一個(gè)框架,可以接受高級(jí)的、精確的,然后執(zhí)行復(fù)雜的統(tǒng)計(jì)計(jì)算,并提供計(jì)算結(jié)果。顯然,這個(gè)抽象的輸入?yún)?shù)不是ETL提供的。
所以,對(duì)于現(xiàn)代數(shù)據(jù)工程師來說,傳統(tǒng)的ETL工具在很大程度上已經(jīng)過時(shí),因?yàn)檫壿嫙o法用代碼表示,這導(dǎo)致工具不能直觀的表達(dá)所需的抽象。這迫使數(shù)據(jù)工程師的角色要來重新定義“ETL”,并且建立一套全新的工具、方法和約束等,以及新一代的“數(shù)據(jù)工程師”。
數(shù)據(jù)建模發(fā)生的變化
經(jīng)典、傳統(tǒng)的建模技術(shù),定義了我們數(shù)據(jù)建模方法,進(jìn)行數(shù)據(jù)倉庫相關(guān)的分析工作?,F(xiàn)在,存儲(chǔ)和計(jì)算比以往任何時(shí)候都便宜,隨著分布式數(shù)據(jù)庫的出現(xiàn),線性擴(kuò)展等,稀缺資源就是“工程時(shí)間”。
數(shù)據(jù)建模技術(shù)發(fā)生的變化:
1、“非規(guī)范化”的進(jìn)一步發(fā)展:維護(hù)Surrogate keys(主鍵)可能會(huì)很困難,而且會(huì)降低事務(wù)表(fact tables)的可讀性。使用自然的、人類可讀的鍵和緯度屬性變得越來越普遍,這減少了分布式數(shù)據(jù)庫鏈接的需求,這個(gè)需求是很高昂的。
像ORC,Parquet等序列格式化,或是Vertica等數(shù)據(jù)庫引擎,支持編碼和壓縮,可以解決“非規(guī)范”的大部分性能損失,這些系統(tǒng)已經(jīng)被教導(dǎo)自行規(guī)范數(shù)據(jù)存儲(chǔ)。
2、blob:現(xiàn)在數(shù)據(jù)庫通過本機(jī)和函數(shù)對(duì)blob的支持越來越多,這將融入到數(shù)據(jù)建模中,開啟新的動(dòng)作,允許事務(wù)表在需要時(shí)一次存儲(chǔ)多個(gè)。
3、動(dòng)態(tài)模式:map的出現(xiàn)減少、文檔存儲(chǔ)日益普及,對(duì)數(shù)據(jù)庫中blob的支持,于是,在不執(zhí)行DML的情況下,發(fā)展數(shù)據(jù)庫模式變得更容易,采用迭代方法進(jìn)行存儲(chǔ)更容易,并且無需在開發(fā)之前獲得完全的共識(shí)和支持。
4、 系統(tǒng)化快照維度:存儲(chǔ)每個(gè)ETL調(diào)度周期的維度的完整副本,通常在不同的表分區(qū)當(dāng)中。用一種簡(jiǎn)單的方法,作為處理緩慢變化的維度(SCD),在編寫ETL和查詢時(shí)都很容易掌握。
將維度的屬性反規(guī)范化到事實(shí)表中,這方便在事務(wù)處理時(shí)跟蹤其值,也很容易,且相對(duì)便宜。
反觀,復(fù)雜的SCD建模技術(shù)并不直觀,降低了可訪問性。
5、一致性:在數(shù)據(jù)環(huán)境中,一致性一直都是非常重要的,但是數(shù)據(jù)倉庫需要快速移動(dòng),且有更多的團(tuán)隊(duì)被邀請(qǐng)作這項(xiàng)工作,所以不是很必要,更多情況下是進(jìn)行權(quán)衡。
可以說,隨著計(jì)算周期的商品化,以及更多的人精通數(shù)據(jù),不需要在倉庫中預(yù)先計(jì)算和存儲(chǔ)結(jié)果。比如,我們可以有復(fù)雜的Spark,該任務(wù)只能按需計(jì)算復(fù)雜分析,而不能安排成為倉庫的一部分。
角色與責(zé)任
數(shù)據(jù)倉庫是專門用于查詢和分析的事物數(shù)據(jù)的副本
數(shù)據(jù)倉庫是面向主題的、集成的、時(shí)變的和非易失性的數(shù)據(jù)集合,以支持管理層的決策過程
數(shù)據(jù)倉庫與以往一樣重要,數(shù)據(jù)工程師的焦點(diǎn)是數(shù)據(jù)倉庫,負(fù)責(zé)其構(gòu)建、運(yùn)營(yíng)等方方面面,同時(shí)還與數(shù)據(jù)科學(xué)家、分析師和軟件工程師參與其建設(shè)和運(yùn)營(yíng)。
數(shù)據(jù)工程團(tuán)隊(duì)通常會(huì)在數(shù)據(jù)倉庫中擁有經(jīng)過認(rèn)證的高質(zhì)量區(qū)域。比如在Airbnb,有“核心”模式,明確定義和測(cè)量服務(wù)級(jí)別協(xié)議(SLA),嚴(yán)格遵循命名約定,業(yè)務(wù)員數(shù)據(jù)和文檔質(zhì)量最高,相關(guān)的管道代碼遵循一套明確的定義。
通過數(shù)據(jù)對(duì)象的標(biāo)準(zhǔn)、最佳實(shí)踐和認(rèn)證過程的定義,這些成為數(shù)據(jù)工程團(tuán)隊(duì)很重要的組成部分,成為“卓越中心”。團(tuán)隊(duì)可以發(fā)展為分享或領(lǐng)導(dǎo)教育計(jì)劃,分享核心競(jìng)爭(zhēng)力,以幫助其他團(tuán)隊(duì)成為數(shù)據(jù)倉庫的更好公民。比如,F(xiàn)acebook有一個(gè)數(shù)據(jù)陣營(yíng)的教育計(jì)劃,airbnb在開發(fā)一個(gè)類似的數(shù)據(jù)大學(xué)的計(jì)劃,數(shù)據(jù)工程師領(lǐng)導(dǎo)會(huì)議,教會(huì)人們?nèi)绾问炀氄莆諗?shù)據(jù)。
數(shù)據(jù)工程師也是數(shù)據(jù)倉庫的“圖書館員”,編目和組織元數(shù)據(jù),定義一個(gè)文件或從倉庫中提取數(shù)據(jù)。在快速發(fā)展、略微混亂的數(shù)據(jù)生態(tài)系統(tǒng)中,元數(shù)據(jù)管理和工具成為現(xiàn)代數(shù)據(jù)平臺(tái)的重要組成部分。
性能調(diào)優(yōu)和優(yōu)化
數(shù)據(jù),在當(dāng)下比以往任何時(shí)候都更具有挑戰(zhàn)性,公司的數(shù)據(jù)基礎(chǔ)設(shè)施預(yù)算正在不斷增加。這使得數(shù)據(jù)工程師在性能調(diào)優(yōu)和數(shù)據(jù)處理、存儲(chǔ)有劃傷,花費(fèi)周期越來越合理。在這一領(lǐng)域的預(yù)算很少收縮,因此優(yōu)化通常是實(shí)現(xiàn)更多的資源,或嘗試線性化資源利用率和成本的指數(shù)增長(zhǎng)。
數(shù)據(jù)工程堆棧的復(fù)雜性跨度很大,呈爆炸式增長(zhǎng),我們可以假設(shè)優(yōu)化這種堆棧和流程的復(fù)雜性,具有同樣變化的挑戰(zhàn)程度。我們只需要很少的努力,就可以輕松獲得巨額的成功,所以這適用遞減收益法。
建議:基礎(chǔ)設(shè)施與公司一起擴(kuò)展,并始終保持資源意識(shí)。
數(shù)據(jù)集成
數(shù)據(jù)集成是通過數(shù)據(jù)交換整合業(yè)務(wù)和系統(tǒng)的實(shí)踐,與以往一樣重要,且具有挑戰(zhàn)性。在新的標(biāo)準(zhǔn)方式下,我們希望將服務(wù)軟件(如SaaS)生成的數(shù)據(jù),也帶入到我們的倉庫,以便可以根據(jù)其余數(shù)據(jù)進(jìn)行分析。Saas通常擁有自己的分析產(chǎn)品,但缺乏公司其他的數(shù)據(jù),因此需要將其產(chǎn)生的分析數(shù)據(jù),提取回來。
在這樣的情況,Saas產(chǎn)品重新定義參考數(shù)據(jù),而沒有集成和共享。沒有人想在兩個(gè)不同的系統(tǒng)中,手動(dòng)維護(hù)兩個(gè)員工或客戶列表,而且在提取數(shù)據(jù)導(dǎo)進(jìn)倉庫時(shí),必須進(jìn)行模糊匹配。
但即使這樣,公司高管沒有真正考慮數(shù)據(jù)集成的挑戰(zhàn),與Saas提供商簽訂協(xié)議,提供商也低估了集成工作量,以促進(jìn)他們的銷售,使數(shù)據(jù)工程師陷入大量且混亂的工作中。Saas api通常設(shè)計(jì)不當(dāng),文檔不清晰,而且“敏捷”,也就是說,您可以在不事先通知的情況下,進(jìn)行更改。
服務(wù)
數(shù)據(jù)工程師在更高的抽象層次上運(yùn)行,在一些情況下,要提供服務(wù)和工具來自動(dòng)化底層的工作類型,底層的含義是可以手動(dòng)完成的。
1、數(shù)據(jù)提取:抓取數(shù)據(jù)庫,加載日志,從外部存儲(chǔ)或API獲取數(shù)據(jù)的服務(wù)和工具
2、度量計(jì)算:用于計(jì)算和匯總參與度,增長(zhǎng)或細(xì)分相關(guān)度量的框架
3、異常檢測(cè):自動(dòng)化數(shù)據(jù)消耗,提醒人們發(fā)生異常事件或趨勢(shì)發(fā)生顯著變化。
4、元數(shù)據(jù)管理:允許生成和使用元數(shù)據(jù)的工具,可以輕松地在數(shù)據(jù)倉庫內(nèi)和周圍查找信息。
5、實(shí)驗(yàn):具有重要的數(shù)據(jù)工程組件,A/B測(cè)試和實(shí)驗(yàn)框架
6、儀表:分析記錄事件和與這些事件相關(guān)的屬性,確保上游捕獲高質(zhì)量數(shù)據(jù)有既得利益。
7、會(huì)話:專門用于及時(shí)了解一系列操作的管道,允許分析人員了解用戶行為
就像軟件工程師一樣,數(shù)據(jù)工程師應(yīng)該不斷尋求自動(dòng)化他們的工作,構(gòu)建抽象參數(shù),然后做更為復(fù)雜的內(nèi)容。雖然自動(dòng)化的工作流程的性質(zhì)因環(huán)境而異,但自動(dòng)化他們的需求基本上都是通用的。
技能
1、SQL
2、數(shù)據(jù)建模技術(shù)
3、ETL設(shè)計(jì):編寫高效、有彈性、可演化的ETL
4、架構(gòu)預(yù)測(cè)
-
數(shù)據(jù)工程師
+關(guān)注
關(guān)注
0文章
8瀏覽量
1263
發(fā)布評(píng)論請(qǐng)先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

(仰天長(zhǎng)嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師

如何成為一名嵌入式軟件工程師?



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技
談?wù)凱CB工程師金字塔分級(jí)標(biāo)準(zhǔn)

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛好者 #硬件工程師 #晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?


評(píng)論