Kyligence聯(lián)合創(chuàng)始人兼CEO韓卿受邀出席“2016易觀A10大數(shù)據(jù)應(yīng)用峰會(huì)”,并參與10月28日技術(shù)主論壇,發(fā)表了“基于Apache Kylin的實(shí)時(shí)OLAP實(shí)現(xiàn)”的主題演講。
Kyling是中國(guó)唯一的Apache頂級(jí)開源項(xiàng)目,在萬(wàn)億數(shù)據(jù)規(guī)模下,實(shí)現(xiàn)秒級(jí)/毫秒級(jí)的實(shí)時(shí)計(jì)算,韓卿表示,融合多種優(yōu)化技術(shù)實(shí)現(xiàn)超高性能分析是Kylin的核心理念,包括:并行計(jì)算,分布式計(jì)算,橫向擴(kuò)展計(jì)算能力;空間換時(shí)間,通過索引/物化視圖/cube,減少計(jì)算機(jī)IO吞吐量;列式存儲(chǔ),減少磁盤掃描范圍。
對(duì)于Kylin的近實(shí)時(shí)OLAP實(shí)現(xiàn)現(xiàn)有的挑戰(zhàn),韓卿認(rèn)為主要有四點(diǎn):第一,從數(shù)據(jù)查詢低延遲,到數(shù)據(jù)可達(dá)低延遲;第二,現(xiàn)有Cube 構(gòu)建基于批處理;第三,T+1模式可以滿足絕大部分需求,但越來越多的業(yè)務(wù)希望做到實(shí)時(shí)或者近實(shí)時(shí);第四,流數(shù)據(jù)源越來越多。
韓卿分享說,Kylin新的流式引擎設(shè)計(jì)目標(biāo)是:第一,重用既有Kylin的MR/Spark構(gòu)建引擎;第二,從幾千條到幾億條數(shù)據(jù),一次輕松構(gòu)建;第三,可隨意暫停或更改構(gòu)建頻率;第四,自動(dòng)管理集群,彈性計(jì)算資源。
以下是韓卿演講實(shí)錄:
韓卿:大家上午好!
我今天演講的主題是基于Apache Kylin的實(shí)時(shí)OLAP實(shí)現(xiàn)。
由于當(dāng)時(shí)的倉(cāng)庫(kù)智能技術(shù)已經(jīng)無(wú)法滿足,所以我們今天做到了萬(wàn)億規(guī)模上秒級(jí)甚至毫秒級(jí)的OLAP分析,后面我會(huì)介紹一下。
我是麒麟的聯(lián)合創(chuàng)始人,Apache Kylin簡(jiǎn)介,Kylin的近實(shí)時(shí)OLAP實(shí)現(xiàn),企業(yè)級(jí)的擴(kuò)展,分享一下eBay在這方面的應(yīng)用案例。
關(guān)于Apache Kylin很多人應(yīng)該已經(jīng)知道了,這是目前完全由中國(guó)工程師貢獻(xiàn)到Apache軟件基金會(huì)的一個(gè)項(xiàng)目,我們和Apache 的Hadoop是在一個(gè)級(jí)別,所有研發(fā)人員都在中國(guó)和上海,我們非常驕傲。而且非常驕傲的一點(diǎn)是今年我們拿到了開源貢獻(xiàn)獎(jiǎng),和Google TensorFlow一起獲得該獎(jiǎng)。更難得的是用戶的認(rèn)可,一個(gè)東西好不好不是我來吹,而是用戶用不用。在全球我們有超過100多個(gè)實(shí)際案例在使用,而且都是非常大的,是哪些呢?大家看一下,這只是一部分,很多公司都在使用,把Apache Kylin運(yùn)用在各個(gè)不同領(lǐng)域里面。
我稍微簡(jiǎn)單介紹幾個(gè)。用戶行為分析,這是最大的一塊,比如百度地圖、地圖導(dǎo)航,廣東移動(dòng),整個(gè)前端查詢都在秒級(jí),這是非常大的應(yīng)用。包括整體的數(shù)據(jù)集市、數(shù)據(jù)倉(cāng)庫(kù),還有唯品會(huì)大數(shù)據(jù)自助分析平臺(tái),還有陸金所交易管理系統(tǒng)等等。所以Apache Kylin已經(jīng)解決了很多需求。我們來看一下怎么做到的,很簡(jiǎn)單的原因,其實(shí)并沒有一種技術(shù)可以完美解決所有問題,這么多年來計(jì)算機(jī)發(fā)展就是這樣的。怎么辦呢?我們可以融合不同的技術(shù),我們可以把它組合在一起來看怎么優(yōu)勢(shì)發(fā)揮解決掉。所以Kylin做到了,并行計(jì)算,空間換時(shí)間,既然不能在非常快的時(shí)間內(nèi)一下就把數(shù)據(jù)分析聚合給你,我是不是可以預(yù)先算好呢。這里的假設(shè)條件非常簡(jiǎn)單,世界上99%,甚至更高的數(shù)據(jù),其實(shí)是不太會(huì)變的,你去年的交易數(shù)據(jù)和行為數(shù)據(jù)幾乎不變,只有最近實(shí)時(shí)數(shù)據(jù)會(huì)變,后面我會(huì)變。所以我們可以把數(shù)據(jù)做預(yù)先計(jì)算放起來,下次拿的時(shí)候就直接拿到結(jié)果,空間換時(shí)間,這是計(jì)算機(jī)領(lǐng)域里面最經(jīng)典的一種辦法。其實(shí)在OLAP里面這個(gè)技術(shù)就已經(jīng)用了,但是碰到什么問題呢?Down機(jī)。在eBay我們用的是另外一個(gè)工具,全球的基礎(chǔ)架構(gòu),當(dāng)時(shí)碰到的是用戶要查三年數(shù)據(jù),三年數(shù)據(jù)放進(jìn)去,爆掉。還有一個(gè)問題,他完全是down機(jī)的,整個(gè)機(jī)器壓力很大,或者出現(xiàn)網(wǎng)絡(luò)漏洞。這也是為什么用到并行計(jì)算,并行計(jì)算帶來的好處是我可以利用Hadoop集群加快計(jì)算。
舉一個(gè)例子,之前我們對(duì)比過,一個(gè)用一體機(jī)的技術(shù)構(gòu)建整個(gè)東西,八個(gè)小時(shí),用我們這樣的技術(shù)40分鐘,帶來的數(shù)據(jù)遠(yuǎn)遠(yuǎn)大于那個(gè)構(gòu)成,隨之而來的是數(shù)據(jù)容量非常大,今天我們已經(jīng)處理到萬(wàn)億規(guī)模的級(jí)別。另外,以往的存儲(chǔ)很多是單機(jī)存儲(chǔ),存在文件里,再加到內(nèi)存里,今天我們充分利用了列式存儲(chǔ),我們把它作為列式存儲(chǔ),這樣訪問的時(shí)候會(huì)更快,我們非常好的利用了所有的技術(shù)去構(gòu)建Apache Kylin平臺(tái),今天能夠有效解決在超大規(guī)模上做快速分析的挑戰(zhàn)。這個(gè)是空間換時(shí)間最最基本的原理,我不多做介紹了,做數(shù)據(jù)分析的人都知道。每個(gè)分析師每個(gè)老板問你的問題一定是基于維度分析,一定是結(jié)構(gòu)化的數(shù)據(jù)模型。
我怎么做預(yù)先計(jì)算,我們基于這樣的模型構(gòu)建整個(gè)立方體,做各種各樣的組合。當(dāng)然,你們可能會(huì)有一個(gè)問題,把所有的都算起來在數(shù)學(xué)上就是數(shù)字的N次方,會(huì)爆炸的。我們Kylin把這個(gè)問題解決掉了,有效降低了存儲(chǔ),有效避免了很多無(wú)效運(yùn)算,這是為我們帶來的好處。這是列式存儲(chǔ)。另外一點(diǎn),在查詢的時(shí)候,Kylin計(jì)算復(fù)雜度是O1,我已經(jīng)算好了,你給我同樣SQL語(yǔ)句的時(shí)候我是拿得到的,數(shù)據(jù)量越大,超過十億、百億規(guī)模的時(shí)候發(fā)現(xiàn)任何存儲(chǔ)都做不到,原因是給定規(guī)模的情況下,算法使得查詢性能與數(shù)據(jù)集大小無(wú)關(guān),讓你的業(yè)務(wù)人員能夠在最快的速度內(nèi)做他的決策支持,這是最重要的。
總結(jié)一下,這是Kylin的測(cè)試報(bào)告,來自網(wǎng)易杭州研究院。他們拿的數(shù)據(jù)是網(wǎng)易云音樂,你們聽網(wǎng)易云音樂用戶的數(shù)據(jù)都在這個(gè)集群上。左邊是他的查詢,中間的是top20,今天看看中國(guó)人都在聽哪些歌。并發(fā)上去的時(shí)候會(huì)忙的要死,但Kylin帶來的好處是我們的并發(fā)非常高,我再分享一個(gè)案例,京東云平臺(tái)已經(jīng)把Kylin當(dāng)作對(duì)外服務(wù)平臺(tái),每天的KPI非常高??匆幌潞?jiǎn)單的架構(gòu)圖,前面是原理,他是怎么做的,全部以界面形式幫你做,意味著你用Kylin上一個(gè)大數(shù)據(jù)項(xiàng)目的時(shí)候大大節(jié)省成本。最上面不管你用任何的BI工具,任何的第三方工具,都可以通過標(biāo)準(zhǔn)SQL來訪問,后臺(tái)做交互,你可以用你非常喜歡的應(yīng)用,都可以來連,我們能保證速度很快,你不需要再去寫代碼。
Kylin是一個(gè)OLAP,本質(zhì)原因是我需要做預(yù)計(jì)算,跑批量的,問題是數(shù)據(jù)是越來越實(shí)時(shí),老板不僅僅是掏出手機(jī)想看到報(bào)表,我想掏出手機(jī)看到過去5分鐘、10分鐘業(yè)務(wù)變化的情況,這又帶來另外一個(gè)挑戰(zhàn),數(shù)據(jù)怎么實(shí)時(shí)進(jìn)來。下面我介紹一下Kylin的近實(shí)時(shí)OLAP實(shí)現(xiàn),明年會(huì)推實(shí)時(shí)。這里很重要的原因是OLAP用戶,全實(shí)時(shí)技術(shù)很多時(shí)候你的消費(fèi)者應(yīng)用,比如做欺詐分析,很多時(shí)候前面數(shù)據(jù)進(jìn)來的時(shí)候,你要觸發(fā)下一個(gè)應(yīng)用。但OLAP不是,因?yàn)?span lang="EN-US">OLAP的用戶是人,是你的分析師,是你的老板,是你的客戶,沒有一個(gè)人一秒不停的盯著屏幕看東西,所以近實(shí)時(shí)能夠滿足99%以上的應(yīng)用。
數(shù)據(jù)查詢低延遲已經(jīng)解決的很好了,我們要解決到數(shù)據(jù)可達(dá)低延遲。現(xiàn)有Cube構(gòu)建于批處理,T+1模式可以滿足絕大部分需求。
我們的目標(biāo)是重用既有Kylin的MR/Spark構(gòu)建引擎。從幾千條到幾億條數(shù)據(jù),一次輕松構(gòu)建,不要太復(fù)雜。可隨意暫?;蚋臉?gòu)建頻率。自動(dòng)管理集群,彈性計(jì)算資源等等,我們?nèi)孔銎饋砹恕?span lang="EN-US">
為了這樣的變化,我們?nèi)ツ曜隽朔浅4蟮膽?yīng)用,我們把所有的架構(gòu)變成可插件式的架構(gòu)。稍微簡(jiǎn)單介紹一下Segment技術(shù),Segment按offset切分,不能有重合,Segment之間允許有時(shí)間值重合,確保了數(shù)據(jù)一致性和查詢準(zhǔn)確性。我們也會(huì)處理數(shù)據(jù)晚到,帶來的好處是這個(gè)數(shù)據(jù)進(jìn)來之后你在分鐘級(jí)就可以看到所有過程。這個(gè)是Twitter的實(shí)例,跑得非常好。隔5分鐘跑一個(gè)批量,今年數(shù)據(jù)大概在幾億規(guī)模的樣子,查詢?nèi)渴敲爰?jí)的,而且是布在國(guó)外亞馬遜上,速度非???,國(guó)外的Twitter還是很有意思的。
我們看一下eBay實(shí)例,SEO儀表盤,從搜索引擎過來轉(zhuǎn)化效率更高,你搜索一個(gè)相機(jī),點(diǎn)到eBay界面就下單了,每天在eBay的量超過幾百億,占eBay的10%以上,轉(zhuǎn)化率非常高,基本上搜索過來就要買的。很重要的是,我們不僅僅做到了,而且用分析師最喜歡的東西做到了,你可以用SQL語(yǔ)句去查,對(duì)分析師來說不需要改任何的東西。這是下一步,我們明年要做的很大一部分工作。
最后看一下我們企業(yè)級(jí)的擴(kuò)展,Apache Kylin是開源的,這家公司完全是Apache Kylin的貢獻(xiàn)者創(chuàng)造的公司,我們會(huì)通過KAP。這是存儲(chǔ),我們今天可以有信心告訴你們,HBase換了,全新的Spark+列式存儲(chǔ),我可以支撐更多的columns分析需求。舉一個(gè)例子,超寬表,我們現(xiàn)在能夠做到的是上千列的超寬表,應(yīng)用場(chǎng)景是什么?用戶畫像,還有超寬的交易數(shù)據(jù),還有IOT,我們最近在做IOT方面的POC,這是我們的測(cè)試。我的查詢計(jì)算是O1的。
非常感謝,謝謝!