隨著企業(yè)收集的數(shù)據(jù)量以每年 40% 到 60% 的速率持續(xù)增長,IT 團隊面臨管理海量信息的挑戰(zhàn)。
為了應(yīng)對數(shù)據(jù)的容量、速度、類別等方面的爆發(fā)性增長,眾多企業(yè)正準(zhǔn)備轉(zhuǎn)向 NoSQL 數(shù)據(jù)庫來代替?zhèn)鹘y(tǒng)的關(guān)系數(shù)據(jù),以實現(xiàn)更好的性能、伸縮性和易于開發(fā)。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫需要提前構(gòu)造好整張表的數(shù)據(jù)類型和模式。而另一方面,NoSQL 數(shù)據(jù)庫更加靈活,允許新類型的數(shù)據(jù)快速插入,而且能讓不同類型的數(shù)據(jù)存儲在一起。這個特性對對期待分析大量非結(jié)構(gòu)化數(shù)據(jù)的公司特別有幫助。非結(jié)構(gòu)化數(shù)據(jù)是指不適合預(yù)定義的數(shù)據(jù)模型,例如 tweet、視頻或者從傳感器采集的數(shù)據(jù)等。
這僅僅是 NoSQL 數(shù)據(jù)庫流行起來的一個原因。2015 年到 2020 年期間,NoSQL 數(shù)據(jù)庫的使用有望達(dá)到 21% 綜合年增長率。
”企業(yè)正在處理與分析越來越多的數(shù)據(jù),需要能夠高效可靠的處理一定規(guī)模的數(shù)據(jù)“,NoSQL 數(shù)據(jù)庫提供商 Couchbase 的 CEO Bob Wiederhold 說到。“為了實現(xiàn)這個目標(biāo),他們拋棄了關(guān)系型數(shù)據(jù)庫。”
大約 80% 的企業(yè)現(xiàn)在仍然在使用關(guān)系型數(shù)據(jù)庫,Wiederhold 預(yù)測這個比例在接下來的 10 到 15 年將會降至不到 50%,企業(yè)遷移到 NoSQL 數(shù)據(jù)庫,尤其是 Web應(yīng)用,移動應(yīng)用以及物聯(lián)網(wǎng)(IoT)應(yīng)用。
不過采用 NoSQL 數(shù)據(jù)庫也需要做出一些取舍。
“你需要兩種類型的數(shù)據(jù)庫做不同的事,有時甚至需要結(jié)合兩者一起使用,” 大數(shù)據(jù)分析初創(chuàng)公司 Metanautix 的 CEO Theo Vassilakis 說到。
在計劃如何存儲和處理大數(shù)據(jù)時,有三個因素需要考慮。
1.針對應(yīng)用程序的考慮
兩種類型的數(shù)據(jù)庫都有其用武之地,Vassilakis 表示。
傳統(tǒng)的關(guān)系數(shù)據(jù)庫的好處之一是它們跑 ACID 事務(wù),這保證了數(shù)據(jù)庫的變化能夠得到可靠準(zhǔn)確地處理。
“銀行結(jié)算原型,一個賬戶出賬而另一個賬戶入賬,” 在這種形式下應(yīng)用程序需要更多的事務(wù)處理,這時使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫更適合。Vassilakis 解釋說。
但這使關(guān)系型數(shù)據(jù)庫橫向擴展非常困難,增加了計算成本而且降低了數(shù)據(jù)檢索速度。
NoSQL 能夠輕松通過提升硬件性能花相對低的成本擴展服務(wù)性能。再加上,NoSQL 能夠處理不適合傳統(tǒng)關(guān)系型數(shù)據(jù)庫的非結(jié)構(gòu)化數(shù)據(jù)。
“這種形式的數(shù)據(jù)庫架構(gòu)對于存儲非結(jié)構(gòu)化數(shù)據(jù),縮放多數(shù)據(jù)庫實例和為那些同時通過 Web 和手機應(yīng)用的迅速增加的大量用戶提供服務(wù)是最理想的。所以,如果那正是需求所在,NoSQL 是個更好的選擇,” Wiederhold 說到。
2.考慮兩者的優(yōu)點
“隨著數(shù)據(jù)的爆炸性增長,企業(yè)正在抱怨他們現(xiàn)有的數(shù)據(jù)庫性能不佳,而且維護越來越昂貴。企業(yè)需要擴展商用硬件提供能力去維護同等級的服務(wù),“ Splice Machine 的 CEO Monte Zweben 說到。
他補充:“但在遷移到 NoSQL 過程中,他們不分好壞,將以前的把寶貴的東西也一起丟掉了”。
關(guān)系型數(shù)據(jù)庫善于事務(wù)處理,使用許多技術(shù)員工已經(jīng)熟悉的語言(SQL),并與現(xiàn)有的業(yè)務(wù)集成應(yīng)用程序編寫 SQL,但是關(guān)系型數(shù)據(jù)庫性能不足,NoSQL 提供了擴展和收集的非結(jié)構(gòu)化數(shù)據(jù)的能力。
所以一些企業(yè)橋接了這個兩種類型的數(shù)據(jù)。例如,Splice Machine 使用 Hadoop,將 NoSQL 數(shù)據(jù)庫作為它系統(tǒng)中的一部分,并在基于 NoSQL 優(yōu)點的基礎(chǔ)上建立了一個兩全其美的數(shù)據(jù)庫。
3.更新和擴展方面的考慮
除了對數(shù)據(jù)庫基本結(jié)構(gòu)做出重大改變,企業(yè)還可能會考慮第三種選擇:舍棄他們原有的數(shù)據(jù)庫架構(gòu),在頂層安置一個計算引擎,來跨多種數(shù)據(jù)庫(無論是關(guān)系型數(shù)據(jù)庫,還是NoSQL)查詢和組合數(shù)據(jù)。
Vassilakis 說道:“你可能想要獲取 NoSQL 數(shù)據(jù)庫中已經(jīng)被廢棄的購物車數(shù)據(jù),并且將那些數(shù)據(jù)和關(guān)系型數(shù)據(jù)庫中的關(guān)于銷售的結(jié)構(gòu)化數(shù)據(jù)進行比較”。
企業(yè)同時使用兩種類型的數(shù)據(jù)庫更有意義,這樣分析師就可以專注于他們的業(yè)務(wù)分析了。它還可以防止你將需要分析的數(shù)據(jù)從一個數(shù)據(jù)庫移到另一個數(shù)據(jù)庫,轉(zhuǎn)移過程可能緩慢并且有風(fēng)險。
由 Metanautix 創(chuàng)建的工具 Quest,可以讓分析師能夠使用熟悉的 SQL 語言查詢關(guān)系數(shù)據(jù)庫和 NoSQL 數(shù)據(jù)庫。
“考慮到你需要兩種類型的數(shù)據(jù)庫,我們想幫助那些使用數(shù)據(jù)的人,不需要關(guān)注底層的復(fù)雜性,并使用標(biāo)準(zhǔn)的邏輯模型和工具,” Vassilakis 解釋道。“我們還想讓 CIO 和 IT 部門協(xié)調(diào)系統(tǒng)底層而不打亂系統(tǒng)上層。”
雖然你的組織可能不知道哪種路徑是最好的,但重要的是,開始評估并準(zhǔn)備應(yīng)對大數(shù)據(jù)對數(shù)據(jù)庫帶來的各種巨大變化。