美團資料倉儲的演進

2021-09-23 01:29:05 字數 1810 閱讀 7723

shdiao

· 2013-12-05 20:44

美團資料倉儲,在過去的兩年中,與我們的業務一起高速發展。在這一演進過程中,有很多值得總結和沉澱的內容。這篇文件回顧下美團資料倉儲這兩年發展過程中遇到的各種問題,為什麼選擇了現在的技術方案,每乙個功能和模組是在什麼情況下產生的,解決的是什麼問題,中間有過哪些彎路。既可以作為大家熟悉美團資料倉儲構建過程的一篇文件,也可以作為初次建立資料倉儲的參考。

在正式建設美團資料倉儲之前,資料組也為各部門提供資料支援,不過那個時候的資料需求還比較少,而且也相對簡單。

通常的做法是:

這是簡單明瞭的流程,但是隨著需求的增加和精細化,有一些問題變得很棘手,並嚴重影響的開發效率:

資料倉儲的學術定義有很多版本和特點,其中有幾個詞能概括這一段工作的特點,規範和整合。

首先需要建立乙個db用於儲存從各個資料來源提取出來的資料。

這一時間的乙個重要工作是,引入了乙個工具——etl。etl是extract(抽取),transform**換),load(載入)的首字母組合。顧名思義,etl工具的功能就是抽取資料,經過加工後,再載入到新的位置。

etl的優點是:

這一時間也同時確定了很多規範:

用資料表示邏輯,典型例子是,不再使用各種時間函式來計算時間,而是建立乙個日期表,把某一天的各種資訊屬性全部算出來存在一張表裡,需要的時候只要連表就可以得到。大大降低了時間邏輯出錯的可能性並簡化了開發。

將資料分為維度資料,事實資料,衍生資料,聚合資料等型別, 以及第一版的命名規範。 為後續資料的組織和管理奠定了基礎。

資料倉儲的基礎資料建設,一直是資料組的乙個主要工作,直到2023年q4,隨著各種資料需求的增加,在如何使用資料上,有了一些新想法。

要做資料倉儲,而不是資料墳墓,資料如果不被使用,就毫無用處。怎麼能供各部門更好的使用這些資料呢?我們要做平台,可供人去探索資料的平台。

2023年下半年,隨著美團業務的高速發展,用資料支撐運營變得越來越重要,各種資料需求出現了乙個井噴期,開發人手比較少,一時間有些捉襟見肘。

有沒有方法能讓需求方自助的獲取資料,而不依賴rd呢,想到了乙個非常流行的概念是olap——聯機分析處理(相對於oltp——聯機事務處理),目標是做成乙個自助探索工具的平台。

從2023年q4開始到2012q1,資料組開始調研試用開源的olap工具套件。耗時較長,從調研和最後試用的情況看,現有的olap系統不適合我們。

有幾個主要的問題:

2012q1時,資料倉儲出現了很多新的棘手的問題。

其次,我們已經有了幾百個etl流程,流程之間有執行順序的依賴關係,但是沒有好的工具來管理,靠crontab裡設定執行時間間隔。經常出現上游還沒有算完,下游就啟動了,會出現髒資料。另一方面,並行開發太多,乙個人的修改,不知道會不會影響別人,經常出現衝突。

第三,每次都用php手寫報表,重複工作太多,開發上線都非常複雜。

第四,資料表和指標很多,命名不規範,經常會遇到兩個相近概念的比較問題,解釋起來非常麻煩,需要遍歷整個計算過程才能梳理清楚。

針對這些問題,分別開發了相應的工具。

美團的資料需求發展非常快,這體現在資料規模的增長,資料分析人員的增長,資料分析複雜程度的增長。2023年下半年,快速發展的資料需求讓原有的資料倉儲架構達到了瓶頸。無論是db的計算和儲存能力,還是開發人員的精力,都達到了很高的負荷。而且由於開發流程和提取資料的重複勞動很多,團隊士氣也比較低落。這一時間的迫切工作是,如何能讓需求方自助獲取資料並分析,如何能讓資料的計算和儲存方便的擴充套件。

從2023年中開始,重點推進了幾項工作以解決上述問題:

美團的成長速度非常快,資料的規模和複雜度還將十倍百倍的增長;業務多樣且變化迅速。如何能夠在海量資料基礎上進行資料的管理、加工、分析以支援快速成長的業務,後續還面臨很多挑戰。

美團資料倉儲的演進

美團資料倉儲,在過去的兩年中,與我們的業務一起高速發展。在這一演進過程中,有很多值得總結和沉澱的內容。這篇文件回顧下美團資料倉儲這兩年發展過程中遇到的各種問題,為什麼選擇了現在的技術方案,每乙個功能和模組是在什麼情況下產生的,解決的是什麼問題,中間有過哪些彎路。既可以作為大家熟悉美團資料倉儲構建過程...

美團資料倉儲的演進

shdiao 2013 12 05 20 44 美團資料倉儲,在過去的兩年中,與我們的業務一起高速發展。在這一演進過程中,有很多值得總結和沉澱的內容。這篇文件回顧下美團資料倉儲這兩年發展過程中遇到的各種問題,為什麼選擇了現在的技術方案,每乙個功能和模組是在什麼情況下產生的,解決的是什麼問題,中間有過...

美團資料倉儲 資料脫敏

在資料倉儲建設過程中,資料安全扮演著重要角色,因為隱私或敏感資料的洩露,會對資料主體 客戶,員工和公司 的財產 名譽 人身安全 以及合法利益造成嚴重損害。因此我們需要嚴格控制對倉庫中的資料訪問,即什麼樣的人員或者需求才可以訪問到相關的資料。這就要求對資料本身的敏感程度進行安全級別劃分。資料有了安全等...