1.1. 系統(tǒng)背景

最初的時(shí)候,我們只是想設(shè)計(jì)一個(gè)Web版本的HBase數(shù)據(jù)瀏覽器,類似于PL/SQL那樣便捷,后來又添加了HDFS分布式文件系統(tǒng)瀏覽器,再后來又添加了Hive數(shù)據(jù)倉庫瀏覽器功能。這個(gè)時(shí)候,hadoop集群由一個(gè)擴(kuò)張到三個(gè),大數(shù)據(jù)業(yè)務(wù)系統(tǒng)所涉及到的NoSQL數(shù)據(jù)庫也越來越多,譬如Neo4j、MongoDB、Redis等,所涉及的批處理和流計(jì)算平臺也從最初的只有MapReduce,又相繼增加了Spark和Storm等。

原本,只是抱著學(xué)習(xí)和技術(shù)探索的態(tài)度進(jìn)入hadoop生態(tài)技術(shù)圈的,也并沒有指望在正式的生產(chǎn)環(huán)境中進(jìn)行深度應(yīng)用,但是現(xiàn)在,讓我們措手不及的是要在很短的時(shí)期內(nèi)進(jìn)行數(shù)據(jù)庫技術(shù)的轉(zhuǎn)型,面對即將全面鋪開的業(yè)務(wù)應(yīng)用,以及由此導(dǎo)致的在多種數(shù)據(jù)庫和計(jì)算平臺的頻繁切換,讓我們逐漸生出些許煩躁和厭惡。

于是,決定做一些整合性的開發(fā),“工欲善其事,必先利其器”,希望在戰(zhàn)斗即將打響前,自己有一套稍稍完整的裝備,不至于措手不及和手忙腳亂。這就是“大數(shù)據(jù)之多數(shù)據(jù)源綜合管理系統(tǒng)”設(shè)計(jì)的初衷?!熬C合管理系統(tǒng)”,聽起來這是一個(gè)多么龐大的系統(tǒng),其實(shí)呢,這只是對一堆難以梳理的技術(shù)的一種懶惰的叫法,我們相信,很多人都從事開發(fā)過類似于“綜合管理系統(tǒng)”這樣的項(xiàng)目,它就是一種混混沌沌的狀態(tài),在叫法上,你我大可不必斤斤計(jì)較。

系統(tǒng)的設(shè)計(jì)基本上分為五個(gè)階段。

第一,數(shù)據(jù)源管理。理想的構(gòu)建目標(biāo)中,系統(tǒng)將囊括業(yè)務(wù)系統(tǒng)所涉及到的所有的數(shù)據(jù)庫,包括關(guān)系數(shù)據(jù)庫(Oracle、MySql等)和非關(guān)系數(shù)據(jù)庫(HBase、HDFS、Hive、Neo4j、MongoDB、Redis等等),以及其他不斷涌現(xiàn)的新的數(shù)據(jù)存儲技術(shù)。希望能夠在這樣一個(gè)系統(tǒng)中,實(shí)現(xiàn)對多種數(shù)據(jù)庫的統(tǒng)一管理,包括數(shù)據(jù)庫連接配置、數(shù)據(jù)庫對象管理、數(shù)據(jù)瀏覽器、數(shù)據(jù)維護(hù)、訪問授權(quán)管理等,免去在多種獨(dú)立工具之間的頻繁切換。

第二,數(shù)據(jù)通道管理。數(shù)據(jù)該如何寫入數(shù)據(jù)庫呢?外部系統(tǒng)該如何訪問數(shù)據(jù)呢?在讀寫數(shù)據(jù)時(shí)該如何平衡速度、安全和傳輸量三者呢?如何解決跨語言應(yīng)用的問題呢?這就是數(shù)據(jù)通道需要解決的問題。其實(shí),剛開始的時(shí)候,設(shè)計(jì)數(shù)據(jù)通道的想法并非是基于以上目標(biāo),而只是不愿意在訪

網(wǎng)友評論