從管理水表數(shù)據(jù),到比特幣和視頻數(shù)據(jù),再到網(wǎng)絡出版物,NoSQL數(shù)據(jù)庫技術(shù)已經(jīng)逐步找到其在現(xiàn)實中的使用案例了。但其仍然有可能會被困在僅占10%的市場份額一段時間。
專門使用NoSQL數(shù)據(jù)庫來存儲和管理其非結(jié)構(gòu)化數(shù)據(jù)及不可預測的數(shù)據(jù)的企業(yè)數(shù)量,有望將在未來幾年內(nèi)獲得迅速增長。例如,根據(jù)來自市場調(diào)研機構(gòu)451 Research的研究顯示,NoSQL系統(tǒng)的市場將從2015年的8.14億美元增長至2020年的約49億美元。
然而,據(jù)451 Research表示,盡管其保持了43%的復合年增長率,其仍然只占到了市場份額的非常小的一部分。到2020年,NoSQL的市場份額將達到9%左右,而相比之下,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的市場份額則為90%。
在過去的10年中,NoSQL的大部分增長來自于一系列新的用以響應流數(shù)據(jù)源的應用程序的設置。
“絕大多數(shù)現(xiàn)有的應用程序都是為關(guān)系數(shù)據(jù)庫開發(fā)的。 NoSQL已經(jīng)不斷壯大,以支持新的、能夠滿足開發(fā)人員們正在尋找的符合數(shù)據(jù)庫需求的應用程序。”據(jù)451 research的數(shù)據(jù)平臺和分析部門總監(jiān)馬特·阿斯萊特如是說。
這些領(lǐng)域包括物聯(lián)網(wǎng)(IoT),其大量的數(shù)據(jù)是來自于遠程的、連接的設備。這些數(shù)據(jù)可以說是難以預測且類型變化多樣的。位于愛爾蘭的Temtra公司收集和管理了來自遠程公用服務事業(yè)儀表上的數(shù)據(jù),并在收集和管理這些數(shù)據(jù)中發(fā)現(xiàn)了NoSQL數(shù)據(jù)庫Basho的價值,其中包括照片、輸入值和15分鐘的數(shù)據(jù)流(見下文研究案例分析)。
NoSQL數(shù)據(jù)庫對于那些初創(chuàng)型企業(yè)也具有相當大的吸引力。因為這些初創(chuàng)型企業(yè)更可能會略過數(shù)據(jù)庫供應商,轉(zhuǎn)而尋求成本更低且更好更為適合的技術(shù),阿斯萊特表示說。
Seenit是一款于兩年半前推出的協(xié)同視頻平臺,其客戶品牌包括阿迪達斯、英國航空公司和百加得。Seenit平臺和分析引擎是建立在Couchbase NoSQL數(shù)據(jù)庫之上(見下文研究案例分析)。與此同時,在金融領(lǐng)域,主要從事比特幣交易分析業(yè)務的初創(chuàng)型企業(yè)Kaiko公司則一直使用NoSQL數(shù)據(jù)庫Cassandra幫助為其客戶創(chuàng)建報告(見下文研究案例分析)。
當然,相當一部分有實力的企業(yè)組織機構(gòu)也發(fā)現(xiàn)了NoSQL技術(shù)的價值。出版公司Haymarket已經(jīng)將其網(wǎng)站遷移到了MongoDB,這是一款NoSQL數(shù)據(jù)庫(見下文研究案例分析)。同時,英國廣播公司(BBC)這家公共廣播機構(gòu)的商業(yè)部門,也正在使用來自MarkLogic的NoSQL數(shù)據(jù)庫。
開發(fā)商也在積極推動NoSQL在那些正在探索新業(yè)務的老牌企業(yè)組織機構(gòu)的普及和采用,這些老牌企業(yè)組織機構(gòu)通常將其用在提高網(wǎng)站的客戶體驗方面,根據(jù)阿斯萊特介紹。
“在一定程度上,這是一個開發(fā)人員主導的現(xiàn)象。”他說。“一些最重要的采用者是初創(chuàng)公司和較為年輕的IT專家們,他們更傾向于喜歡尋找數(shù)據(jù)庫供應商的替代品。”
“然而,我們也正在看到更多的主流企業(yè)的采用。這其中包括在相當傳統(tǒng)的企業(yè)的非常大的架構(gòu)改造項目。隨著他們遷移到一個新的架構(gòu),他們正在考慮所有的數(shù)據(jù)庫替代方案,云計算可以在哪些領(lǐng)域發(fā)揮作用以及DevOps將如何可以使得企業(yè)業(yè)務受益。”
即使仍然建議使用更多成熟的關(guān)系數(shù)據(jù)庫,NoSQL可能還涉及應用程序堆棧,據(jù)阿斯萊特估計。
“對于很多應用程序來說,NoSQL并不是一個很好的選擇,例如金融交易。但有時NoSQL也能夠發(fā)揮部分的作用。”他說。 “其可能不是用于負責交易的處理,但其很可能是負責將數(shù)據(jù)分發(fā)到多個數(shù)據(jù)源。其不是一種類型的數(shù)據(jù)庫相對于其他類型的數(shù)據(jù)庫。”
案例分析:Temetra公司借助Basho數(shù)據(jù)庫提升數(shù)據(jù)收集
Temetra公司成立于2002年,主要業(yè)務是存儲和管理愛爾蘭地區(qū)的水表數(shù)據(jù)。自那時起,該公司已經(jīng)獲得了迅速的成長,并逐步開始負責收集來自全英國各地的1250萬公用服務事業(yè)計量表的數(shù)據(jù)信息。
該公司的聯(lián)合創(chuàng)始人兼董事保羅·巴里表示說,在他們決定從Basho部署Riak NoSQL數(shù)據(jù)庫之后,才發(fā)現(xiàn)了他們所收集的數(shù)據(jù)類型和數(shù)據(jù)量的不可預知性。
“從這些計量表所收集的數(shù)據(jù)有各種各樣廣泛的品種類型。”他說。“我們?nèi)匀挥腥嗽谧x取鍵入的數(shù)據(jù),通過一個固定的網(wǎng)絡線路每15分鐘自動發(fā)送來自大型工業(yè)用戶的數(shù)據(jù)。”
于是,該公司開始通過借助一款PostgreSQL數(shù)據(jù)庫來支持其客戶,但很快就發(fā)現(xiàn)了該數(shù)據(jù)庫的局限性。“并不是說PostgreSQL數(shù)據(jù)庫無法應付數(shù)據(jù)量,而是如果采用PostgreSQL數(shù)據(jù)庫的話會讓數(shù)據(jù)庫變得太難管理。”巴里說道。“鑒于主從復制,其會隨著數(shù)據(jù)量的增加變得更難管理。”
NoSQL的另一大優(yōu)勢是其具備適應新的數(shù)據(jù)類型的能力,他補充說。“當我們剛剛開始的時候,對架構(gòu)實施更改并不是一個大問題。但是,當我們所收集數(shù)據(jù)的計量表的量達到1000萬時,其中一些計量表是每15分鐘發(fā)送一次數(shù)據(jù),而我們所存儲的是多年來的數(shù)據(jù)信息,故而此時對架構(gòu)實施更改就可能需要幾個小時了。
“NoSQL可以讓我們不必以這樣嚴格的格式來存儲數(shù)據(jù)。這樣,我們就可以開始以一種新的格式中添加新的數(shù)據(jù),并隨著時間的推移,將較舊的數(shù)據(jù)調(diào)整到新的模式。這成為了一種活的格式,故而我們必須編寫應用程序,以適應這一理念。”巴里說。
案例分析:Kaiko公司在Cassandra 數(shù)據(jù)庫上收集數(shù)據(jù)
Kaiko公司成立于2014年,主要業(yè)務是負責收集和分析比特幣交易數(shù)據(jù)信息。該公司以報告和應用程序編程接口(API)的形式重新分配其所獲得的情報信息。
該公司的聯(lián)合創(chuàng)始人兼軟件開發(fā)人員Vincent de Lagabbe表示說,在于2014年底構(gòu)建一款基于開源的NoSQL數(shù)據(jù)庫Cassandra的概念證明之前,他們曾考慮各種SQL和NoSQL備選方案。到了2015年,該公司切換到采用Datastax支持的Cassandra分布式數(shù)據(jù)庫,以充分利用其啟動程序。
“原因是維護、可擴展性、可復制性和可擴展性的一個混合。”de Lagabbe表示說。“目前,我們托管了大約6TB的數(shù)據(jù)。如果我們想要具備SQL同樣的性能,我們就需要一款非常強大的服務器。”
“再加上這意味著各種數(shù)據(jù)復制的麻煩——其在Cassandra則是自動的。我們僅僅只是一個小團隊,沒有專門的IT運營團隊。我們便是公司默認的DevOps團隊。”
“我們每天正在加載約2-3 GB的數(shù)據(jù)。”de Lagabbe補充說。 “我們需要一種在不改變整個系統(tǒng)的前提下實現(xiàn)規(guī)模化的方法。在傳統(tǒng)的SQL上,我們必須自行管理分片和自行分配,并必須了解其適合在服務器上的哪個位置。
“這也并非是不可能的,但要這樣做是相當痛苦的事情。我們想要創(chuàng)造營收并開發(fā)新產(chǎn)品;我們不想把時間花在管理操作運營方面,畢竟我們只有一個小團隊。”
Kaiko公司將其主要的應用程序運行在亞馬遜網(wǎng)絡服務(AWS)。并選擇了DataStax的Cassandra分布數(shù)據(jù)庫許可,因為其比免費的開源分布更加穩(wěn)定,并具備OpsCentre軟件,能夠自動化管理任務,否則將需要編寫腳本。
這家初創(chuàng)型企業(yè)也嘗試過使用Apache Spark來幫助他們分析其NoSQL數(shù)據(jù)庫上的數(shù)據(jù)。
案例分析:網(wǎng)絡視頻專家Seenit公司依靠Couchbase
Seenit公司成立于2014年1月,是一家?guī)椭髽I(yè)組織機構(gòu)從他們的客戶和員工處直接收集視頻信息的平臺。他們提供了腳本讓用戶能夠圍繞一個主題和特色工具來編輯、分析和管理視頻內(nèi)容。
鑒于其在以往的職位角色中使用過Couchbase,Seenit公司的首席技術(shù)官戴夫·斯塔林尋求借助NoSQL數(shù)據(jù)庫以幫助這家初創(chuàng)企業(yè)的擴張,因為該數(shù)據(jù)庫允許數(shù)據(jù)模式隨時間而改變
“我們不知道我們的模式在三個月內(nèi)看起來會是什么樣子的。如果我們沒有改變它,我們很可能是做了錯誤的事情。”
他說。
擴展的功能也很重要,斯塔林補充說。Seenit公司在谷歌云計算平臺存儲了數(shù)TB的視頻數(shù)據(jù),以及數(shù)萬字節(jié)的元數(shù)據(jù)。該公司還使用了谷歌的機器學習API來為具體的特征執(zhí)行視頻分析,以便幫助客戶更迅速的找到他們想要的視頻。
靈活的能力和成長一直是該公司主要的商業(yè)利益。根據(jù)斯塔林介紹說:“我們在Python中開發(fā)編程語言,其具有數(shù)據(jù)結(jié)構(gòu)直接等同于Couchbase。”他解釋道。
“底層的基礎技術(shù)并不是我們所想要構(gòu)建的一個因素。如果公司的產(chǎn)品開發(fā)負責人說,他們真的想提供一款服務的話,我們可以做一個概念證明,而不必擔心數(shù)據(jù)庫可以做什么樣的工作的局限性。”
案例分析: Haymarket公司遷移其網(wǎng)站到MongoDB
并不僅僅只是初創(chuàng)公司和小型企業(yè)才會選擇使用NoSQL。 Haymarket傳媒集團的歷史可以追溯到20世紀50年代,該集團公司是英國一家領(lǐng)先的B2B和B2C的出版商。該公司現(xiàn)在采用的是他們的第二代技術(shù),以支持他們朝著基于網(wǎng)絡的出版過渡,并且在NoSQL數(shù)據(jù)庫MongoDB上構(gòu)建其網(wǎng)站。
該公司架構(gòu)負責人彼得·迪格南表示,當該公司尋求以更新的技術(shù)支撐其早期消費者網(wǎng)站時,開始了此舉。其早期的消費者網(wǎng)站是建立在微軟的Active Server Pages上的,可追溯至2002年。隨著時間的推移,需要大量緩存,以支持日益增加的需求,并引入更具互動性,個性化的特征。
“當您企業(yè)在前端之上遷移緩存時,您正在減少定制。我們不能通過收集個人信息資料,并用它來細分用戶,并為他們提供合適的服務內(nèi)容。”他說。
Haymarket公司于2011年開始遷移其網(wǎng)站到MongoDB,以支持更大的靈活性,迪格南解釋說。
“其允許在架構(gòu)的靈活性,當您試圖要變得敏捷時,這是相當有幫助的。”他說。 “在消費者領(lǐng)域,當您企業(yè)試圖為您所推出的新功能而吸引眼球時,這是非常重要的。借助MongoDB,您可以添加新的功能,而不用擔心架構(gòu)的問題。這是更可靠的,并且不需要為主要模式的更改而停機。”
該系統(tǒng)通過AWS托管在一款私有云?,F(xiàn)在,MongoDB已經(jīng)被Haymarket公司用于支持其所有的網(wǎng)站了。