近日,Spark的官方博客中刊登了其全球戰(zhàn)略合作伙伴SequoiaDB發(fā)布的技術(shù)博客,介紹SequoiaDB對(duì)于Spark的整合以及SequoiaDB+Spark的解決方案。而SequoiaDB也成為了Spark官方認(rèn)證的全球合作伙伴和授權(quán)的Spark提供商之一,目前獲得這一認(rèn)證的企業(yè)全球僅有14家,SequoiaDB也成為國(guó)內(nèi)唯一獲得該認(rèn)證的數(shù)據(jù)庫(kù)。
Spark是新一代的大數(shù)據(jù)分析處理架構(gòu)
如今業(yè)界最具代表性的大數(shù)據(jù)技術(shù)為Hadoop,也是目前大部分的大數(shù)據(jù)分析處理所使用的架構(gòu)之一。Hadoop并不能適用于所有場(chǎng)景,尤其是在海量數(shù)據(jù)并對(duì)實(shí)時(shí)交互性需求較高的企業(yè),因?yàn)槠涫褂玫腗apReduce架構(gòu),需要將每次臨時(shí)計(jì)算得出的結(jié)果寫(xiě)回磁盤,下次需要的時(shí)候需要再次從磁盤讀取。這種方式會(huì)造成數(shù)據(jù)運(yùn)算的效率較低。
Spark則使用內(nèi)存計(jì)算的結(jié)構(gòu),在計(jì)算性能上相比Hadoop有了巨大的提高。同時(shí)相比于如今Hadoop復(fù)雜繁瑣的生態(tài)系統(tǒng), Spark框架為批處理(Spark Core),交互式(Spark SQL),流式(Spark Streaming),機(jī)器學(xué)習(xí)(MLlib),圖計(jì)算(GraphX)提供一個(gè)統(tǒng)一的數(shù)據(jù)處理平臺(tái),使用更方便統(tǒng)一。目前,Spark也成為了Apache的頂級(jí)Project,屬于Apache力捧的云計(jì)算、大數(shù)據(jù)架構(gòu),也是目前世界上最大的開(kāi)源項(xiàng)目之一。
現(xiàn)在,越來(lái)越多的企業(yè)也開(kāi)始使用Spark架構(gòu),Spark極有可能成為替代Hadoop的下一代云計(jì)算、大數(shù)據(jù)核心技術(shù)。
SequoiaDB是Spark底層數(shù)據(jù)源首選
SequoiaDB是一款文檔型的分布式NoSQL數(shù)據(jù)庫(kù),其也是國(guó)內(nèi)第一款完全自主研發(fā)、并且敢于開(kāi)源的NoSQL數(shù)據(jù)庫(kù)產(chǎn)品。SequoiaDB JSON對(duì)象式的存儲(chǔ)結(jié)構(gòu),帶來(lái)靈活的數(shù)據(jù)結(jié)構(gòu);分布式的架構(gòu),使得存儲(chǔ)容量可以動(dòng)態(tài)調(diào)整;高可用和讀寫(xiě)分離則可以使得數(shù)據(jù)讀寫(xiě)和離線數(shù)據(jù)分析分離,提升使用的效率;原生的Spark-SequoiaDB Connector 連接器讓Spark與SequoiaDB完美對(duì)接。
以上這些特性都讓SequoiaDB可以成為Spark數(shù)據(jù)源的首選。
“SequoiaDB是一款NoSQL數(shù)據(jù)庫(kù),其可以在不同的物理節(jié)點(diǎn)之間對(duì)數(shù)據(jù)進(jìn)行復(fù)制,并且允許用戶指定使用哪一個(gè)數(shù)據(jù)備份。SequoiaDB允許在同一集群同時(shí)運(yùn)行數(shù)據(jù)分析和數(shù)據(jù)操作負(fù)載,并且保證最小的I/O和CPU使用率。”
“Spark-SequoiaDB Connector是Spark的數(shù)據(jù)源,可以讓用戶能夠使用SparkSQL對(duì)SequoiaDB的數(shù)據(jù)庫(kù)集合中的數(shù)據(jù)進(jìn)行讀寫(xiě)。連接器用于SequoiaDB與Spark的集成,將無(wú)模式的存儲(chǔ)模型、動(dòng)態(tài)索引以及Spark集群的優(yōu)勢(shì)有機(jī)的結(jié)合起來(lái)。”——引自《Spark官方 Blog》
SequoiaDB+Spark打造一體化大數(shù)據(jù)平臺(tái)
“Apache Spark和SequoiaDB的聯(lián)合解決方案,使得用戶可以搭建一個(gè)在同一個(gè)物理集群中支持多種類型負(fù)載(如,SQL語(yǔ)句和流處理)的統(tǒng)一平臺(tái)。”
SequoiaDB+Spark的一體化大數(shù)據(jù)平臺(tái),通過(guò)SequoiaDB與Spark架構(gòu)的結(jié)合,實(shí)現(xiàn)了從數(shù)據(jù)的底層存儲(chǔ),到數(shù)據(jù)的處理分析,最終實(shí)現(xiàn)數(shù)據(jù)展現(xiàn)的一體化平臺(tái)。平臺(tái)打通了數(shù)據(jù)從存儲(chǔ)到最終展現(xiàn)的全過(guò)程,不僅大大降低了用戶部署、使用的成本,簡(jiǎn)化了整個(gè)系統(tǒng)的操作和維護(hù),同時(shí)更通過(guò)平臺(tái)的一體化整合,大大減少了因?yàn)椴煌漠a(chǎn)品、架構(gòu)之間對(duì)接、通信等操作造成的系統(tǒng)效率和數(shù)據(jù)安全性降低。此外,Spark的SparkSQL解析引擎,結(jié)合非結(jié)構(gòu)化存儲(chǔ)的SequoiaDB,幫助現(xiàn)有的SQL語(yǔ)句比較熟悉的用戶,能在基本不修改業(yè)務(wù)操作的情況下,順利的對(duì)接上SequoiaDB+Spark平臺(tái)。
目前,一體化的大數(shù)據(jù)平臺(tái),已經(jīng)在各個(gè)行業(yè)的大數(shù)據(jù)應(yīng)用中開(kāi)始普及。我們也舉一個(gè)系統(tǒng)的例子來(lái)做說(shuō)明。
SequoiaDB+Spark實(shí)戰(zhàn)案例:產(chǎn)品精準(zhǔn)推薦系統(tǒng)
這一系統(tǒng),使用分布式的SequoiaDB,將所有用戶的交易信息、操作信息進(jìn)行了存儲(chǔ)。這一存儲(chǔ)的量級(jí)就已經(jīng)達(dá)到了近PB級(jí)別。
之后,基于這些歷史交易信息,平臺(tái)就可以通過(guò)對(duì)這些數(shù)據(jù)的分析,對(duì)每個(gè)用戶的交易行為進(jìn)行預(yù)測(cè),對(duì)用戶進(jìn)行分類和建模,最終根據(jù)分析的結(jié)果向每個(gè)用戶推薦最適合的理財(cái)產(chǎn)品。
當(dāng)用戶模型系統(tǒng)通過(guò)分析所有的歷史數(shù)據(jù)和日志,計(jì)算出需要推薦的產(chǎn)品時(shí),這些用戶特征也會(huì)作為這個(gè)用戶的一個(gè)標(biāo)簽寫(xiě)入這個(gè)用戶的信息中。這些新加入的用戶標(biāo)簽,可以幫助前臺(tái)的員工和產(chǎn)品推薦系統(tǒng)快速的分辨出每個(gè)顧客的興趣和消費(fèi)傾向。
部署了這套系統(tǒng)后,該金融產(chǎn)品的推薦成功率提升了10倍以上。
系統(tǒng)架構(gòu)圖
結(jié)束語(yǔ)
Spark將是大數(shù)據(jù)、云計(jì)算未來(lái)將會(huì)占據(jù)主流的計(jì)算架構(gòu)之一。如今,國(guó)內(nèi)唯一一款開(kāi)源NoSQL數(shù)據(jù)庫(kù)與Spark進(jìn)行深度結(jié)合,不僅體現(xiàn)出國(guó)內(nèi)大數(shù)據(jù)技術(shù)和產(chǎn)品已經(jīng)具備與國(guó)際頂尖產(chǎn)品齊頭并進(jìn)的能力,也體現(xiàn)出了Spark這一新興的大數(shù)據(jù)技術(shù)對(duì)于中國(guó)這一市場(chǎng)的重視,在產(chǎn)品發(fā)展初期就選擇與中國(guó)的廠商進(jìn)行全面的合作。此外,通過(guò)Spark這一技術(shù)在國(guó)內(nèi)得到了較多的應(yīng)用,可以看到中國(guó)目前企業(yè)對(duì)于大數(shù)據(jù)技術(shù)相比于其他方面,開(kāi)放度和接受度更高,更愿意接收更新的技術(shù),這對(duì)于國(guó)內(nèi)的大數(shù)據(jù)技術(shù)、產(chǎn)品也是好消息。