我重點(diǎn)介紹的,這里面有一個(gè)產(chǎn)品,原來(lái)有很多歷史的數(shù)據(jù)放在Oracle里面,又想實(shí)時(shí)同步到大數(shù)據(jù)平臺(tái)來(lái),我們提供了一個(gè)平臺(tái),就是原有的系統(tǒng)不會(huì)破壞,原油的數(shù)據(jù)還可以用,比如說(shuō)ERP系統(tǒng),數(shù)據(jù)在產(chǎn)生的過(guò)程當(dāng)中,實(shí)時(shí)的可以把這些數(shù)據(jù)同步到大數(shù)據(jù)平臺(tái)當(dāng)中來(lái),原有的生產(chǎn)系統(tǒng)不會(huì)有任何的影響。還有一個(gè)好處就是大數(shù)據(jù)龐大的計(jì)算能力,原來(lái)在Oracle跑不動(dòng)的數(shù)據(jù),完不成的任務(wù)可以放到這個(gè)里面。
我們覺(jué)得做大數(shù)據(jù)其實(shí)第一點(diǎn)一定要解決安全的問(wèn)題,因?yàn)榇髷?shù)據(jù)不像別的數(shù)據(jù),它最大的一個(gè)特點(diǎn)是分散在各個(gè)信息孤島,各個(gè)部門(mén)的數(shù)據(jù)聚集在一起。大家知道過(guò)去的數(shù)據(jù)遺漏的時(shí)候,丟掉一個(gè)部門(mén),或者是某一個(gè)領(lǐng)域的數(shù)據(jù)。但是把一個(gè)數(shù)據(jù)集成在一起,一旦丟失,所有的數(shù)據(jù)都可能丟失。尤其是公安、軍方對(duì)數(shù)據(jù)的安全性是第一位的,如果安全性不過(guò)關(guān),肯定不會(huì)用,我們這邊毫不謙虛的說(shuō),我們達(dá)到了軍工級(jí)的要求。從這個(gè)角度來(lái)看,這里有一個(gè)完整的安全架構(gòu)體系,有身份認(rèn)證,包括加密解密,數(shù)據(jù)訪問(wèn)和審計(jì)我們都會(huì)有。這個(gè)體系有很多的特點(diǎn),因?yàn)闀r(shí)間的關(guān)系我只介紹三個(gè)特點(diǎn)。
我們大家知道,大家都應(yīng)用大數(shù)據(jù)平臺(tái),基本上都來(lái)源于開(kāi)源社區(qū),很多同志都知道,所有的權(quán)限里面,如果是運(yùn)維的話,可以把平臺(tái)上好的應(yīng)用可以看到,這其實(shí)在很多條件下是非常不好的行為。舉一個(gè)簡(jiǎn)單的例子,我是一個(gè)公安局局長(zhǎng),公安局的所有數(shù)據(jù)放在大數(shù)據(jù)平臺(tái)上,運(yùn)維人員可以知道這個(gè)局長(zhǎng)、部長(zhǎng)所有的數(shù)據(jù),其實(shí)這是非常不好的。我們第一個(gè)做的事情就是,我們把這個(gè)權(quán)限分離了,你這個(gè)運(yùn)維的人員,你也只能運(yùn)維這個(gè)機(jī)器,不能看到上層應(yīng)用的數(shù)據(jù)。我們因?yàn)檫@個(gè)數(shù)據(jù)分開(kāi)了,即使開(kāi)發(fā)人員,他也有自己的一個(gè)權(quán)限管理,這樣保證開(kāi)發(fā)人員,即使我們的人員到現(xiàn)場(chǎng)實(shí)施的時(shí)候,還看不到有些數(shù)據(jù),就保證了數(shù)據(jù)的安全性。
我們做了一款引擎,有一個(gè)比較大的痛點(diǎn),每次訪問(wèn)一條數(shù)據(jù)都是按列訪問(wèn)的,增加和刪除修改都是對(duì)列進(jìn)行訪問(wèn)。有很多客戶訪問(wèn)的時(shí)候說(shuō),我不光是訪問(wèn)這一列,而且限制從第1行到第100行,這個(gè)時(shí)候就要求能夠訪問(wèn),我們申請(qǐng)了三個(gè)專利,我們是全球第一家做出來(lái)的,就是行和列同時(shí)訪問(wèn)。就是你如果在訪問(wèn)一個(gè)數(shù)據(jù)的時(shí)候,自動(dòng)的是一列,我們把這個(gè)引擎改掉了,在開(kāi)發(fā)人員,不知道背后的權(quán)限是什么樣。比如說(shuō)一個(gè)機(jī)構(gòu)很大,幾萬(wàn)人,可以自動(dòng)的加入權(quán)限。不管是銀行普通的辦事人員還是行長(zhǎng),還是總行的人,每一個(gè)數(shù)據(jù)都可以控制到行和列。
我們做了一個(gè)安全的審計(jì),對(duì)于大數(shù)據(jù)這一塊,對(duì)于任何一個(gè)平臺(tái)上面跑的數(shù)據(jù),不光是服務(wù),有很大的開(kāi)源社區(qū)做的審計(jì),但是對(duì)于我們這個(gè)數(shù)據(jù),任何一個(gè)數(shù)據(jù)只要做增加、刪除、修改,甚至是訪問(wèn),我們都可以記住。一個(gè)數(shù)據(jù)一旦出現(xiàn)問(wèn)題的時(shí)候,我們可以做非常方便的審計(jì)。一旦事件發(fā)生了,我們就可以很方便的做審計(jì)。這里面可以看到,我們?cè)跀?shù)據(jù)審計(jì),包括文件系統(tǒng),包括所有的我們安裝的運(yùn)維,就是啟動(dòng)一個(gè)服務(wù),停掉一個(gè)服務(wù),增加一條信息,刪除一條信息,上面跑的硬件、軟件、數(shù)據(jù)、服務(wù),這四個(gè)方面我們?nèi)慷甲隽藢徲?jì)。就是你只要做了任何一個(gè)操作,一旦做過(guò),一定會(huì)留下痕跡,很多要求苛刻的客戶都非常愿意購(gòu)買(mǎi)。
高可用性,大家知道,這里面有運(yùn)營(yíng)商的同仁。軟件現(xiàn)在分為兩類,一類是運(yùn)營(yíng)商級(jí)別的軟件,一類是非運(yùn)營(yíng)商級(jí)別。運(yùn)營(yíng)商對(duì)于高可用性是非??量痰?,因?yàn)樗竽?×24小時(shí),我任何時(shí)候訪問(wèn)這個(gè)系統(tǒng)不會(huì)有任何問(wèn)題。比如說(shuō)啟動(dòng)一個(gè)節(jié)點(diǎn),100個(gè)集群一個(gè)節(jié)點(diǎn),其中有一個(gè)節(jié)點(diǎn)因?yàn)橥k姳粩嗟袅?,我過(guò)一段時(shí)間把那個(gè)節(jié)點(diǎn)的電源再開(kāi)了,重新啟動(dòng),上面跑的服務(wù)數(shù)據(jù)都可以保存一致,這是要求非常苛刻的。大家知道,在開(kāi)源社區(qū)里面有比較常見(jiàn)的一些服務(wù),比如說(shuō)Hbase、Hive等等,但是對(duì)于右邊的這些基本上都沒(méi)有,比如Impala、Kerberos、LDAP、Flume等等,這個(gè)里面就面臨一個(gè)很常見(jiàn)的場(chǎng)景,就是如果發(fā)現(xiàn)這個(gè)集群里面有100臺(tái)機(jī)器,其中2個(gè)停掉了,不能因?yàn)?個(gè)節(jié)點(diǎn)影響其他的服務(wù)。要做到的就是把這個(gè)機(jī)器下面的網(wǎng)線拔掉,過(guò)一會(huì)兒再插上去,能保證插上去的數(shù)據(jù)能夠恢復(fù)。還有一個(gè)就是對(duì)于硬盤(pán),如果這個(gè)硬盤(pán)壞掉了,操作系統(tǒng)一定會(huì)收到這個(gè)信號(hào)。但是運(yùn)營(yíng)商測(cè)我們的時(shí)候是怎么測(cè)的?他就說(shuō)我這個(gè)硬盤(pán)在正常運(yùn)轉(zhuǎn)的時(shí)候把硬盤(pán)拔掉,這個(gè)時(shí)候操作系統(tǒng)是沒(méi)有信號(hào)的,過(guò)一會(huì)兒再插上去,導(dǎo)致數(shù)據(jù)還是一致,這些非常嚴(yán)苛的設(shè)置都是高可用的要求。我們除了常見(jiàn)的Hive、Hbase這種,我們自己做的這種服務(wù),我們考慮所有的服務(wù)都可以用,保證我們的服務(wù)是高可用的。