近年來,由于NoSQL數據庫出現并用于處理大規模數據擴展,在線事務處理技術不斷變化。同時,隨著Hadoop和Spark的出現,經典分析模式被逐漸打破。
如今,應用程序來利用這些技術在大規模事務系統上創建接近實時的分析。尤其是接入NoSQL系統的Spark連接器正變得越來越普遍。
“就是我們正在用操作系統和分析系統改變我們正在做的事情,”分析師Mike Ferguson在上周Dataversity舉辦的一個討論會上說。
Ferguson是位于一位英國的經營智能商業策略的總經理,他分享了將Spark與來自Basho Technologies的關鍵值Riak NoSQL數據存儲相連,通過這種方法來對Web和移動數據的分析進行加速。
和Aerospike,Couchbase,DataStax,Redis Labs以及其他競爭對手一樣,Basho也因此目的而涉足Spark連接器。
操作分析
Ferguson說把NoSQL和Hadoop以及Spark進行結合為他所謂的“操作分析”奠定了基礎,相比起過去的分析系統,該系統不需要整夜都進行批處理任務。
多年來,關系型數據庫都處于操作和分析系統之間循環的末端。但是隨著Web和移動應用程序開始需要可擴展性(這種特性是通過運行分布式計算機集群獲得的),情況就開始改變了。對于數據處理來說,頁面是一回事,而移動又是另一回事。
通過移動接入事務系統,并發用戶量激增到了前所未有的水平。這使得團隊要去嘗試新的架構,而Spark則已經成為一個有力的競爭者。
Ferguson指出Spark和其他產品一樣雖然通常是運行在Hadoop上,但是并不局限于Hadoop存儲。它還可以訪問關系型數據存儲以及NoSQL數據存儲。
這反過來就會支持應用Spark進行一系列的分析,“其中有些是操作分析,”他說。
就像Ferguson所形容的,操作分析試圖利用分析來避免某些事件和優化流程。這可以讓應用程序降低風險,改善客戶交互并減少計劃外運營成本。
A/B測試用例
Intuit是一家網絡財務和稅務籌劃服務提供商,NoSQL數據庫與Spark分析引擎協作的一個案例就是出自這家公司。
Rekha Joshi是加州的一位軟件工程師,她說,對于那些存儲在DataStax Cassandra數據庫(運行在Amazon Web Services云端)中的數據,Spark已經完成了分析。
她所描述的一個用例集中在訪問者與Intuit網站首選交互方式的A/B測試上。其目標就是要更好地理解訪問者的喜好并對個性化他們的頁面視圖和網站交互進行自動響應。
數以百萬的網站用戶生成了大量數據, Cassandra NoSQL有能力應對這樣的變化。但Rekha Joshi說:“這并不是Cassandra真正的用武之地。Spark和Hadoop才是為此而生的。”
Intuit員工曾使用Spark和Hadoop。它們有著各自的性能優勢和局限性,該工作對Spark有近乎實時的性能要求。Hadoop是一個批處理系統,而Spark則是實時的或是接近實時的。
Joshi所描述的路徑與Ferguson的操作分析有一定相關性,但是她選擇另外已有的術語來描述同時支持批處理和實時分析的架構,即,λ架構。
諸如Ferguson的分析和Joshi的用例給出了數據分析架構改變的一個視角。這在存儲方面可能有更豐富的內容。
For NoSQL, there is considerable growth to come, according to Allied Market Research, which estimated that a global NoSQL market that barely existed 10 years ago will reach $4.2 billion by 2020.
根據Allied Market Research的預測,NoSQL會有非常迅速的增長。 10年前幾乎不存在的全球NoSQL市場將會在2020年達到42億美元的規模。
和Ferguson一樣,Allied將Web、移動和電子商務應用程序作為NoSQL迅速發展的驅動力。與諸如Spark這些新的分析引擎進行對接也會有助于NoSQL的增長,會擴大NoSQL的可用度。
采用大數據系統后,數據管理是如何隨著整體數據環境的變化進行規劃和執行的?Lakshmi Randall顧問分享了自己的觀點。過去的幾年里,數據環境的變化不會在短時間內產生影響。隨著大數據系統的擴張,數據行業的一些基本原則逐漸改變。這些變化需要數據專業人員具備很強的靈活性。近20年里,Lakshmi Randall花費了大量時間研究數據準備和質量問題。
將數據倉庫與數據湖拿來做比較是有意義的。數據環境逐漸改變,你如何看待今天的數據倉庫和數據湖之間的關系?
Lakshmi Randall:數據從收集到分析都是逐步完成的。當你理解了數據,當它實現結構化并且源于熟悉數據源時,線性方法就能發揮作用。
但在大數據環境下,對于半結構化或非結構化的數據,比如醫生或保險索賠表單數據,線性方法不再可行。想要分析這些數據,必須找到數據源,完成數據歸檔并充分理解數據的意義。
你可以把獲得的數據移動到數據倉庫,或者直接舍棄無用數據。我認為隨著數據環境的變化,不應該僅僅停留在線性的方法上,而是要思考發現和探索更多的方法。這樣在處理或存儲數據時,你才能采用最佳的方法。
數據環境的變化也帶來了新的數據類型。我們應該擁抱不同的、合理的數據體系結構。數據治理仍然非常重要,但是你必須有一定程度的敏捷性和靈活性。
似乎越來越多不同類型的用戶需要更多的IT支持,比如類固醇類藥物的使用者。
Randall:不同的用戶案例需要不同的策略。數據變成迭代過程的一部分,面對不同的用戶必須“隨機應變”,當然,日常分析也是如此。不同的用戶也許是你所說的類固醇類藥物的使用者或數據挖掘用戶或數據科學家,也許是將某個領域理論知識實踐相結合的復合型角色。
為什么要使用NoSQL?
Randall:當你掌握了真正的數據關系,在進行數據建模時更有驅動力,數據建模是不同于傳統的關系數據庫。這是使用NOSQL數據庫的一個很好的例子。
例如,使用NOSQL可以幫助我們發現客戶案例中隱藏的特殊關系,因為它存儲的數據最接近自然的形式,而不是將數據轉換為行和列。人們發現,有一些使用案例會將NoSQL數據庫作為優先選項,這一切都與數據的性質有關。如果屬于關系數據,那么關系數據庫和數據倉庫是更好的候選項。
如今,數據行業橫跨IT業務。而現實情況是企業需要全能型人才——擁有數據分析能力、定性能力,同時又是領域專家、工藝專家、數據科學家、數據管家等,他們可以幫助企業實現多項業務目標。