三個問題算法
1.當下是否還須要一個複雜的EDW(企業級數據倉庫)?架構
2.數據系統的目標用戶是誰?機器學習
3.讓數據適應計算能力仍是計算跟着數據走ide
數據倉庫這個概念在二十多年前由Bill Inmon提出後,幾乎全部的IT廠商都開始介入這個領域,爲企業級數據倉庫設計很是複雜的體系結構和數據模型,典型的企業級數據應用架構以下:函數
這個架構,層次結構很是清晰,可是鏈路很是長,致使數據冗餘很是大,同時數據表結構關係複雜,是一個典型的給技術人員使用的模型,業務的同窗要使用數據是很是難的,無法理解底層複雜的表結構和表之間複雜的關聯關係。這個現狀到如今還在持續存在,許多企業投入大量的資源構建企業級數據倉庫,目標是提高企業自身數據化運營的能力,其結果大部分都與目標相差很遠,更多看到的就是構建了一套報表系統。學習
同時,隨着互聯網和移動互聯網的興起,幾乎全部的企業都在擁抱互聯網,企業裏面產生出不少互聯網應用,同時也產生了大量的非結構化數據,結果問題來了,發現按照這樣的結構設計數據模型,彷佛並不能解決企業對非結構化數據的應用能力。同時對於提高數據處理效率也沒有帶來多大的用處。大數據
業務變化快,這點在新興互聯網公司表現的特別明顯,在創新的驅動下,業務變化很是頻繁,同時大數據概念的提出,多源數據結合使用將成爲主流的數據應用模式,致使數倉工程師很難抽象出一個相對比較穩定的數據倉庫模型。優化
產生大量沉睡數據,不少企業裏面,設計了ODS、DW、DM、RT層,產生了大量的數據表和數據任務,結果然正生產上使用的數據很少,致使天天有大量的關聯任務在不斷的耗用資源。我遇到的一些case,每日從業務庫裏面抽取的表只有1萬多張,可是通過後面的各類加工,整個庫裏面產生上百萬張數據表,技術人員使用起來都很是困難了,找不到數據。阿里雲
咱們回過頭來分析一下,爲何會這樣,同時也思考一下那三個問題。爲何會按照這個體系來設計:雲計算
我認爲,出現上述架構的最大的緣由是計算能力不夠,傳統的IT架構用來實現DT架構,計算能力受限,必須經過改變數據的組織形式來適應計算。也就是前面我提到的數據跟着計算走,去積極的適應計算能力。這同時也致使另外一個更爲嚴重的問題,二十幾年的發展,各個大數據廠商,都把很大精力放在了數據模型的設計和構建上面,忽略了針對上層業務場景化應用的計算模型探索,因此在新的技術體系下,咱們須要來從新思考這些問題。
這樣的模式下,限制了上層數據應用模式,企業裏面業務人員根本不可能去理解一個複雜的IT架構,全部的需求都是由業務人員驅動技術人員來實現。真正對數據有需求的業務人員,理解不了技術的語言,他們理解不了什麼是表、什麼事字段、什麼是主鍵、什麼是外鍵、表與表之間怎麼關聯、甚至是SQL怎麼寫都很難理解。而平常工做中,業務人員更能理解的是什麼,他們能理解本身的客戶是誰,客戶都長什麼樣子,具有什麼樣的氣質;本身有哪些產品,產品有什麼功能,能解決什麼問題;本身的客戶和產品之間是如何互動,互動的結果是什麼。諸如此類的,這是業務人員能力理解的。因此當下要作的就是抽象並提供一套能讓業務人員直接能夠理解使用的數據模型,而這個模型必定不是傳統的數倉模型。
封閉的,不透明的,這也是致使企業內數據膨脹的重要緣由,同一個標籤,甚至同一張表,在企業數據倉庫裏面比比皆是,致使大量數據冗餘,由於不少技術同窗根本不知道庫裏面有什麼,廠商提的元數據管理也是面向技術的一個方案,沒有從本質上解決數據的業務視圖。因此企業裏面須要一種能夠協同、共享、共建的全新的數據應用體系,確保有效數據的有效透出。
企業須要數據應用,提高自身數據化運營能力,可是是否須要一個複雜的DW模型,我認爲當下不須要了,設計上應該輕數據模型(注意這裏是輕數據模型,不是不要),重計算模型。
DTBoost是什麼?DTBoost是阿里雲結合阿里巴巴自身大數據應用場景,通過多年總結抽象出的企業級大數據應用平臺,其目標,是讓業務人員能夠快速的理解數據,應用數據;輕數據模型設計,重計算模型設計;結構開放,快速支撐數據應用開發;企業內部共建共享,協同開發。
我周邊常常有人問我這個問題,我能夠直接告你們,DTBoost目前沒有對標的產品。在我理解,DTBoost是一種全新的企業級數據應用開發的模式,咱們經過DT技術的手段,將這種模式實現成一套公共雲計算平臺上數據應用的PaaS,同時也能夠部署在專有云。經過DTBoost能夠幫助企業快速實現數據業務解決方案,同時使得業務人員直接使用數據變成現實。
經過前面的分析,DT時代須要一個全新的數據模型,這個也將是整個DTBoost的基礎。咱們要站在業務的視角來設計。同時要提供一套數據模型的管理系統,來方便模型的設計和構建。爲此在數據模型這部分將包含如下幾個核心模塊。
上圖中,最下面三個標籤工廠、領域OLT模版、智能OL發現主要是爲了加速業務OLT模型構建和標籤生產。
OLT(Object Link Tag)模型:所謂的實體,例如 消費者、商家、商品等均可以表示成一個實體,這些都是直接業務的同窗能夠理解的。關係例如 交易、收藏、點擊、搜索等行爲都是一個關係,由多個實體之間發生的某種行爲。同時咱們會在實體、關係上打上不少標籤,來刻畫實體和關係。聽下來和OLP模型很是像,不錯,在總體模型結構上一致,咱們重點在tag(標籤)這部分,標籤是業務人員最容易理解的一種數據形態,標籤能夠是實體的某種屬性,也能夠是經過算法深度加工出來的某個評分,或者多個標籤組合的一個計算邏輯。
共建共享
DTBoost能夠在標籤這個粒度實現權限控制,確保企業內造成共建共享的數據應用模式,標籤能夠有多個團隊開發,能夠發佈、受權共享給其它部門查看使用。確保業務應用數據層公開透明。
市場機制
在這一層也能夠經過市場機制的模式確保數據質量,嚴格意義上講是標籤數據質量,DTBoost能夠經過標籤元信息的公開透明,確保業務同窗能快速的理解標籤業務含義;經過講標籤的數據分佈可視化,確保數據產出的穩定性;經過業務線使用標籤的狀況,來確保標籤是否要被淘汰,若是一個標籤長時間沒人用,系統就能夠考慮將其停用下線,釋放底層計算資源;再進一步能夠經過上層應用的狀況,來自動優化物理層數據的組織方式。這裏舉個例子,若是A、B、C三個標籤常常性被業務方組合使用,原先這三個標籤在物理層分佈在三張表中,那這種狀況下,DTBoost會自動檢測,自動構建新的底層物理表,將三個標籤合併到同一張表中,優化存儲的同時,優化了計算。
智能搬遷
這裏在標籤元信息中,DTBoost會詳細記錄標籤對應物理的存儲,當業務方在應用標籤時,只用對計算模型進行選擇,不用對數據物理存儲關心,這個模塊會根據計算模型的指令,完成底層物理數據的自動關聯和搬遷(這裏的搬遷指的是自動的將數據由一個存儲搬遷到計算模型須要的存儲中),不用數據開發的同窗再去作物理數據的關聯和數據傳輸任務的配置。
API
下面的全部功能,DTBoost將其封裝成標準的API,共合做夥伴或者開發者作二次開發。
UI
DTBoost經過一個官方標準的交互界面,將底下的這些功能封裝,給用戶提供一套統一的操做體驗。
標籤工廠
爲何須要這個模塊,DTBoost數據模型裏面有很是重要的一塊就是標籤,可是標籤怎麼產生,哪些標籤是有效的標籤,這個就相當重要。而生成標籤的方式有多種,可讓數據開發人員,根據業務同窗的定義,經過SQL或着MR去一一實現,這個也是不可避免的。可是通過對業務需求的分析,你會發現有一部分計算邏輯是很是通用的,爲此DTBoost裏面能夠爲客戶提供這部分功能,來解決企業內30-50%的標籤加工需求,讓業務人員本身就能夠實現通用方法的標籤加工。同時標籤工廠可以對用戶屏蔽底層之間的表聯接邏輯,用戶只須要知道所用的標籤含義便可。當在某個時間段內同時有多個標籤進行生成、處理、分析的時候,標籤工廠能夠自動找出這些處理的共同依賴、同一計算等,節省計算資源,避免某些熱門物理表被屢次全盤掃描。現階段規劃的功能以下:
當前支持的衍生方法:
時間序列上的衍生: 方法名稱 方法描述
cnt 變量在必定週期內的發生次數
cntd 變量在必定週期內出現的不一樣值次數
totv 變量在必定週期內的總和
ttav 變量在必定週期內的均值
hmax 變量在必定週期內的最大值
hmin 變量在必定週期內的最小值
hmedian 變量在必定週期內的中位數
stddev 變量在必定週期內的標準差
variance 變量在必定週期內的方差
days 變量在必定週期內知足條件的天數
ftdays 變量在必定週期內知足條件的首次行爲距今時長 ltdays 變量在必定週期內知足條件的末次行爲距今時長
組合標籤支持的表達式以及函數:
計算運算:+, -, *, /, %
數學函數:abs,acos,asin,atan,ceil,conv,cos,cosh,cot,exp,floor,ln,log,pow,round,sin,sinh,sqrt,tanh,tanh
智能發現
這個模塊的做用就是加速構建OLT模型的過程,若是說 標籤工廠是加速T的過程,那麼智能發現就是加速OL的過程。如何構建一個有效的OLT模型很是關鍵,也是這個新一代大數據應用模式裏面可能花費時間最長的環節。爲此咱們經過技術的手段來輔助解決這個問題,實體在物理數據中大部分都是以Key的形式存在,關係通常都是以組合Key的形式存在,咱們採用機器學習方式,經過對業務庫log的挖掘,自動的發現出可能的實體和關係,並根據關係的強弱切割成不一樣的子圖,來幫助建模師確認、發現關鍵的業務模型。
**領域OLT模版** 這點很是有意思,也是真正意義上的領域知識,經過DTBoost在不一樣行業的不斷輸出,能夠總結沉澱出不一樣領域的實體關係模型,沉澱出不一樣領域標籤模型以及標籤分類體系,來造成DTBoost領域知識庫。同時它不只僅是模型層的一個領域模版,他會和上層計算模型聯動,造成從模型層到應用層一整套模版。好比金融領域,首先會沉澱出一套金融領域的實體關係標籤模型,基於這個之上,能夠沉澱出一套多維交叉分析模版、風控預警模版、市場營銷模版。在相同領域輸出時,能夠基於這個領域知識庫作快速的客戶化改造。 到這裏,數據模型部分能夠告一個段落,這塊是新一代企業大數據應用模式的基礎,很是重要,爲此DTBoost在這部分花了大量的時間和資源進行設計開發。重要但確實是個基礎,他並不能直接解決業務問題,真正做用到業務是基於這套數據模型之上的計算模型。 【轉自:必達】