中國(guó)通信建設(shè)集團(tuán)設(shè)計(jì)院有限公司第四分公司 李業(yè)田
引言:隨著大數(shù)據(jù)概念的興起,關(guān)于關(guān)系型數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、MPP數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)等基于不同范疇對(duì)數(shù)據(jù)庫(kù)的分類與叫法也層出不窮,那么這些各種類型的數(shù)據(jù)庫(kù)是什么區(qū)別呢,它們之間的關(guān)系又是怎么樣的,本文將帶你一起理解各種數(shù)據(jù)庫(kù)的定義與異同。
(1)關(guān)系型數(shù)據(jù)庫(kù)
即處理結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫(kù),標(biāo)準(zhǔn)數(shù)據(jù)查詢語(yǔ)言SQL就是一種基于關(guān)系數(shù)據(jù)庫(kù)的語(yǔ)言,這種語(yǔ)言執(zhí)行關(guān)系數(shù)據(jù)庫(kù)中數(shù)據(jù)的檢索和操作。簡(jiǎn)單的可以理解為二維數(shù)據(jù)庫(kù),表的格式就如Excel,有行有列。
(2)非關(guān)系型數(shù)據(jù)庫(kù)
即處理非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫(kù),例如HTML、XML、圖片、音頻、視頻等不能用傳統(tǒng)的行列格式的二維表來(lái)表示的非結(jié)構(gòu)化數(shù)據(jù),又叫NoSQL數(shù)據(jù)庫(kù),NoSQL數(shù)據(jù)庫(kù)不支持Join處理,各個(gè)數(shù)據(jù)都是獨(dú)立設(shè)計(jì)的,把數(shù)據(jù)分散在多個(gè)服務(wù)器上,減少了每個(gè)服務(wù)器上的數(shù)據(jù)量,即使要處理大量數(shù)據(jù)的寫入,也變得更加容易,數(shù)據(jù)的讀入操作也同樣更加容易。
(1)集中式數(shù)據(jù)庫(kù)
集中式數(shù)據(jù)庫(kù)一般是指數(shù)據(jù)進(jìn)行集中存儲(chǔ)的數(shù)據(jù)庫(kù),集中式數(shù)據(jù)存儲(chǔ)的主要特點(diǎn)是能把所有數(shù)據(jù)保存在一個(gè)地方,各地遠(yuǎn)程終端通過(guò)網(wǎng)絡(luò)訪問(wèn)中央服務(wù)器,例如銀行的自動(dòng)提款機(jī)(ATM)。
(2)分布式數(shù)據(jù)庫(kù)
狹義上來(lái)講,分布式數(shù)據(jù)庫(kù)是將原來(lái)集中式數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散存儲(chǔ)到多個(gè)通過(guò)網(wǎng)絡(luò)連接的存儲(chǔ)節(jié)點(diǎn)上,以獲取更大的存儲(chǔ)容量和更高的并發(fā)訪問(wèn)量。廣義上來(lái)說(shuō),以下三種定義都可以稱之為分布式數(shù)據(jù)庫(kù):
1)物理數(shù)據(jù)存儲(chǔ)位置分散到各地的數(shù)據(jù)庫(kù);
2)實(shí)現(xiàn)了分布式計(jì)算的數(shù)據(jù)庫(kù);
3)基于分布式文件系統(tǒng)(HDFS)的數(shù)據(jù)庫(kù)。
在大數(shù)據(jù)的概念中,一般把基于分布式文件系統(tǒng)(HDFS)的數(shù)據(jù)庫(kù)定義為分布式數(shù)據(jù)庫(kù)。
(1)MPP數(shù)據(jù)庫(kù)
MPP即Massively Parallel Processing大規(guī)模并行處理,MPP數(shù)據(jù)庫(kù)仍然屬于關(guān)系型數(shù)據(jù)庫(kù),是一種新型的數(shù)據(jù)庫(kù)集群,重點(diǎn)面向行業(yè)大數(shù)據(jù),采用Shared Nothing(無(wú)共享)架構(gòu),每個(gè)Node節(jié)點(diǎn)的地位是完全一樣的,通過(guò)列存儲(chǔ)、粗粒度索引等多項(xiàng)大數(shù)據(jù)處理技術(shù),再結(jié)合MPP架構(gòu)高效的分布式計(jì)算模式,完成對(duì)分析類應(yīng)用的支撐,運(yùn)行環(huán)境多為低成本PC Server,具有高性能和高擴(kuò)展性的特點(diǎn),在企業(yè)分析類應(yīng)用領(lǐng)域獲得極其廣泛的應(yīng)用,這類MPP產(chǎn)品可以有效支撐PB級(jí)別的結(jié)構(gòu)化數(shù)據(jù)分析,這是傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)無(wú)法勝任的,無(wú)共享架構(gòu)如圖1所示:
圖1
(2)Master/Slave數(shù)據(jù)庫(kù)
Master/Slave數(shù)據(jù)庫(kù)即主從架構(gòu)的數(shù)據(jù)庫(kù),是基于客戶機(jī)/服務(wù)器模式的架構(gòu),也就是對(duì)于Master的機(jī)器,可以進(jìn)行寫入操作,而對(duì)于每個(gè)Node節(jié)點(diǎn)來(lái)說(shuō),只充當(dāng)Slave功能進(jìn)行數(shù)據(jù)讀取操作,Hadoop平臺(tái)中的Hbase數(shù)據(jù)庫(kù)就是采用了Master/Slave架構(gòu)來(lái)搭建的集群,Master/Slave架構(gòu)如圖2所示:
圖2
(1)列式數(shù)據(jù)庫(kù)
列式數(shù)據(jù)庫(kù)是以列相關(guān)存儲(chǔ)架構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),主要適合于批量數(shù)據(jù)處理和即時(shí)查詢。面向列的數(shù)據(jù)庫(kù)具有高擴(kuò)展性,即使數(shù)據(jù)增加也不會(huì)降低相應(yīng)的處理速度(特別是寫入速度),所以它主要應(yīng)用于需要處理大量數(shù)據(jù)的情況。
(2)行式數(shù)據(jù)庫(kù)
普通的關(guān)系型數(shù)據(jù)庫(kù)都是以行為單位來(lái)存儲(chǔ)數(shù)據(jù)的,擅長(zhǎng)以行為單位的讀入處理,比如特定條件數(shù)據(jù)的獲取。但是也存在一些關(guān)系型數(shù)據(jù)庫(kù)是列式存儲(chǔ)架構(gòu)。
(1) Oracle、SQL server、DB2、Mysql、Sybase:關(guān)系型數(shù)據(jù)庫(kù)、集中式數(shù)據(jù)庫(kù)、行式數(shù)據(jù)庫(kù)。
(2)Hbase:非關(guān)系型數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、Master/Slave數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)。
(3)EMC Greenplum、HP Vertica、Google Dremel:關(guān)系型數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、MPP數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)。
(4)基于Mysql的Infinidb、基于Sybase的Sybase IQ:關(guān)系型數(shù)據(jù)庫(kù)、集中式數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)。
(5)Mongodb:非關(guān)系型數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、列式數(shù)據(jù)庫(kù)。