從數倉到數據中臺,且看馬蜂窩數倉研發總監談技術選型最優解

寫在前面:我是「雲祁」,一枚熱愛技術、會寫詩的大數據開發猿。暱稱來源於王安石詩中一句 [ 雲之祁祁,或雨於淵 ] ,甚是喜歡。


寫博客一方面是對自己學習的一點點總結及記錄,另一方面則是希望能夠幫助更多對大數據感興趣的朋友。如果你也對 數據中臺、數據建模、數據分析以及Flink/Spark/Hadoop/數倉開發 感興趣,可以關注我的動態 https://blog.csdn.net/BeiisBei ,讓我們一起挖掘數據的價值~


每天都要進步一點點,生命不是要超越別人,而是要超越自己! (ง •_•)ง

一、前言

本文根據馬蜂窩數倉研發總監顏博老師在線上分享演講內容整理而成。

分享的內容主要包含以下幾點:

  • 回顧大數據在國內的發展,從傳統數倉到當前數據中臺的演進過程;
  • 個人認爲數據中臺的核心組成,以及一些技術選型參考;
  • 數據研發是數據中臺很重要的一環,分享馬蜂窩在數據研發方面的實踐,主要是數據倉庫架構與研發方面。

二、大數據演進,從數據倉庫到數據中臺

2.1 第一階段

21世紀的第一個10年,企業級數據倉庫(EDW)從萌芽到蓬勃發展,“IOT”( IBM、Oracle、Teradata)佔領了大部分市場,提供數據倉庫建設從硬件、軟件到實施的整體方案。

這個時代的數據倉庫實施不僅需要購買大(中、小)型機,配套商用的關係型數據庫(Oracle、DB2、SQL Server)以及一些ETL/OLAP套件,實施成本相對高昂,數據倉庫建設主要集中在金融、電信、大型零售與製造等行業。

數據倉庫的應用主要通過爲企業提供報表、分析等數據,輔助企業的經營決策。像電信行業的經營分析系統、銀行的風控管理等,都是這個期間比較典型的應用。

2.2 第二階段

2010-2015年,大數據平臺階段,移動互聯網的飛速發展帶動Bigdata(大數據)的發展。其中Hadoop生態技術開始逐步在國內大範圍使用,企業只要基於Hadoop分佈式的計算框架,使用相對廉價的PC服務器就能搭建起大數據集羣。

數據湖的概念也是這個階段誕生(主要是爲降低傳統數倉較爲複雜的中間建模過程,通過接入業務系統的原始數據,包括結構化、非結構數據,藉助Hadoop生態強大計算引擎,將數據直接服務於應用)。這個階段不只是金融、電信這些行業,國內主流互聯網企業也紛紛搭建起大數據平臺。

大數據應用更爲豐富,不僅限於決策分析,基於APP/門戶站點的搜索推薦、以及通過A/B Test來對產品進行升級迭代等是這個階段常規的應用點,用戶畫像在這個階段也得到重視,主要應用於企業的營銷、運營等場景。

在這裏插入圖片描述

2.3 第三階段

就是我們現在所處的階段,數據中臺以及雲上大數據階段,通過前10多年不斷的技術積累,大數據在方法和組織的變革上也有了新的沉澱,主要體現在幾個方面:

1)數據統一化

其核心思想是數據流轉的所有環節進行統一化,如從採集到存儲到加工等過程,在這些過程中通過建立統一的公共數據模型體系、統一的指標與標籤體系,提高數據的標準性、易用性,讓數據本身更好地連通,提升使用效率。

2)工具組件化

數據在採集、計算、存儲、應用過程中涉及多業務線條,多場景,將這些場景與工具(採集工具、管道工具、計算&調度工具、數據服務工具,數據管理工具、可視化工具等)進行沉澱,研發出通用、高效的組件化工具,避免重複開發,降低研發成本。

3)應用服務化

之前大數據應用的數據調用比較混雜,有些直接訪問數倉數據表,有些調用臨時接口等。通過數據中臺應用服務化建設,提供標準的應用服務,以數據可視化產品、數據API工具等服務,支撐應用的靈活調用。

