< 返回新聞公共列表

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

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

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


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


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

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

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


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

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

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


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

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

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


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

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

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

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


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

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


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


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


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



/template/Home/Zkeys724/PC/Static