現如今的電子商務、社交媒體和智能設備都在向企業提出數據要求,而關系數據庫系統無法以高速度和合理的成本來支持這些數據需求。盡管NoSQL技術帶來了相關的解決方案,但其各種數據管理方法會涉及到一系列的術語集合,這些數據管理方法又各有其優勢和劣勢,取決于企業的IT專業人員試圖解決的具體問題是怎樣的。
在NoSQL領域的新應用程序的特點是通曉多種語言,451集團數據平臺和分析研究主任Matthew Aslett說。這一概念要歸功于ThoughtWorks的軟件研究者和獨立顧問Martin Fowler。其使用NoSQL數據庫的Riak源碼、Neo4j、MongoDB和Cassandra,以及一個RDBMS設計了一款Web應用程序,用于區分不同的數據集。
這樣一個大雜燴的技術對于那些獲得清晰優化、標準化支持的IT經理們而言無疑是一種詛咒了。但他們可能不得不去適應它,Aslett說。
“你需要使用一種技術解決非常具體的問題。”他說。”如果從企業IT的角度來看,這并不一定是好事。你的一款應用程序會有四或五個數據庫,而且所有這些數據庫都是互相依賴的,支持不同的關系,只有一個人知道如何將它們整合在一起。
“企業正在進行戰略選擇,他們需要找出哪個NoSQL數據庫最能幫助他們實現其業務目的,哪個開發人員最喜歡使用,并試圖減少數據集。這就需要積極的接受這一不可避免的計劃,而不是試圖阻止這一潮流。”
對于有經驗的NoSQL的用戶的情況:如全球分銷系統Amadeus,其庫存管理分配著700家航空公司、數千家旅行代理機構和全球的互聯網預訂引擎。其使用NoSQL數據庫Couchbase和關系數據庫Oracle管理航線庫存和預訂系統,其同時也使用NoSQL MongoDB進行文檔存儲。Amadeus研發部門的架構和基礎設施副總裁Dietmar Fauser說:“企業需要清楚的了解自己的問題,然后選擇最適合的技術。”
水質管理公司i2O使用Cassandra
Cassandra是一套開源分布式列存儲NoSQL數據庫系統。其優先提供數據的一致性有利于水質管理公司i2O開展業務。數據按列存儲,而不是像關系數據庫中的按行存儲。數據庫的分布式性質意味著其創造了寬列分布式特性,而不損害性能。
但企業也使用Elasticsearch作為NoSQL的數據庫來存儲不規則的文件用于IT審核,并繼續投資于關系數據庫PostgreSQL。
i2O公司 幫助自來水公司和企業監控用水需求,以減少泄漏和過度供應。智能硬件,如閥門,壓力儀表,連接到基于云計算的學習算法,以確保其消費者得到必須用水量的同時,每天節省了2億升水。
該公司軟件和IT總監Mike Williams說,系統需要在水中的網絡花費大量的時間處理來自監控設備的序列數據。
該公司選擇Cassandra是因為其能夠在一個分布式數據庫管理很寬的行。“當我們開始嘗試Cassandra時,我們發現其具有如此多的可擴展性,并且對這種類型的數據非常有效,即使我們并沒有在第一時間得到完美的設計。”Williams說。 “我們可以得到更多的面向列的視圖,而不損失檢索數據量的性能。”
因為Cassandra是設置用于分發的,其由服務公司DataStax提供技術支持,使其較之其他系統更容易增加新節點,Williams說。 “這真的是不費吹灰之力了。我職業生涯中很大一部分時間都是在與數據庫打交道,而集群關系數據庫從來沒有像這樣容易過。”
存儲在云系統
Temetra是另一家公共服務公司,該公司收集燃氣及水的電表數據,并將其存儲在一個基于云的系統。他們選擇采用Basho公司的NoSQL數據庫Riak,因為其“鍵值”特質允許他們來存儲大量非結構化的數據。
自2010以來,其愛爾蘭公司在英國的規模擴大了,其管理的數據量增長了20倍,而其所收集的數據量也大幅上漲。該公司曾經使用關系數據庫PostgreSQL,但日益增長的數據量嚴重影響了其性能。軟件工程師兼Temetra的創始人Paul Barry在嘗試了Cassandra之后,決定轉移到Riak。
他說,轉移到NoSQL需要在IT管理進行新的思考。“我們仍處在學習階段,如果您咨詢三位經驗豐富的SQL工程師,讓他們繪制出一些數據,他們可能會采用以幾乎相同的模式。盡管我們采用NoSQL的第一個案例并不完美。但它是可靠的,能夠存儲大量數據,當然它不是適應所有的案例的最佳解決方案。我們已經因此而改變了我們的數據存儲方式。你在使用NoSQL時,必須要有靈活的思維,以適應不斷變化的理念。”
Temetra繼續使用傳統的SQL系統處理交易數據;用NoSQL搜索技術Solr,但Riak在支撐著其需求的快速擴張,Barry說。
NoSQL數據庫可能需要IT管理人員走到他們已經習以為常的舒適區域之外。該技術是多種多樣的,缺乏標準的工具,技能和方法以映射數據。但是,只有使用恰當,他們能夠幫助企業提高在市場上的數據性能,在帶來競爭優勢。
案例研究:全球分銷系統(GDS)順利應對全球數據的增長
Amadeus是世界上最大的全球旅行分銷系統,其系統能夠使消費者和旅行代理商方便的訪問全球700家航空公司的航班,以及酒店客房和停車位的預訂情況。該系統曾經只提供給旅行代理商所使用,但隨著在線旅游網站的興起,意味著其數據庫每秒的訪問量高達300到400萬。
不斷增長的移動旅游搜索和預訂量使得其訪問量每秒上升到了2000或3000萬次,Amadeus研發部門架構和基礎設施副總裁Dietmar Fauser說.
在本世紀初,Amadeus研發部從大型主機轉移到UNIX(后來又轉到采用Linux);從Oracle轉移到關系數據庫。但是隨著網絡流量需求的增長,他們需要找到提供訪問庫存數據的新方法。
Amadeus拆分了其數據庫的讀取部分,讓用戶可以服務航班的飛行情況,在Oracle數據庫外面復制它,并在內存環境下把它變成一個分布式,基于開源的Memcached架構,一個鍵值的NoSQL數據緩存。這在關系數據庫產生兩個數量級的性能改進,但其需要細化和完善,所以Amadeus選擇了Couchbase ,其類似于NoSQL數據庫, Fauser說。
問題是,Memcached沒有持續性。因此,如果一個節點發生故障,其不能帶回。用戶要么需要編寫自己的持久性代碼,或使用Couchbase數據庫中已經存在的代碼來創建它,Fauser說。
NoSQL數據庫通常在性能與一致性之間進行權衡,接受“最終一致性”,而不是關系數據庫的嚴格規定。Amadeus繼續使用Oracle來解決交易數據,其確保NoSQL在大約一秒鐘能夠讀取數據。
同時,Amadeus還嘗試使用MongoDB,基于文檔的NoSQL數據庫,用于電子售票數據庫和收入管理系統。 “我們接受不同的技術,只有我們認為其符合我們的需求。” Fauser說。