4)組織清晰化

數據中臺團隊專注於數據內容&數據平臺開發,提供各種基於數據的能力模塊,而其他部門人員如業務產品、運營、分析等角色,只需要藉助工具/產品有效地使用數據,發揮其價值,無需關注數據加工的過程,做到各盡其職,充分發揮各自專長,同樣也能達到降本提效目的。大數據團隊內部本身組織和職責也傾於清晰化,比如按照職責分爲平臺(工具)研發、數據研發、數據產品、數據分析等不同組織。

2.4 當前階段

數據應用到各個角落,除了之前可以支撐的決策分析以外,大數據與線上事務系統(OLTP)的聯動場景非常多,比如我們在電商平臺查詢個人所有歷史訂單,再比如一些刷單、反作弊的實時攔截,以及一些實時推薦等,這些都是通過將數據的運算交給數據中臺部門處理,前臺部門直接通過API進行結果調用。數據中臺的集中化建設也更好地支撐起創新業務,比如通過大數據+分析建立起商業化數據變現產品,進行數據售賣,把數據變成新的業務。

大家知道共享複用是中臺建設中很關鍵的一個詞,這也是爲什麼我們很多數據中臺下面會包括共享數據組,公共數據組等。實際上共享複用並不是大數據發展的一個新詞,在早期數據倉庫(建立公共數據模型)、大數據平臺(研發一些組件化工具)的建設中,也是滿足共享複用的。

如上提到,數據中臺本身是組織,方法的升級與變革,更多是利用技術的進步更好地支持這些升級變革,如果你當前的建設還是數據平臺+數倉(數據湖等)但是已經具備這些方法和特性,我個人認爲也是合理的。

數據中臺的建設也需要相應的成本與門檻,例如集羣搭建、工具建設等。雲計算的發展可以快速提供數據中臺建設的能力,例如企業無需自己搭建機房,使用雲計算的彈性計算存儲能力以及豐富的工具,可以支撐數據中臺的快速搭建。

關於數據中臺的合理性也一直頗有爭議,大型(集團型)公司有相互獨立的子公司,數據之間不需要太多連接與共享,分別構建自己子數據中臺也是合理的架構,集團層面可以利用數據子中臺進行數據上報解決集團層面數據大盤、統計、分析、財務等訴求。再比如一些小型公司是否需要在一開始就按照數據中臺的架構進行建設,也是存有一些爭議。

數據中臺是2015年阿里提出來的雙中臺的概念其中的一個重要組成,阿里作爲先驅者,提供了數據中臺架構、以及非常多的建設思路供大家參考。從目前的建設效果來看,很多公司在數據中臺建設中有不錯的成效(尤其是大中型公司),數據中臺整體思路得到了驗證。但是數據中臺本身還算一個新鮮事務,這個新鮮事務目前還沒有標準答案,只有參考答案。

三、數據中臺架構與技術選型

3.1 數據中臺架構核心組成

我認爲的數據中臺核心架構包括四大組成部分,具體是:

  • 底座是數據基礎平臺,包括數據採集平臺&計算平臺&存儲平臺,這些可以自建也可以使用雲計算服務;
  • 中間部分兩大塊是中臺的公共數據區,公共數據區包括數據倉庫(數據湖) ,主要負責公共數據模型研發,還包括統一指標(標籤)平臺,負責把模型組織成可以對外服務的數據,例如數據指標、數據標籤;
  • 上層是數據應用服務層,主要將公共數據區的數據對外包裝並提供服務,包括數據接口平臺、多維查詢平臺,數據可視化平臺、數據分析平臺等。
    另外,數據研發平臺和數據管理平臺貫穿始終,其中:

1)數據開發平臺

包括數據開發的各類工具組合,例如:數據管道工具(比如數據接入、數據導出)、模型設計工具、腳本開發工具、數據調度工具等。

2)數據管理平臺

包括統一元數據管理、數據質量管理、數據生命週期管理。針對數據全鏈路的數據管理,保證數據中臺可以監控數據鏈路中的數據流向、數據使用效果、數據生命週期,以衡量數據的價值與成本。、

