< 返回新聞公共列表

云數(shù)據(jù)庫(kù)選型必讀:如何梳理需求?

發(fā)布時(shí)間:2021-08-25 15:03:40

目前數(shù)據(jù)庫(kù)可以在任何地方運(yùn)行,從智能手機(jī)、數(shù)據(jù)中心的服務(wù)器,到地域分散的云環(huán)境。除了關(guān)系表格數(shù)據(jù)庫(kù)以外,還有面向時(shí)間序列、圖、空間、文本、聯(lián)機(jī)分析處理(OLAP)、XML和JSON等數(shù)據(jù)的數(shù)據(jù)庫(kù)。一些數(shù)據(jù)庫(kù)專門處理某一種數(shù)據(jù),一些數(shù)據(jù)庫(kù)允許用戶選擇數(shù)據(jù)類型,但每次只處理一種;一些數(shù)據(jù)庫(kù)允許多種類型的數(shù)據(jù)共存于同一數(shù)據(jù)庫(kù)實(shí)例中,一些數(shù)據(jù)庫(kù)擅長(zhǎng)聯(lián)機(jī)事務(wù)處理(OLTP),一些數(shù)據(jù)庫(kù)主攻聯(lián)機(jī)分析處理(OLAP),還有一些數(shù)據(jù)庫(kù)適合處理事務(wù)和分析混合工作負(fù)載。


我們將討論的一些數(shù)據(jù)庫(kù)可以在本地運(yùn)行,一些數(shù)據(jù)庫(kù)專門支持云環(huán)境,但與本地?cái)?shù)據(jù)庫(kù)兼容;一些數(shù)據(jù)庫(kù)是"云原生",這意味著它們只能從云提供商處獲得。下面如何讓我們來(lái)看看云數(shù)據(jù)庫(kù)選型如何梳理需求?


一、確定數(shù)據(jù)庫(kù)需求

數(shù)據(jù)庫(kù)本身幾乎從來(lái)不是獨(dú)立存在的。相反,數(shù)據(jù)庫(kù)通常是應(yīng)用系統(tǒng)的后端或存儲(chǔ)層。

如果該應(yīng)用是遍布全球的多人玩的視頻游戲,那么讀取延遲和寫入延遲都很重要,數(shù)據(jù)庫(kù)可能需要分布式,不過(guò)不一定是關(guān)系型的,也不一定要有強(qiáng)一致性;鍵值數(shù)據(jù)庫(kù)可能很理想。如果該應(yīng)用記錄和監(jiān)測(cè)來(lái)自閥門的傳感器輸出,數(shù)據(jù)庫(kù)應(yīng)該能夠快速寫入大量的時(shí)間序列數(shù)據(jù)。


二、你會(huì)生成多少數(shù)據(jù)?生成數(shù)據(jù)有多快?

幾乎任何云數(shù)據(jù)庫(kù)都可以處理少量的數(shù)據(jù)(數(shù)GB或更少),一些云數(shù)據(jù)庫(kù)可以在內(nèi)存中處理這些數(shù)據(jù),許多云數(shù)據(jù)庫(kù)可以處理數(shù)TB(數(shù)千GB)的數(shù)據(jù),只有少數(shù)可以支持?jǐn)?shù)PB(數(shù)百萬(wàn)GB)的數(shù)據(jù)。請(qǐng)注意,大多數(shù)云數(shù)據(jù)庫(kù)按月收取存儲(chǔ)費(fèi),SSD存儲(chǔ)方面的費(fèi)用高于磁盤存儲(chǔ)。

數(shù)據(jù)到達(dá)的速度會(huì)給其他指標(biāo)帶來(lái)壓力,比如數(shù)據(jù)庫(kù)寫入速度和網(wǎng)絡(luò)容量。如果大量數(shù)據(jù)突然到達(dá),數(shù)據(jù)庫(kù)或前端程序在將數(shù)據(jù)寫入到永久存儲(chǔ)設(shè)備時(shí)可能需要將數(shù)據(jù)緩存在內(nèi)存中,以免數(shù)據(jù)丟失。人們常提到的Redis(一種內(nèi)存中數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),用作數(shù)據(jù)庫(kù)、緩存和消息代理)能夠?yàn)槠渌麛?shù)據(jù)庫(kù)緩存大量突發(fā)數(shù)據(jù)。


