在2016Hadoop技術(shù)峰會(huì)的主題演講上,星環(huán)科技創(chuàng)始人孫元浩深入淺出的闡述了Hadoop是如何推動(dòng)數(shù)據(jù)倉庫技術(shù)進(jìn)行深刻變革。
一、數(shù)據(jù)庫技術(shù)進(jìn)入戰(zhàn)略轉(zhuǎn)折點(diǎn)
今年大會(huì)的主題是Hadoop十年。2006年雅虎等團(tuán)隊(duì)開始研發(fā)Hadoop技術(shù)至今已整整十年。在此之間技術(shù)發(fā)展迅速,Hadoop上的生態(tài)系統(tǒng)逐漸擴(kuò)大。各個(gè)行業(yè)的用戶逐漸開始基于這一新的技術(shù)來開發(fā)全新的應(yīng)用,甚至將原先的應(yīng)用向Hadoop之上進(jìn)行遷移。未來,Hadoop會(huì)成為企業(yè)數(shù)據(jù)中心的核心。經(jīng)過這10年的發(fā)展,今年開始進(jìn)入一個(gè)戰(zhàn)略轉(zhuǎn)折點(diǎn)(strategic inflection point)。這意味著新的技術(shù)開始逐漸取代和超越老的技術(shù),并在各個(gè)行業(yè)迅速發(fā)展。未來的若干年之內(nèi),取代過程會(huì)不斷加速。星環(huán)近3年的發(fā)展,經(jīng)過持續(xù)的研發(fā)、投入以及大量的案例積累,達(dá)到新的高度。去年12月份Gartner分析師把星環(huán)科技(Transwarp)列為了國際主流的Hadoop發(fā)行版廠商之一,其他幾家包括Cloudera、Hortonworks、MapR。另外還有兩家公司分別是IBM和Pivotal,他們采用Open data Platform。全球共有6家公司上榜,星環(huán)也很榮幸能成為其中一家。
圖1 Hadoop十年
今年2月份Gartner發(fā)布的數(shù)據(jù)倉庫魔力象限當(dāng)中,星環(huán)科技也被放入了遠(yuǎn)見者(Visionaries)象限當(dāng)中。這個(gè)象限里基本上都是采用Hadoop技術(shù)的創(chuàng)業(yè)公司。這些公司采用全新的技術(shù),逐漸替代傳統(tǒng)數(shù)據(jù)庫來構(gòu)造新的數(shù)據(jù)平臺(tái)。另外雖然目前領(lǐng)導(dǎo)者象限(Leaders)仍是大廠商,如Oracle、Teradata等,但是經(jīng)過這10年的經(jīng)驗(yàn)技術(shù)的積累,逐漸達(dá)到戰(zhàn)略轉(zhuǎn)折點(diǎn),技術(shù)的取代過程明顯加速。如果關(guān)注這些領(lǐng)導(dǎo)者公司股票在過去一年的價(jià)格變化,就會(huì)發(fā)現(xiàn)市場預(yù)期在2016至2017年技術(shù)會(huì)發(fā)生非常大的變化。在企業(yè)客戶中,使用新技術(shù)的步伐會(huì)明顯加速。
二、中美Hadoop應(yīng)用統(tǒng)計(jì)對比
今天我演講的題目是介紹Hadoop是如何推動(dòng)數(shù)據(jù)倉庫技術(shù)進(jìn)行深刻變革的。這里有一組統(tǒng)計(jì)數(shù)據(jù):
圖2 Hadoop應(yīng)用統(tǒng)計(jì)
左邊的數(shù)據(jù)是Wikibon的分析師做的美國市場中Hadoop新技術(shù)的應(yīng)用場景統(tǒng)計(jì)。他采訪了上千名Hadoop的用戶,這其中有60%的用戶使用Hadoop技術(shù)來做數(shù)據(jù)倉庫,有25%的用戶是按照交互式BI的,在Hadoop之上用報(bào)表工具、可視化工具來做交互式分析數(shù)據(jù)報(bào)表。同時(shí)有6%的用戶是在用HBase、Cassandra來做OLAP的簡單輕量級Key-Value查詢。有4%用戶使用MongoDB、Couchbase文檔式數(shù)據(jù)庫進(jìn)行文檔存儲(chǔ),還有5%的用戶使用流處理來做實(shí)時(shí)數(shù)據(jù)研判,由此構(gòu)成一個(gè)完整的100%的應(yīng)用分類。當(dāng)然還有可能有一些其他的應(yīng)用漏掉了,但這幾個(gè)是主要的應(yīng)用產(chǎn)品。
在中國市場,根據(jù)我們的樣本中幾百名企業(yè)用戶進(jìn)行統(tǒng)計(jì),結(jié)果跟美國稍微有點(diǎn)差異。分析結(jié)果顯示,有56%的客戶是做數(shù)據(jù)倉庫的,包括ODS、ETL、數(shù)據(jù)清洗等,如在我們的客戶中,用于取代關(guān)系型數(shù)據(jù)庫提供完整的數(shù)據(jù)倉庫支持,來建構(gòu)各種主題模型。這個(gè)比例是比較接近美國用戶的。但是我們只有8%的用戶在做交互式BI。自主BI這一塊在國內(nèi)也開始興起。注意到和美國市場相比,顯著不一樣的地方在于我們有24%的客戶是用來做輕量級查詢的,這個(gè)百分比指的是客戶數(shù)量占比而不是客戶集群規(guī)模(構(gòu)成的集群節(jié)點(diǎn)數(shù)量)。這個(gè)比較有趣的現(xiàn)象說明,實(shí)際上在中國,應(yīng)用比較簡單,因?yàn)榭蛻舻臄?shù)據(jù)量非常巨大,才會(huì)使用新技術(shù)解決問題。實(shí)際上中國客戶的數(shù)據(jù)量,跟美國同類型客戶的數(shù)據(jù)量相比是要大一個(gè)數(shù)量級(10倍)的,簡單的查詢對中國的客戶來說是有巨大的困難的。所以我們可以看到有24%的客戶在用Hyperbase(HBase)組件進(jìn)行簡單查詢。還有2%的客戶是用我們的產(chǎn)品來進(jìn)行文檔的搜索和圖檢索。另外還有個(gè)很大的不同是有10%的用戶是用流處理的。從圖中就可以發(fā)現(xiàn),我們國家的工業(yè)4.0制造業(yè)傳感器的網(wǎng)絡(luò)建設(shè)速度是快于美國的。我們的用戶群中比例明顯就超過了美國的市場比例。
三、傳統(tǒng)數(shù)據(jù)倉庫面臨的四大挑戰(zhàn)
實(shí)際上大家可以看到,Hadoop技術(shù)在過去一段時(shí)間之內(nèi),至少在2015年逐漸開始往數(shù)據(jù)倉庫方向轉(zhuǎn)變。當(dāng)然,Hadoop在早年剛開始創(chuàng)建的時(shí)候,主要也是作為數(shù)據(jù)倉庫的,所以現(xiàn)在越來越多的行業(yè)也開始用Hadoop技術(shù)做數(shù)據(jù)倉庫。那么什么是數(shù)據(jù)倉庫?Gartner的解釋是:數(shù)據(jù)倉庫不僅是一個(gè)單一的數(shù)據(jù)庫,它是一整套的數(shù)據(jù)管理系統(tǒng),包含很多的輔助工具、一些設(shè)計(jì)理念和管理方法。傳統(tǒng)的數(shù)據(jù)倉庫技術(shù),經(jīng)過快20年或者更長時(shí)間的發(fā)展,已經(jīng)面臨了一些瓶頸。
圖3 傳統(tǒng)數(shù)據(jù)倉庫技術(shù)面臨的挑戰(zhàn)
第一個(gè)問題,我們看到隨著數(shù)據(jù)量增大,包括復(fù)雜程序應(yīng)用的增多,傳統(tǒng)數(shù)據(jù)倉庫越來越不堪重負(fù)。我們有一個(gè)客戶在數(shù)據(jù)倉庫建立了5000個(gè)統(tǒng)計(jì)報(bào)表應(yīng)用。我們也有客戶使用著數(shù)據(jù)量近20個(gè)PB的商業(yè)系統(tǒng)。對于大部分的企業(yè)用戶,數(shù)據(jù)量一般在幾十個(gè)TB或者幾百個(gè)TB左右。這么大的數(shù)據(jù)量對傳統(tǒng)的倉庫系統(tǒng)來說是非常大的負(fù)擔(dān)。單一的數(shù)據(jù)倉庫無法處理這么大量的數(shù)據(jù),所以在這一塊需要新的技術(shù),特別是利用分布式計(jì)算來取代原本單一的計(jì)算方式來進(jìn)行橫向擴(kuò)展。我們認(rèn)為Hadoop技術(shù)能成功的最根本的原因是它是從單機(jī)的集中式運(yùn)算變成了分布式計(jì)算,這是它最大的計(jì)算模式的演變。把集中計(jì)算變成分布計(jì)算是一個(gè)必然趨勢,這是碰到的第一個(gè)困難,一是需要一些新型的分布式數(shù)據(jù)庫技術(shù)進(jìn)行性能的加速,來處理這種幾百TB或者上PB的數(shù)據(jù)量。二是隨著數(shù)據(jù)源的不斷增多,訪問數(shù)據(jù)的方式變得非常復(fù)雜。我們很多客戶有幾百個(gè)庫表,有幾千上萬張表,這樣復(fù)雜的數(shù)據(jù)模型通常很難把所有數(shù)據(jù)存儲(chǔ)到一個(gè)數(shù)據(jù)庫當(dāng)中,只能分?jǐn)偟胶芏鄠(gè)庫當(dāng)中。對數(shù)據(jù)的使用者帶來了很大的困難,因?yàn)樗麄冃枰讯喾N數(shù)據(jù)全部存儲(chǔ)起來。這個(gè)是第一個(gè)大的困難。
第二個(gè)問題是數(shù)據(jù)的類型發(fā)生變化,過去是以結(jié)構(gòu)化數(shù)據(jù)為主,80%是結(jié)構(gòu)化數(shù)據(jù)。現(xiàn)在非結(jié)構(gòu)化數(shù)據(jù)逐漸增多,這個(gè)值開始反過來,80%是非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)。但是從價(jià)值度來講,80%的價(jià)值密度仍然是來自于結(jié)構(gòu)化數(shù)據(jù)。而對于企業(yè)來講,需要這些非結(jié)構(gòu)化數(shù)據(jù),進(jìn)行存儲(chǔ)分析。另外在數(shù)據(jù)源變多以后,用戶和業(yè)務(wù)部門也變多。這些部門之間如何進(jìn)行資源有效管理和隔離,變成一個(gè)非常嚴(yán)重的問題。例如過去有些銀行客戶是采用行政處罰措施,如果有人寫一條SQL,把數(shù)據(jù)倉庫資源耗盡,導(dǎo)致其他人不能使用,那么這個(gè)人今年的獎(jiǎng)勵(lì)就沒有了。采用這種方式是沒有效果的,因?yàn)橛脩舾揪筒恢浪麑懙倪@個(gè)SQL,會(huì)不會(huì)把數(shù)據(jù)倉庫跑掛掉。另外做訪問控制也是很痛苦的,為了使不同的分支機(jī)構(gòu)只能訪問自己的數(shù)據(jù),需要?jiǎng)?chuàng)建視圖。如果用戶有1000張表,同時(shí)還有幾十個(gè)分支機(jī)構(gòu),那么久需要?jiǎng)?chuàng)建上萬個(gè)視圖,這對數(shù)據(jù)的視圖管理會(huì)帶來巨大的挑戰(zhàn)。所以在幾年前,分析機(jī)構(gòu)就提出要建邏輯數(shù)據(jù)倉庫。邏輯數(shù)據(jù)倉庫就是在過去幾年當(dāng)中一直被數(shù)據(jù)倉庫領(lǐng)導(dǎo)者反復(fù)強(qiáng)調(diào),我們需要去建一個(gè)邏輯上大的數(shù)據(jù)倉庫,他底下可以包括多個(gè)數(shù)據(jù)源—-通過database federation(數(shù)據(jù)聯(lián)邦)功能,同時(shí)它可以跨多種數(shù)據(jù)源,可以把結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)統(tǒng)一處理。Michael Stonebraker在前段時(shí)間講過,未來不管是傳統(tǒng)數(shù)據(jù)庫技術(shù)還是大數(shù)據(jù)技術(shù),大家都會(huì)統(tǒng)一到使用SQL接口,包括結(jié)構(gòu)化數(shù)據(jù)與非機(jī)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)也會(huì)被結(jié)構(gòu)化后進(jìn)行處理。所以邏輯數(shù)據(jù)倉庫適應(yīng)于這種變化,通過統(tǒng)一接口統(tǒng)一方式訪問數(shù)據(jù)源,完成跨各種數(shù)據(jù)源的訪問,同時(shí)也會(huì)建造一個(gè)有多租戶管理、資源管控的環(huán)境,能夠被很多部門、用戶進(jìn)行使用。這從理論上來講是區(qū)別于傳統(tǒng)數(shù)據(jù)倉庫的應(yīng)用場景。
第三個(gè)挑戰(zhàn)是數(shù)據(jù)處理的延時(shí)太長。過去整個(gè)數(shù)據(jù)架構(gòu)前面是OLTP系統(tǒng),中間是ODS,后面是數(shù)據(jù)倉庫層,再往后是數(shù)據(jù)集市。那么在數(shù)據(jù)倉庫這一層,數(shù)據(jù)是T+1的,意味著第二天才訪問前一天的數(shù)據(jù)。但是很多行業(yè)需要更實(shí)時(shí)的數(shù)據(jù),為了了解當(dāng)前的生產(chǎn)運(yùn)營狀況,它們需要基于T+0、準(zhǔn)實(shí)時(shí)的,甚至是實(shí)時(shí)的幾分鐘幾秒鐘之內(nèi)的數(shù)據(jù)。這種需求就演變成第三種數(shù)據(jù)倉庫運(yùn)營模式——Operational Data Warehouse。這種業(yè)務(wù)模式的設(shè)計(jì)初衷是希望把數(shù)據(jù)實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的導(dǎo)入到數(shù)據(jù)倉庫當(dāng)中,能夠?qū)?shí)時(shí)數(shù)據(jù)進(jìn)行快速的分析和挖掘。傳統(tǒng)的數(shù)據(jù)倉庫是每天晚上數(shù)據(jù)導(dǎo)入,花7-8個(gè)小時(shí)進(jìn)行批處理計(jì)算,第二天才能看到報(bào)表。所以傳統(tǒng)技術(shù)面臨一個(gè)普遍的問題:不能實(shí)現(xiàn)實(shí)時(shí)處理。
第四個(gè)挑戰(zhàn)是原先的邏輯數(shù)據(jù)模型不能有效支撐數(shù)據(jù)快速分析和價(jià)值發(fā)現(xiàn)。過去大家做統(tǒng)計(jì)是對數(shù)據(jù)做一些常見的聚合以及連接關(guān)聯(lián)操作。遵循關(guān)系數(shù)據(jù)庫的模式,有很多模型和各種范式,像很多廠商在相關(guān)行業(yè)設(shè)計(jì)了十大主題模型、八大主題模型,中間數(shù)據(jù)的關(guān)聯(lián)程度是非常高的。一個(gè)有幾千個(gè)數(shù)據(jù)源表的業(yè)務(wù)系統(tǒng),中間層需要用上萬張數(shù)據(jù)表來滿足它的模型。這樣一個(gè)復(fù)雜的模型所帶來的弊端就是數(shù)據(jù)結(jié)構(gòu)一旦發(fā)生變化或者增加時(shí),模型就不堪重負(fù)。預(yù)先設(shè)定的模型沒法適應(yīng)業(yè)務(wù)的快速變化,所以我們經(jīng)常能看到銀行花幾年時(shí)間建立一個(gè)數(shù)據(jù)倉庫,反復(fù)投入,每年在改造它。近期了解到一家銀行科技部門,前后10年投入十幾億來建數(shù)據(jù)倉庫。而今天一方面大量數(shù)據(jù)在產(chǎn)生,同時(shí)新的數(shù)據(jù)也在增加,有些來自內(nèi)部的數(shù)據(jù),有些來自新的外部數(shù)據(jù)。數(shù)據(jù)處理方法的確到了應(yīng)該變革的時(shí)候。通過利用新的機(jī)器學(xué)習(xí)的統(tǒng)計(jì)方法,不僅做傳統(tǒng)SQL的統(tǒng)計(jì),還希望能夠從數(shù)據(jù)關(guān)聯(lián)上面發(fā)現(xiàn)規(guī)律、關(guān)聯(lián)模式、時(shí)序上的特征。通過對它進(jìn)行一些預(yù)測分析,能夠發(fā)現(xiàn)統(tǒng)計(jì)學(xué)意義上的因果關(guān)系。這就變得對企業(yè)更加重要。這一塊是第四種數(shù)據(jù)倉庫新的設(shè)計(jì)模式,叫context independent data warehouse,也就是說拋棄這些邏輯關(guān)聯(lián)模型,在不知道這些模型的情況下,也能通過機(jī)器學(xué)習(xí)的方法找到數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,能夠找到他們之間統(tǒng)計(jì)學(xué)的因果關(guān)系。
四、全新的數(shù)據(jù)倉庫設(shè)計(jì)模式
這四個(gè)應(yīng)用模式,這四個(gè)困境引出了新的數(shù)據(jù)倉庫的設(shè)計(jì)模式。意味著這四種應(yīng)用模式需要全新的技術(shù)支撐,這也是我們看到新的技術(shù),特別是Hadoop產(chǎn)生以后,衍生出來新的技術(shù)演進(jìn)逐步在滿足這些需求。
現(xiàn)在講第一個(gè),傳統(tǒng)數(shù)據(jù)倉庫為了應(yīng)對數(shù)據(jù)量的增加,需要采用新的方式。我們看到計(jì)算模式在過去的十幾年里發(fā)生了非常明顯的變化,從單機(jī)開始,首先是第一步計(jì)算并行化。計(jì)算并行化就是我們稱為并行數(shù)據(jù)庫——數(shù)據(jù)庫引擎并行化,但是對存儲(chǔ)無法有效擴(kuò)展,所以就演變出了第二代計(jì)算和存儲(chǔ)的分布式化,產(chǎn)生了第二代分布式技術(shù),大規(guī)模并行數(shù)據(jù)庫就是MPP數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫解決了一部分問題——幾個(gè)TB級別的數(shù)據(jù)的高速處理問題。但是在數(shù)量增加的時(shí)候,又遇到一個(gè)瓶頸,它需要一個(gè)新一代的技術(shù)。新一代的計(jì)算模式發(fā)生了變化,這個(gè)是Google在2003、2004年中發(fā)布的兩篇論文中,解釋了MapReduce的計(jì)算模式。大家發(fā)現(xiàn),經(jīng)過這么多年發(fā)展,MapReduce計(jì)算模式仍然是最佳的分布式計(jì)算模式,它把計(jì)算和存儲(chǔ)有效地結(jié)合了起來,它仍然是現(xiàn)在最具有擴(kuò)展性、最具容錯(cuò)性,現(xiàn)在隨著我們星環(huán)新的技術(shù)實(shí)現(xiàn),它甚至是性能最好的計(jì)算模式。這樣一個(gè)演變使得新的數(shù)據(jù)倉庫技術(shù)能夠處理從幾個(gè)TB到幾十個(gè)PB的數(shù)據(jù)量,能夠線性擴(kuò)展,而且在每個(gè)數(shù)量級上都可以比傳統(tǒng)的數(shù)據(jù)處理技術(shù)快若干倍甚至一個(gè)數(shù)量級(10倍)。這里有一組數(shù)據(jù),是我們在春節(jié)前測試的數(shù)據(jù)結(jié)果,今天的演講也是為了介紹我們在TPC-DS標(biāo)準(zhǔn)測試集上的最新進(jìn)展。去年的時(shí)候我們已經(jīng)做到了基于TPC-DS benchmark從1TB到100TB都能有效地處理,而且處理的性能是,我們用29臺(tái)機(jī)器,能夠在40個(gè)小時(shí)內(nèi)完成100TB總共99個(gè)報(bào)表處理。我們測試使用的是普通的兩路的服務(wù)器,CPU還是比較弱的,今天能夠在TPC-DS benchmark上跑過100TB的數(shù)據(jù)倉庫,應(yīng)該是屈指可數(shù)的。大家可以發(fā)現(xiàn)新的技術(shù),在處理100TB上是沒有壓力的。
第一個(gè)問題我們可以通過分布式計(jì)算來解決,第二個(gè)是通過數(shù)據(jù)聯(lián)邦技術(shù)處理多數(shù)據(jù)源以及解決多租戶的問題,這個(gè)是Gartner分析師在幾年之前提出來的,叫邏輯數(shù)據(jù)倉庫。邏輯data warehouse能夠比較有效地解決這個(gè)問題。分析師認(rèn)為,邏輯數(shù)倉應(yīng)該有三個(gè)部分。第一個(gè)部分是中心的Repository,所有數(shù)據(jù)全部集中放在這個(gè)上面。第二個(gè)是需要有一個(gè)數(shù)據(jù)庫虛擬化,或者叫數(shù)據(jù)庫聯(lián)邦技術(shù),能夠把多種數(shù)據(jù)源融合起來,從應(yīng)用角度來看使用更加方便。第三個(gè)是在邏輯數(shù)倉之上,最核心的就是分布式計(jì)算。同時(shí)其中有兩個(gè)特性是需要滿足的,一個(gè)就是能不能按需對數(shù)據(jù)倉庫進(jìn)行擴(kuò)張、能不能實(shí)現(xiàn)多個(gè)用戶共享一個(gè)平臺(tái)。這個(gè)是邏輯數(shù)據(jù)倉庫必須要解決的問題。第二個(gè)是對于元數(shù)據(jù)的管理、對數(shù)據(jù)質(zhì)量管理的有效方法、對數(shù)據(jù)訪問要有審計(jì),這也是邏輯數(shù)據(jù)庫核心設(shè)計(jì)的原則。當(dāng)然我們這里介紹的兩個(gè)技術(shù),是星環(huán)用來支撐邏輯數(shù)據(jù)庫建設(shè)的。我們在SQL層也支持傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)聯(lián)邦的概念,可以支持DBlink的語法。我們把這個(gè)計(jì)算分散開,劃到多個(gè)數(shù)據(jù)源上面。這里有兩種實(shí)現(xiàn)方式,一種是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的方式,把Hadoop作為另外備用的計(jì)算引擎。
另外一種,星環(huán)是建造SQL翻譯層,把源數(shù)據(jù)放到Hadoop上的執(zhí)行計(jì)劃里,但是如果數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫上,我們會(huì)把SQL給到關(guān)系型數(shù)據(jù)庫執(zhí)行,執(zhí)行的時(shí)候?qū)嶋H上計(jì)算仍然是分布式的,仍然在Hadoop上進(jìn)行運(yùn)算,只不過數(shù)據(jù)源在關(guān)系型數(shù)據(jù)庫里。這里面有兩個(gè)優(yōu)化技術(shù),一個(gè)優(yōu)化是把數(shù)據(jù)抽取到多個(gè)節(jié)點(diǎn)上進(jìn)行分布式計(jì)算,同時(shí)把SQL中的一些過濾條件下推(pushdown)到關(guān)系型數(shù)據(jù)庫。這種方式的變化就是關(guān)系型數(shù)據(jù)庫以及傳統(tǒng)上現(xiàn)在處于領(lǐng)導(dǎo)者象限的廠商實(shí)際上希望是以他們的數(shù)據(jù)庫為主,而我們是希望以Hadoop為主,來構(gòu)造這樣一個(gè)數(shù)據(jù)聯(lián)邦的實(shí)現(xiàn)方案。今天看來,這種技術(shù)是最佳的,因?yàn)槲覀兊挠?jì)算是全部分布式化的,所以我們的性能比他們更有優(yōu)勢。第二個(gè),為了構(gòu)造邏輯數(shù)倉引入了微服務(wù)的概念,那微服務(wù)的實(shí)現(xiàn)是用容器來實(shí)現(xiàn)的。我們有個(gè)產(chǎn)品,也有相應(yīng)的演講是介紹新的產(chǎn)品TOS(Transwarp Operating System),這個(gè)產(chǎn)品是基于Docker和kubernetes來構(gòu)造彈性的基于容器化的計(jì)算環(huán)境。在這之上我們把傳統(tǒng)的數(shù)據(jù)倉庫的應(yīng)用,即剛才我們講的上千個(gè)應(yīng)用,全部容器化,放在我們的應(yīng)用商店當(dāng)中。應(yīng)用商店里面的每一項(xiàng)應(yīng)用都是標(biāo)準(zhǔn)的服務(wù),這些服務(wù)在實(shí)例化的時(shí)候可能會(huì)由幾百個(gè)上千個(gè)容器組成。那么我們會(huì)把這個(gè)應(yīng)用打包成一個(gè)服務(wù),作為整體進(jìn)行調(diào)度。通過這種方式,我們可以有效地實(shí)現(xiàn)把數(shù)據(jù)庫本身的服務(wù)當(dāng)成平臺(tái)服務(wù),能夠一件一件部署,能夠進(jìn)行靈活地?cái)U(kuò)張,同時(shí)我們也可以把上層應(yīng)用像蘋果的apple store安裝應(yīng)用一樣,在我們的應(yīng)用商店中快速地部署。同時(shí),不同應(yīng)用之間可以通過容器技術(shù)進(jìn)行有效的隔離。
圖4 基于Docker/星環(huán)TOS的微服務(wù)多租戶架構(gòu)
第三種就是實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)倉庫。我們需要有一種新的方法把數(shù)據(jù)實(shí)時(shí)導(dǎo)入到數(shù)倉當(dāng)中,一種方法是把傳統(tǒng)的OLTP數(shù)據(jù)庫通過ETL抽入到一個(gè)operational database當(dāng)中。過去,這就是關(guān)系型數(shù)據(jù)庫,現(xiàn)在,很多人是用HBase或Cassandra來實(shí)現(xiàn)。但是有一個(gè)普遍的問題就是數(shù)據(jù)進(jìn)入這個(gè)operational database以后,大家需要對數(shù)據(jù)進(jìn)行復(fù)雜的分析,因?yàn)閿?shù)據(jù)倉庫是用來做分析的。數(shù)據(jù)分析的復(fù)雜程度可能是在上面跑幾十萬行SQL統(tǒng)計(jì)。同時(shí),它的一個(gè)復(fù)雜分析可能就有上萬行,需要快速地完成。這樣的一個(gè)要求實(shí)際上是很難滿足的,因?yàn)樗奶攸c(diǎn)是要對數(shù)據(jù)進(jìn)行實(shí)時(shí)的寫入,同時(shí)也要對它進(jìn)行復(fù)雜的分析,目前沒有一項(xiàng)數(shù)據(jù)庫技術(shù)能夠同時(shí)滿足這兩個(gè)需求。當(dāng)然有的廠商號稱既能支持OLTP又能支持OLAP。有一個(gè)新的類別叫Hybrid Transactional &AnalyticalDatabase,這種數(shù)據(jù)庫也有相關(guān)分析報(bào)告,但目前好像沒有技術(shù)能比較成熟地來解決這個(gè)問題。那我們在實(shí)現(xiàn)該設(shè)計(jì)模式的時(shí)候,底層采用的技術(shù)其實(shí)就是基于Hadoop,我們是在HDFS上構(gòu)造自己的分布數(shù)據(jù)庫,存儲(chǔ)格式改進(jìn)了ORC的存儲(chǔ)格式,可以支持增刪查改,也可以支持分布式事務(wù)處理。我們前面開發(fā)了一個(gè)ETL的工具,可以把數(shù)據(jù)庫的日志進(jìn)行重放,直接插入到ORC事務(wù)表里面去。這是一個(gè)準(zhǔn)實(shí)時(shí)的操作,通常是幾分鐘內(nèi)能完成從交易型數(shù)據(jù)庫實(shí)時(shí)同步到Hadoop當(dāng)中,然后在這個(gè)上面的做復(fù)雜關(guān)系,這個(gè)分析是非常高效的。這是一種實(shí)現(xiàn)方式,但是他的延時(shí)還不夠快,因?yàn)樗欠昼娂墑e的,比如是業(yè)務(wù)數(shù)據(jù)庫,如DB2借助IBM Datastage把操作日志放出來之后,再解讀這個(gè)日志,寫到倉庫中去。
但是還有一些客戶希望是更實(shí)時(shí)的,他希望在幾秒鐘之內(nèi)能夠完成計(jì)算,這個(gè)時(shí)候我們采用第二種方法是把數(shù)據(jù)與復(fù)雜計(jì)算前推到流處理框架中去。前置的交易系統(tǒng)通常是采用這種方式,今天有很多金融機(jī)構(gòu)的應(yīng)用,特別是網(wǎng)銀,像互聯(lián)網(wǎng)金融,全部的交易訂單都在消息隊(duì)列中,如RabbitMQ、Kafka,這個(gè)時(shí)候我們天生的優(yōu)勢,就是可以直接從交易隊(duì)列中把數(shù)據(jù)取出來,在流上進(jìn)行運(yùn)算。流上的計(jì)算實(shí)際上也是在數(shù)據(jù)倉庫中的一個(gè)復(fù)雜的運(yùn)算,也有大量存儲(chǔ)過程和SQL,這方面星環(huán)做了大量的工作,我們能夠在流上進(jìn)行復(fù)雜的SQL運(yùn)算,支持標(biāo)準(zhǔn)SQL2003和存儲(chǔ)過程,包括DB2和Oracle存儲(chǔ)過程,也就意味著你可以把原來在后端的復(fù)雜的SQL運(yùn)算前置到流上面來做,例如時(shí)間窗口中的數(shù)據(jù)構(gòu)成一張表,這張表跟普通表不一樣的地方是,它是一直處于變化流動(dòng)當(dāng)中。這種方式適合對計(jì)算延時(shí)要求很高的,我們有一個(gè)客戶要在一秒鐘之內(nèi)對市場行情進(jìn)行運(yùn)算,他有160個(gè)復(fù)雜模型,有些復(fù)雜模型其實(shí)是用存儲(chǔ)過程來寫得偏微分方程的構(gòu)成。這就意味著我們需要在流上面做復(fù)雜計(jì)算,然后延時(shí)要在幾秒鐘內(nèi)完成,新型的高頻交易的場合就非常需要這種模式。
第四種數(shù)據(jù)倉庫設(shè)計(jì)模式指的是,叫context independent Data warehouse,一種上下文無關(guān)的數(shù)據(jù)倉庫設(shè)計(jì)架構(gòu)。這個(gè)架構(gòu)通常需要完成幾項(xiàng)重要的工作。首先就是說,這個(gè)數(shù)據(jù)倉庫應(yīng)該能夠支持關(guān)聯(lián)分析,對于數(shù)據(jù)和表,能夠通過相關(guān)性找到它們之間的關(guān)聯(lián)關(guān)系,同時(shí)也能發(fā)現(xiàn)一些統(tǒng)計(jì)學(xué)上的因果關(guān)系。這一塊我們是借助R語言來實(shí)現(xiàn)的。只不過我們把R語言的很多算法分布式化了,但是對用戶來講,體驗(yàn)是跟R語言一模一樣的。如果用戶有熟悉R語言的專家,可以很快上手,能夠用R語言來做復(fù)雜的關(guān)聯(lián)分析和機(jī)器學(xué)習(xí)。其實(shí)這一塊,也就意味著是不需要復(fù)雜模型模式,對數(shù)據(jù)特征抽取以后就可以進(jìn)行機(jī)器學(xué)習(xí),也不需要太多的專家來幫你設(shè)計(jì)規(guī)則,它是通過機(jī)器學(xué)習(xí)方法自動(dòng)幫你補(bǔ)充的。這是第一大功能,第二是網(wǎng)絡(luò)分析、圖分析的能力,F(xiàn)在特別是社交網(wǎng)絡(luò)分析、通訊網(wǎng)絡(luò)分析,又比如銀行資金轉(zhuǎn)賬鏈、擔(dān)保關(guān)系、企業(yè)投資關(guān)系,都要用圖的技術(shù)來實(shí)現(xiàn)。圖技術(shù)就廣泛地運(yùn)用到金融機(jī)構(gòu)的反欺詐當(dāng)中。在這樣一個(gè)數(shù)據(jù)倉庫中,圖的分析能力也是一個(gè)重要的關(guān)鍵能力。第三塊是需要文本的分析挖掘能力,也需要文本制作能力。第四個(gè)就是我們希望能摒棄過去設(shè)計(jì)復(fù)雜的邏輯模型,有幾萬張中間表,這種模型代價(jià)非常高,而且固定下來就很難變化。我們希望能自由地進(jìn)行探索,我們希望能有一個(gè)自主的工具對它進(jìn)行數(shù)據(jù)挖掘分析,這一塊也需要工具上的支撐。所以我們今天在實(shí)現(xiàn)這種數(shù)據(jù)倉庫架構(gòu)的時(shí)候,綜合使用了我們的絕大部分組件,我們使用了Inceptor分析型數(shù)據(jù)庫,對數(shù)據(jù)特征進(jìn)行清洗,甚至SQL能直接用圖的算法進(jìn)行分析。同時(shí),我們在Hyperbase上還能支持文檔搜索、文本搜索,也支持大規(guī)模圖的并發(fā)查詢,我們對外提供DataFrame的抽象,就是R語言的DataFrame的抽象,和R語言的原始DataFrame是一樣的,可以用R的算法去訪問這些DataFrame,同時(shí)我們也提供幾十種分布式機(jī)器學(xué)習(xí)算法,讓用戶來做大規(guī)模的機(jī)器學(xué)習(xí)。中間演變出幾種應(yīng)用模式,有風(fēng)險(xiǎn)分析、有精準(zhǔn)營銷的,也有反欺詐、文本分析。當(dāng)然我們也綜合了傳統(tǒng)的R的單機(jī)算法包,也提供傳統(tǒng)的R的體驗(yàn)。
這些技術(shù)組件構(gòu)建出一個(gè)完整的數(shù)據(jù)倉庫。如果把這些數(shù)據(jù)倉庫全部放在一張紙上的話,那我們就能看到整個(gè)架構(gòu)的底層其實(shí)是用TOS實(shí)現(xiàn)資源管理多租戶的能力,用容器來隔離,中間層是一個(gè)邏輯數(shù)據(jù)倉庫,把結(jié)構(gòu)化以及非結(jié)構(gòu)化數(shù)據(jù)全部放到這個(gè)邏輯層當(dāng)中,同時(shí)上層是借助TOS創(chuàng)建邏輯集群來構(gòu)建如自由探索的應(yīng)用,也可以用來構(gòu)建傳統(tǒng)數(shù)據(jù)倉庫、構(gòu)造數(shù)據(jù)集市、構(gòu)造實(shí)時(shí)數(shù)據(jù)倉庫。整體來說就是可以用全新的技術(shù)來打造一個(gè)新的企業(yè)數(shù)據(jù)平臺(tái),這也是為什么我們被Gartner選為數(shù)據(jù)倉庫中在遠(yuǎn)見象限中是最右邊的廠商,是因?yàn)槲覀兊募夹g(shù)在支持這四類新的數(shù)據(jù)倉庫中是最領(lǐng)先的而且是最完備的廠商。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/