以上是數據中臺的核心部分,數據中臺的組成也可以更加豐富,比如包括:數據資產平臺、算法平臺等等。

在這裏插入圖片描述

在數據中臺的建設中一定不要忽視的是與業務的銜接,因爲數據來源於業務並最終應用於業務,在數據中臺的建設中需要有一系列的流程制度明確與業務的充分銜接,以保障數據源&數據產出的質量。

3.2 數據中臺技術選型參考

在搭建數據中臺方面,基於開源技術的選型,尤其是Hadoop生態圈有非常多的選擇,從數據整體流向來看各大層級的選型。

  • 數據抽取層:sqoop和flume是兩大主流工具,其中sqoop作爲結構化數據(關係型數據庫)離線抽取,flume作爲非結構化日誌接入;
  • 數據存儲層:Hadoop文件系統Hdfs大家都比較瞭解,而kafka作爲流式數據總線應用也非常廣泛;
  • 計算與調度層,包括:
    • 離線計算:離線計算主要是hive,spark,也有部分選用tez
    • 實時計算:前些年storm,spark比較流行,最近幾年大家紛紛往Flink轉型
  • 數據調度:除了像Airflow Azkaban Oozie等,易觀開源的Dolphin-scheduler也非常活躍
  • 數據引擎層:也就是我們常說的OLAP層,我們看到這一層裏的選擇非常多,就不一一列舉了,(業務需求帶動技術進步的典型,選擇豐富主要是可以適配不同的數據應用場景)。從概念上講分爲ROLAP、MOLAP以及兩者混搭。MOLAP提前做一些預計算,以生成Cube的方式,達到空間換取查詢效率;而ROLAP是即查即用,效率完全取決於查詢引擎的性能,我個人認爲從將來看,ROLAP的趨勢會更加明顯,因爲沒有中間的數據鏈路。但目前看來,沒有一個統一的引擎足以支撐各類數據場景(這或許是將來的機會~);
  • 數據可視化層:比較主流的有Metabase、Superset、Redash,也可以選擇阿里、百度的一些開源控件。

在這裏插入圖片描述

在開源技術的選擇裏,我們看到各層裏都有越來越多國內開源的工具(也充分體現了我們在大數據技術領域的進步)。除了以上列舉的這些,整個Hadoop生態圈的技術選擇非常多,可以結合自己的實際場景選擇自己的架構,在選型層面可以參照的一些原則,比如:

  • 是否有鮮活的成功案例,優先找自己類似業務場景;
  • 接口的開放性,與其他組件的兼容性;
  • 社區活躍性度&發展趨勢。

當然,數據中臺的選型不只是開源技術,開源本身也不是完美的,例如維護開發成本較高,升級迭代不好把控,通過開源技術去建立數據中臺還是有一定研發門檻。

所以也有很多商業化的套件、以及基於雲的數據組件可以選擇,包括數據採集、處理、分析、數據可視化全過程,國內外有很多廠商都提供了豐富的選擇。尤其在大數據可視化這塊,國內有許多非常專業的商業套件。

四、數據研發實踐

4.1 數據處理架構

下面是一個簡單的數據處理架構演進過程:

在這裏插入圖片描述

最早數據倉庫的計算只支持批處理,通常是按天定時處理數據,在後期逐步進化到準實時,本質上還是批處理,只是處理頻度上得有提升,到小時級,或者15分鐘這種。

隨着技術不斷進步,後期演化出一條新的流處理鏈路,這個鏈路和之前的批處理分別處理,然後在服務層面利用大數據的計算能力進行合併,向外提供離線+實時數據服務,這也是著名的lambda架構。

最近幾年隨着Flink等技術的發展,有一個趨勢是流批一體化,在接入層統一採用流式接入,計算層採用統一套框架支持實時計算+離線計算,批處理僅僅作爲流處理的一個特殊場景進行支持。整體上可以做到流處理、批處理的自由切換。

流計算和批處理在需求場景上有一些本質區別,前者主要用於支持線上業務場景(比如互聯網的推薦、搜索、風控等),而批處理更多是支持離線統計分析。

