結(jié)構(gòu)化數(shù)據(jù)計(jì)算的新模式
數(shù)據(jù)庫是當(dāng)前數(shù)據(jù)分析中最重要的數(shù)據(jù)存在形式,但受其封閉性和關(guān)系代數(shù)四十年沒有關(guān)鍵性發(fā)展等影響,現(xiàn)今很難滿足多數(shù)據(jù)計(jì)算量的計(jì)算需求。演講嘉賓蔣步星將針對(duì)結(jié)構(gòu)化數(shù)據(jù)常見的集合和有序運(yùn)算以及大數(shù)據(jù)計(jì)算等實(shí)際業(yè)務(wù)需求,分析探討關(guān)系代數(shù)在描述和實(shí)施計(jì)算時(shí)面臨的困難,研究結(jié)構(gòu)化數(shù)據(jù)的計(jì)算特點(diǎn)后提出更有適應(yīng)性的計(jì)算模型,并進(jìn)一步形成更有開放性的計(jì)算能力提交方案,***再簡單分享對(duì)新一代數(shù)據(jù)倉庫的展望。
本講座選自潤乾軟件創(chuàng)始人蔣步星于2017年3月28日在清華大數(shù)據(jù)“技術(shù)·前沿”系列講座上所做的題為《顛覆傳統(tǒng),告訴你一個(gè)不同于數(shù)據(jù)庫的計(jì)算體系》的演講。
蔣步星演講內(nèi)容重點(diǎn)分為四個(gè)部分。***個(gè)部分主要講工程方面的問題,就是關(guān)系數(shù)據(jù)庫在工程方面不方便的地方,我們應(yīng)該怎么解決。第二個(gè)部分,關(guān)系代數(shù)理論體系的很多問題,我們用什么辦法改進(jìn)。第三部分,大數(shù)據(jù)的計(jì)算技術(shù)。第四部分,展望在這些問題基礎(chǔ)上我們?cè)O(shè)計(jì)一個(gè)什么樣的新的數(shù)據(jù)庫體系。
蔣步星:提及數(shù)據(jù)庫,它不僅僅是做存儲(chǔ),更重要的是計(jì)算,特別是數(shù)據(jù)倉庫更涉及計(jì)算。數(shù)據(jù)庫需要存儲(chǔ)的數(shù)據(jù)是比較規(guī)整的,必須經(jīng)過設(shè)計(jì)使其有一定的約束性,以確保數(shù)據(jù)的合法性,所以它有一定的封閉性。但數(shù)據(jù)計(jì)算無處不在,此時(shí)不應(yīng)把所有的計(jì)算都交給數(shù)據(jù)庫來做,而是應(yīng)該找一個(gè)更具開放性且輕量級(jí)的計(jì)算引擎來實(shí)施無處不在的計(jì)算。
針對(duì)實(shí)際中數(shù)據(jù)多樣性和數(shù)據(jù)源的實(shí)時(shí)性,庫外計(jì)算可以真正實(shí)踐一個(gè)ETL過程,ETL是先E再T再L,先清洗再轉(zhuǎn)換再加載;可以減少存儲(chǔ)過程;減少冗余的中間表;可以優(yōu)化執(zhí)行路徑。如果說有獨(dú)立于數(shù)據(jù)庫之外的計(jì)算能力的話,不穩(wěn)定的數(shù)據(jù)就可以在數(shù)據(jù)庫外做,可以落地到文件系統(tǒng)。但中間數(shù)據(jù)仍是需要的,因?yàn)閿?shù)據(jù)運(yùn)算復(fù)雜是無法避免的。
數(shù)據(jù)中心是典型的需要數(shù)據(jù)庫外計(jì)算能力的場景。其對(duì)外的接口不能隨便寫入語句執(zhí)行,需做一些訪問的控制、數(shù)據(jù)的脫敏,所以它對(duì)外是一種服務(wù)式的結(jié)構(gòu),其中包括多個(gè)數(shù)據(jù)源可編程的,可集成的混合計(jì)算。它是輕量級(jí)的可集成的而不是一個(gè)很獨(dú)立的東西,數(shù)據(jù)庫相對(duì)來說是一個(gè)很獨(dú)立的進(jìn)程,集成起來并不是特別方便,這樣的一種方式就可以為數(shù)據(jù)中心服務(wù)。
關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)就是關(guān)系代數(shù),它有一種形式化的語言就是SQL,考慮到應(yīng)用中的實(shí)際問題,我們?cè)O(shè)計(jì)了另外一種代數(shù)體系-離散數(shù)據(jù)集。
并不是所有運(yùn)算都是集合性的,離散性體現(xiàn)在集合成員可以游離在集合外存在;獨(dú)立運(yùn)算或及其它游離成員再組合新集合運(yùn)算。
下面是關(guān)于離散性數(shù)據(jù)應(yīng)用:
然后是有序的計(jì)算,這個(gè)也是SQL的弱勢之處。有序的計(jì)算天然是集合化和離散性的結(jié)合物,有序的含義并不是一個(gè)元素的順序,它一定要在一個(gè)集合里面才有這個(gè)意義,單個(gè)就沒有次序的意義了。主要是關(guān)于跨行引用、有序分組、位置利用。
案例分析:一支股票連續(xù)上漲多少天。如果是用SQL的分組的思路來做的,它還在上漲我們就跟前面的數(shù)據(jù)分成一個(gè)組,如果它下跌了就起一個(gè)新組,然后再看最長的那個(gè)分組就算出來了。若是JAVA程序員可能就是先清零,漲了加一,降了就清零,都可以做出來。但通過關(guān)系數(shù)據(jù)庫,想出的解決辦法很繞,所以這是我的一個(gè)招聘考題,尤其是做公司的可以拿回去試試,通過率能達(dá)到30% 左右。
其實(shí)代數(shù)體系設(shè)計(jì)得好,或者辦法好,就是可以少算。接下來涉及高技能計(jì)算技術(shù),主要是講遍歷、連接、并行,并行其實(shí)主要是解決分段或者是集群問題。
連接其實(shí)是關(guān)系代數(shù)里面最頭疼的運(yùn)算,實(shí)際上如果我們換一種思維看,剛才講離散性的時(shí)候也碰到過,把外鍵指向的記錄就認(rèn)為是那個(gè)記錄,而不是拿個(gè)外鍵號(hào)對(duì)應(yīng)相等,就把它變成指向那條記錄的對(duì)象。現(xiàn)在關(guān)系數(shù)據(jù)庫最快的解決辦法,是哈希對(duì)應(yīng),計(jì)算哈希值,然后要比對(duì),哈希值如果有重的就要一個(gè)一個(gè)比對(duì),如果重的多了還要二次哈希,會(huì)造成許多繁瑣操作。
不透明的冗余方案:結(jié)構(gòu)化數(shù)據(jù)計(jì)算經(jīng)常是數(shù)據(jù)密集型任務(wù); 數(shù)據(jù)分布后讀取壓力將由多個(gè)節(jié)點(diǎn)分擔(dān);每份數(shù)據(jù)有多個(gè)備份,某節(jié)點(diǎn)失效后還能由別的節(jié)點(diǎn)計(jì)算。
另外,備胎式內(nèi)存分布就不能和外存一樣使用冗余式。
數(shù)據(jù)庫(OLTP)與數(shù)據(jù)倉庫(OLAP)是不同的。OLTP不算特別明顯的大數(shù)據(jù)任務(wù),但并發(fā)多,它特別強(qiáng)調(diào)事務(wù)一致性,有數(shù)據(jù)結(jié)構(gòu)的多樣性。而OLAP業(yè)務(wù)涉及的數(shù)據(jù)復(fù)雜度也比較高,讀數(shù)據(jù)沒有什么一致性。關(guān)系數(shù)據(jù)庫其實(shí)是把這兩種需求合到一起了,實(shí)際上并不合適。
用數(shù)據(jù)倉庫,解決實(shí)際計(jì)算問題。不像計(jì)算引擎是個(gè)開放的體系,數(shù)據(jù)倉庫雖不能假定數(shù)據(jù)類型,但在建新的數(shù)據(jù)倉庫時(shí),就可以要求數(shù)據(jù)組織是另外的樣子。把眾多數(shù)據(jù)組織到一起,存儲(chǔ)量變小常常意味著性能的提升;把主鍵都序號(hào)化,建成多層,相當(dāng)于外層的指針化的主鍵,提高整體效率。
兩個(gè)小時(shí)的精彩演講落下帷幕,大家針對(duì)技術(shù)向蔣總提出諸多問題。涉及到OLTP業(yè)務(wù),OLAP業(yè)務(wù)的不一樣在于任何一個(gè)運(yùn)算的時(shí)候都可能涉及一堆服務(wù)器,是簡單的分布式。涉及工程上的問題,數(shù)據(jù)計(jì)算、數(shù)據(jù)庫的同樣會(huì)有進(jìn)一步的發(fā)展等等。
嘉賓簡介
蔣步星,潤乾軟件創(chuàng)始人、***科學(xué)家,清華大學(xué)計(jì)算機(jī)碩士,著有《非線性報(bào)表模型原理》等。1989年,中國***國際奧林匹克數(shù)學(xué)競賽團(tuán)體冠軍成員,個(gè)人金牌。2000年,創(chuàng)立潤乾公司。2004年,***在潤乾報(bào)表中提出非線性報(bào)表模型,***解決了中國式復(fù)雜報(bào)表制表難題,目前該模型已成為報(bào)表行業(yè)的標(biāo)準(zhǔn)。2014年,經(jīng)過7年開發(fā),潤乾軟件發(fā)布不依賴關(guān)系代數(shù)模型的計(jì)算引擎——集算器,有效地提高了復(fù)雜結(jié)構(gòu)化大數(shù)據(jù)計(jì)算的開發(fā)和運(yùn)算效率。2015年,潤乾軟件被福布斯中文網(wǎng)站評(píng)為“2015福布斯中國非上市潛力企業(yè)100強(qiáng)”2016年,榮獲中國電子信息產(chǎn)業(yè)發(fā)展研究院評(píng)選的“2016年中國軟件和信息服務(wù)業(yè)十大領(lǐng)軍人物”。2017年, 自主創(chuàng)新研發(fā)新一代的數(shù)據(jù)倉庫、云數(shù)據(jù)庫等產(chǎn)品即將面世。