三、你預(yù)先知道數(shù)據(jù)庫(kù)模式嗎?

如果你的數(shù)據(jù)庫(kù)模式(數(shù)據(jù)的結(jié)構(gòu))是預(yù)先確定的,不太可能隨時(shí)間的推移而發(fā)生顯著變化,如果你希望大多數(shù)字段面對(duì)不同的記錄有一致的類型,那么SQL數(shù)據(jù)庫(kù)是不錯(cuò)的選擇。否則,NoSQL數(shù)據(jù)庫(kù)可能更適合你的應(yīng)用。

不過(guò)也有例外。比如說(shuō),Rockset這種操作型數(shù)據(jù)庫(kù)允許SQL查詢,無(wú)需要求它所導(dǎo)入的數(shù)據(jù)有固定模式或一致類型。


四、哪種形狀適合你的數(shù)據(jù)?

關(guān)系SQL數(shù)據(jù)庫(kù)將強(qiáng)類型數(shù)據(jù)存儲(chǔ)在擁有行和列的矩形表中,比如Microsoft SQL Server、PostgreSQL和MySQL。它們依賴表與表之間的定義關(guān)系,使用索引加快選定的查詢,并使用JOINS一次查詢多個(gè)表。許多現(xiàn)代關(guān)系數(shù)據(jù)庫(kù)(包括Oracle Database)也支持其他形狀。

文檔數(shù)據(jù)庫(kù)通常存儲(chǔ)可能包含數(shù)組和嵌套文檔的弱類型JSON(文本或二進(jìn)制),比如MongoDB和Couchbase。圖數(shù)據(jù)庫(kù)存儲(chǔ)具有屬性的頂點(diǎn)和邊,比如Neo4j,或者存儲(chǔ)RDF三元組,比如AllegroGraph。無(wú)論是哪種實(shí)現(xiàn)方法,圖數(shù)據(jù)庫(kù)都強(qiáng)調(diào)實(shí)體之間的聯(lián)系。其他類別的NoSQL數(shù)據(jù)庫(kù)包括鍵值數(shù)據(jù)庫(kù)(比如 RocksDB)和列式存儲(chǔ)數(shù)據(jù)庫(kù)(比如Cassandra)。

有時(shí),數(shù)據(jù)以一種適用于分析的形狀被獲取,有時(shí)并非如此,因此需要進(jìn)行轉(zhuǎn)換。有時(shí)一種數(shù)據(jù)庫(kù)建立在另一種數(shù)據(jù)庫(kù)上。比如說(shuō),鍵值存儲(chǔ)數(shù)據(jù)庫(kù)幾乎可以用作任何類型的數(shù)據(jù)庫(kù)的基礎(chǔ)。


五、你的延遲要求是什么?

延遲是指數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間和應(yīng)用系統(tǒng)的端到端響應(yīng)時(shí)間。在理想情況下,每個(gè)用戶操作的響應(yīng)時(shí)間都在亞秒級(jí),這常常意味著需要數(shù)據(jù)庫(kù)在100毫秒內(nèi)為每個(gè)簡(jiǎn)單事務(wù)做出響應(yīng)。分析查詢常常需要幾秒鐘甚至幾分鐘,應(yīng)用系統(tǒng)可以通過(guò)在后臺(tái)運(yùn)行復(fù)雜的查詢來(lái)維持響應(yīng)時(shí)間。


云端運(yùn)行數(shù)據(jù)庫(kù)會(huì)使延遲的測(cè)量很復(fù)雜。這里涉及多個(gè)因素:最簡(jiǎn)單的考量因素是客戶端和數(shù)據(jù)庫(kù)之間的延遲,因數(shù)據(jù)庫(kù)查詢響應(yīng)而增加了總體延遲。一個(gè)更復(fù)雜的考量因素是,在分布式數(shù)據(jù)庫(kù)中提交事務(wù)可能需要等待地理分布區(qū)域中的寫入,尤其是在數(shù)據(jù)庫(kù)保持強(qiáng)一致性的情況下。


云數(shù)據(jù)庫(kù).jpg


想了解更多云數(shù)據(jù)庫(kù)的相關(guān)知識(shí),請(qǐng)關(guān)注恒訊科技的新聞資訊。



/template/Home/Zkeys724/PC/Static