日出而作,日落而息,大家針對大數據的統計分析習慣不會發生根本性變化,最簡單的T+1批處理方式也還是數據應用必不可少的環節。在使用同一套架構上,由於數據源變化&維度變化的多樣性,批處理往往面臨一些複雜場景,這是採用同一套框架上的一些難點,充分支持好批處理也是將來流批一體框架的發展方向。

4.2 數倉分層與主題分類

1、數倉分層

在這裏插入圖片描述
與傳統ETL不同的,我們採用的是ELT的數據架構,較爲適合在互聯網,總體分爲業務數據層、公共數據層、應用數據層三大層次。

① 業務數據層(ODS層)

原始數據經過緩衝層(STG)的加載,會進入數倉的業務數據層,這一層採用範式建模,基本保持與數據源完全一致的結構,對於變化的數據,使用數據拉鍊加工與存儲。

這一層選用範式建模,是指保持源系統(例如關係數據庫)的範式結構,好處主要是:

  • 一次性接入數據源結構,針對需求的變動不用頻繁去與數據源對接;
  • 便於業務研發更好地理解數據,同時是也是公司的原始數據資產。

針對變化數據採用數據拉鍊的好處:

  • 保留歷史數據的同時,儘可能少佔用存儲空間,長期來看,拉鍊存儲比起每天全量保留歷史節約大概90%空間;
  • 快速、高效地獲取歷史任意一天業務系統的快照數據。

② 公共數據層(包括公共明細層DWD,公共彙總層DWS)

公共數據層是數據倉庫的核心層,是整個數倉中使用率最高的,這一層主要採用的維度建模思路進行設計,類型包括事務事實、週期快照、累積快照。同時爲了方便下游對數據的使用,我們會設計一系列的寬表模型,將不同業務過程中的事實進行統一整合,包括縱向整合&橫向整合;對於商品、用戶主數據類可能分散在不同的源系統中採用縱向整合;橫向整合主要包括交易、內容等行爲數據不同業務過程的整合,比如:用戶(用戶信息、註冊信息)購買(下單、支付、結算、覆約、完成)商品(商品信息,商家信息,等),我們會把訂單流轉業務過程整合放到一張明細表裏,同時會研發一些基於用戶、或者商品視角的輕度彙總寬表。

寬表非常便於理解和易用,下游應用調用也方便。我們之前也做過一些統計,在調用分佈來看,寬表的使用佔到70%以上。

雖然寬表的使用在數倉建模中非常普遍,但是也有一些缺陷:

  • 數據冗餘較多,在存儲、計算、調用較爲佔資源,建議儘量還是按場景去使用;
  • 寬表整合的信息較多,數據權限不好控制。建議可以根據需求,在有限範圍內開放整體寬表權限,或者通過視圖或者子表的方式建立不同權限的數據範圍,適應不同組織的需求;
  • 寬表通常依賴比較多,會影響數據的產出的時效。

③ 應用數據層(DWA層)

顧名思義,就是偏向應用的數據加工,也可以叫集市層,這一層的設計可以相對靈活,貼近應用即可,總體設計思想仍然可以按維度建模思想爲主。

2、主題分類

數倉架構的數據分類兩個視角,包括主題視角與業務視角。

① 數據主題視角

最重要的一個視角,也就是咱們經常提到的數倉主題,主題是將企業的業務進行宏觀數據抽象,是數據倉庫裏數據的主要組織形式,劃分方法如下:

  • 參照波特價值鏈,分析企業本身經營的業務(基本活動、支持型活動),分別對應哪些數據;
  • 參照業界通用模型,例如像IBM、TD等針對大型行業(如電信、金融、零售)有一些數據主題的通用劃分方法;
  • 對企業的內部數據(線上數據模塊、數據字典)進行摸底,確認對應到哪些主題。

劃分結果會按照三個層級:主題域–>主題–>子主題。

  • 第一級是主題域,針對相對穩定的主題進行合併,歸攏到主題域,利於數據的理解與建立全局的數據資產目錄;
  • 第二級是主題;
  • 第三級是子主題,主要針對有些主題下分類較多,比如供應鏈主題下會包含採購、倉儲、配送等子主題。

數據主題劃分建議完全互斥,不建議重複。

② 數據業務視角

數據業務域是根據企業經營的具體業務,結合企業的組織架構進行劃分,層次和分類可以相對靈活,子分類可以允許重複,因爲兩條不同的業務域可能經營相同的業務,例如電商、內容下都有會員這個業務。

在這裏插入圖片描述
上圖是一個比較典型的內容+電商的數據主題與業務分類。

以上一橫一縱兩個視角,將數據進行更好的歸類,在數據模型設計中會打上相應分類標籤,從而讓數據研發&數據使用人員統一認知。以上兩種分類方式主要應用於核心的公共數據層。

業務數據層、應用數據層並不需要遵循以上分類規則,比如業務數據層(ODS層)是按照數據源進行分類,應用數據層(DWA)是根據具體的應用進行分類。

4.3 數據研發流程

除了合理的架構之外,數據研發的流程也很重要,總體流程如下:

在這裏插入圖片描述
包括需求分析/數據調研、數據模型設計、數據開發&測試、上線發佈等流程。

在之前數據中臺的核心架構提到不閉門造車,數據研發需要與業務部門充分銜接,比如在數據調研中要與業務研發同學進行線上數據&結構訪談;在數據開發中,與分析&業務同學共同確認標準口徑;在數據研發完成後對數據使用方進行數據發佈與培訓。

以上流程中,除了需求調研,其他部分我們都進行了線上化,包括數據的模型設計,早期我們會手寫mapping文檔,後期我們逐步把mapping文檔進行了線上化,整體的數據模型設計通過模型設計工具完成,包括從概念模型、邏輯模型到物理模型的設計。模型設計完成後,可以一鍵生成數據知識文檔。

在這裏插入圖片描述

4.4 數據生命週期管理

數據研發完成,還需要關注數據生命週期,一方面數據量的飛速增長不僅僅需要佔用大量存儲,比如像自建機房,會涉及擴充機櫃、機房,往往會面臨一些瓶頸;另外一方面,大量的數據會降低數據的計算效率,所以從數據的生成開始,我們就需要考慮生命週期,並且結合數據的使用情況制定數據歸檔、數據銷燬等管理策略。

在這裏插入圖片描述
針對數據已經佔用了大量存儲資源,可以採取一系列措施進行成本控制,例如:

  • 降存量:通過數據壓縮技術、降副本等方式,以及在數據模型更合理的設計,將存量數據存儲降低;
  • 控增量:根據數據重要性,可恢復性等考量角度,確認數據的保留週期,並根據週期自動歸檔或刪除;
  • 攤成本:可以通過一些算法,比如數據調用分佈、需求來源等,把成本分攤到相應業務部門,讓相關業務部門關注到成本。

數據安全也是數據生命週期管理重的一個重要課題,比如針對用戶敏感信息,需要在接入時考慮如何加密。一種做法是通過一個獨立的物理集羣對敏感數據進行隔離與強管控;數據使用中,也需要將數據劃分不同的安全或敏感等級(例如有些財務數據的非常敏感,需要謹慎對外開放),根據不同的等級設定不同的訪問審批機制。另外,在數據歸檔、銷燬也需要制定好配套的安全管理措施,避免安全風險。

4.5 數據質量管理

數據質量管理主要包括3個角度:準確性、及時性、一致性。

管理的環節包括:事前、事中、事後、以及事故管理。

在這裏插入圖片描述
針對數據運維的告警發送,傳統的方式主要是短信、郵件、電話;隨着移動辦公工具功能逐步的強大,可以將運維告警以數據接口的方式與這些工具進行對接,將告警發送到企業內部的即時通訊工具。

4.6 數據應用架構

數據研發最終還是需要賦能到業務&應用,一個合理的數據應用架構是非常關鍵的,這張圖是一個應用架構的簡圖參考:

在這裏插入圖片描述
從數據的流向上分:

  • 數據倉庫(或者數據湖):負責原始數據的計算,主要將數據落地到HDFS;
  • 數據引擎層:數據加工完成之後,會將數據推送到不同的引擎中,這一層之前提到選擇非常多,可以根據自己的場景選擇一個混搭組合,比如我們目前選擇的有Presto,Kylin,Druid,Mysql;
  • 數據服務層:通過統一化的SQL調用服務,屏蔽底層不同的數據引擎,爲上層統一查詢提供標準接口;
  • 指標平臺:指標平臺是一個非常關鍵的產品,定位於銜接數據研發與數據應用,包括指標的標準定義、邏輯、計算方式、分類等各項內容。指標分類上我們分爲標準指標(指標口徑經過審覈過)、以及非標準指標;
  • 多維查詢:這是我們的一個即席查詢工具,查詢的數據主要來源指標平臺,可以選定不同的指標維度組合進行結果呈現,用戶可以一次性查詢得到結果,也可以將查詢結果配置成可視化的報表進行固化。

中間是統一元數據管理:對整個架構中可以對外提供服務的元數據進行統一管理(包括數倉的元數據、查詢引擎的元數據、指標元數據等),以及監控這些元數據的調用情況。

最右側是權限管理:權限管理關乎到數據安全,在設計上需要考慮周全,比如針對表級、指標級、維度級別都可以進行控制;同時產品層面也需要靈活配置權限審批級別與人員。

在面向用戶使用層面,我們主要開放的是多維查詢&可視化,用戶通過多維去查詢各類指標&維度數據,得到數據結果列表,再選擇可視化配置面板,完成各類圖表、表格的自主配置,併發布到個人看板或者業務大盤目錄裏。也可以將配置的數據看板進行靈活組合,定製成一個小型的數據產品。

4.7 數據ROI評估

在數據研發中,也要考量數據的ROI,下面是一個簡單的ROI模型:

在這裏插入圖片描述
根據活躍度(調用次數等)、覆蓋度(通過血緣關係找出依賴數量),以及貢獻度(依賴數據的重要等級)來確認數據的價值。同時會評估數據的成本指數(例如計算成本、存儲成本等)。

通過以上兩者相除,綜合得到數據的ROI,針對ROI可以將數據分爲不同等級,並相應進行數據治理。比如針對價值低,成本高的數據,可以考慮下線等。

五、數據研發趨勢&關注點

  • 提效:目前藉助工具的研發可以把絕大部分數據研發工作線上化,將來藉助AI等能力,實現數據處理中包括開發、運維的自動化,提升處理效率;
  • 靈活:流批一體化,包括流處理與批處理自由切換,之前已經提到過,個人認爲也是一個發展的趨勢;
  • 降本:數據研發鏈路的成本控制,在數據建設的早期通常不太引起關注,隨着數據量不斷的積累,往往存儲、計算成本成爲瓶頸。針對數據建設成本需提前考慮;
  • 算力:我們看到Google,IBM和阿里都在研究量子計算,將來的數據中間層(比如數倉的公共模型)是否可以考慮虛擬化(比如只保留規則&數據結構),具體數據內容在應用發起時,即調即用,更多時候可以不需要佔用存儲資源。算力的不斷提升,有可能會顛覆一些傳統數據建設的思路。

六、Q&A

Q1:請問貴公司如何壓縮數據?又如何刪除副本呢?

A:我們主要使用parquet +snappy壓縮;另外,如果發現壓縮率較低,可以通過排序來調整數據分佈,降副本可以瞭解下EC糾刪碼技術。

Q2:對於批處理效率低的問題該怎麼處理?

A:具體可以看什麼原因導致,如果是整體效率低,可以看資源利用是否集中,如果集中,可以考慮任務分等級錯峯進行隊列隔離等;如果是個別任務問題,那就要考慮邏輯和加工鏈路是否有問題,比如說可以全量改增量處理,邏輯參數優化;如果傾斜導致可以針對具體傾斜原因採取不同的優化方式。

Q3:請問基於Hadoop生態組件構建DW存在哪些不足?與MPP比較?

A:如果之前一直是按照傳統商業套件進行建設,可能在數據不能直接update這個點上不習慣。另外大部分技術都是經歷反覆演進才達到穩定的,所以最好能選用成熟組件。與MPP比較,MPP橫向擴充到一定規模可能會有瓶頸,而Hadoop集羣可以靈活擴充節點來增加算力,比如現在國內單集羣幾千臺、上萬臺的場景都有。

Q4:數據中臺建設團隊的KPI怎麼評定?

A:需求響應效率、前臺數據調用效率、數據覆蓋度、數據準確性、及時性、用戶滿意度、成本控制效果等。

Q5:您對HATP在行業應用趨勢和方向如何看?

A:HATP我個人沒有研究;如果HATP能解跨不同環境之間的數據連通性,應該可以替代一些當前大數據的應用場景。

Q6: 對於搭建數據中臺的生態工具,有什麼建議嗎?

A:文中有一些常規的選型(主要調研了當前一些主流工具),基本上都是經過了驗證過,更多還是找適合自己場景的工具。

Q7:請問現在對提效方面有什麼好的開源的線上工具嗎?

A:建模、開發中的一些提效小工具成本不高可以考慮自研,但是複雜一些例如任務調度完全可以找到成熟的開源工具。

Q8:範式建模層,是否會形成統一數據模型,即one model?

A:不會,範式主要應用在業務數據層,原則上我們不對外提供這一層的服務,主要用於加工DW層。

Q9:業務數據層,如果設計成拉鍊表,抽取數據是肯定是做更新插入操作,增量和存量數據做比對,很耗性能,特別是存量數據是海量的情況下,請問下如何處理此類問題?

A:大表拉鍊效率慢優化可以考慮減少計算數據量,例如把穩態數據進行歸檔,不參與計算。或者可以嘗試通過冷熱數據分離,再視圖合併。

Q10:請問mapping是建模管理的?是否用用ERWIN或者PD工具吧?

A:以前我們是通過excel模版建模並生成mapping文檔,現在只是把這個模版搬到線上,這個小工具可以連通到建表,並且發佈到數據知識系統。我們沒有使用ERWIN或者PD,模型之間的關係會輔助用一些思維導圖軟件。

Q11:爲什麼要基於Hive建數倉?它不支持索引、更新、事務。

A:Hive 搭建數倉當前來看處理效率、穩定性都是經過驗證過的。更新可以通過高效的insert over write來解決。

Q12:數據湖是什麼技術?跟數倉的關係是啥?

A:跟數倉是兩個獨立的概念,通過直接接入源系統的原始數據(包括結構化、非結構化),利用大數據強大的計算能力,直接將數據服務於應用。主要爲縮短傳統數倉的中間建模與處理(ETL)過程,目前有看到一些雲+數據湖的方案。

Q13:業務元數據、技術元數據在中臺中如何統一對應管理?

A:通過統一元數據管理工具例如指標元數據管理工具、數據表元數據管理工具,可以將業務元數據對應到技術元數據,建議可以在工具中設置一些強規範,來保證統一對應。

Q14:使用kylin做olap很不靈活,貴公司是使用kylin嗎?您認爲kylin主要是用於什麼場景?

A:是的,大部分場景使用的是kylin,kylin主要使用用業務形態相對穩定、計算的維度指標矩陣相對固定、原始數據量較大且有去重類指標計算的情況。通過一些模型設計和技術手段可以相對降低kylin靈活性差的問題,比如:模型設計的抽象化、底層使用視圖、使用Hybrids進行橋接等。

Q15:貴司數據治理工具用的哪個?

A:目前沒有專門的工具,從一開始保持數據的規範化建設、合理的架構,可以降低治理的工作;如果要治理可以考慮通過全鏈條元數據管理過程配合數據治理。

Q16:所講的體系如何保障數據業務化的、端到端的實時應用?

A:我們目前的場景還不多,可以瞭解其他互聯網場景豐富一些方案。如果是支撐端到端的實時應用,要保證穩定性需要在服務層有多種調用方案,例如針對同一個應用,可以有常規API調用以及降級API。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章