摘要:以及大數(shù)據(jù)平臺都已經(jīng)進(jìn)行了集成并且處于企業(yè)就緒狀態(tài)。因此,顧客避免浪費(fèi)時(shí)間在安裝配置及監(jiān)控系統(tǒng)方面。注意防止數(shù)據(jù)頻繁移動。
本文源地址:http://www.mongoing.com/blog/post/leaf-in-the-wild-stratio-integrates-apache-spark-and-mongodb-to-unlock-new-customer-insights-for-one-of-worlds-largest-banks
歡迎關(guān)注MongoDB中文社區(qū)獲取更多關(guān)于MongoDB的信息。
毫無疑問,Apache Spark現(xiàn)在非常熱門。它是Apache軟件基礎(chǔ)中最活躍的大數(shù)據(jù)項(xiàng)目,最近也被IBM“神化”——其中IBM還投入了3, 500個(gè)工程師來推動它。盡管一些人還對Spark是什么有所疑惑,或者聲稱它將會淘汰Hadoop(也許它并不會,或者至少不是它非Map-Reduce部分)。如今已經(jīng)有一些公司利用它的能力來構(gòu)建下一代分析應(yīng)用程序。
Stratio就是一個(gè)這樣的公司。擁有著包括BBVA, Just Eat, Santander, SAP, Sony 以及Telefonica在內(nèi)非常有影響力的客戶列表,Stratio聲稱使用Apache Spark認(rèn)證大數(shù)據(jù)平臺的更多項(xiàng)目及客戶端將會比其它任何工具好很多。
MongoDB經(jīng)常被用作Stratio大數(shù)據(jù)平臺中的數(shù)據(jù)庫,因此我非常榮幸能夠得到一個(gè)坐下來與他們連接件開發(fā)團(tuán)隊(duì)以及Stratio負(fù)責(zé)人Steve Galache交談的機(jī)會。我們討論了一些他們近期的項(xiàng)目以及在新一代分析性工作負(fù)載中他們學(xué)習(xí)用于利用Spark的最佳實(shí)踐。
你能先向我們稍微介紹一下你的公司嗎?你們正在嘗試實(shí)現(xiàn)什么?你如何看待在接下來幾年中自身的發(fā)展?
在Stratio,我們研究大數(shù)據(jù)已經(jīng)超過十多年了。幾年前,我們預(yù)見到大數(shù)據(jù)的未來就是快數(shù)據(jù),然后甚至在孵化階段之前就已經(jīng)開始投入Apache Spark的工作了。在2014年早期的時(shí)候,我們就已經(jīng)將第一個(gè)平臺投入市場。而且它目前已經(jīng)在涉及銀行、電子商務(wù)、能源以及電信到其它一些領(lǐng)域的大型企業(yè)中進(jìn)入生產(chǎn)。該平臺支撐著一系列用戶案例,從互聯(lián)網(wǎng)范圍、顧客應(yīng)用到網(wǎng)絡(luò)安全的各個(gè)方面。我們不僅僅是一個(gè)認(rèn)證的Spark發(fā)布者,我們專注于使用快數(shù)據(jù)簡化應(yīng)用的開發(fā)。在Spark之上,我們搭建了用于數(shù)據(jù)攝取、處理以及可視化的應(yīng)用,而并不需要寫任何一行代碼,然后與類似于MongoDB之類的領(lǐng)先非關(guān)系型數(shù)據(jù)庫提供了完整的集成。
請描述你們使用MongoDB和Stratio的項(xiàng)目。你的客戶正在嘗試解決什么問題?MongoDB和Spark如何幫助他們解決這些問題?
一個(gè)非常普遍的場景是:一個(gè)已經(jīng)實(shí)現(xiàn)了復(fù)雜的商務(wù)智能過程用于理解其業(yè)務(wù)的大型企業(yè)。但是,他們目前希望在下一步通過探索新的數(shù)據(jù)源來進(jìn)一步提高他們關(guān)于顧客的理解。該公司基于大量來自服務(wù)日志、瀏覽行為、社交數(shù)據(jù)以及更多渠道的、未開發(fā)的原始數(shù)據(jù)。能夠分析這些數(shù)據(jù),以顧客做出的行為、沒有做出的行為或者他們嘗試做出的行為的形式,幫助企業(yè)加深他們對顧客的理解。最終,這將會幫助他們提高客戶體驗(yàn),也可以預(yù)測新的商業(yè)機(jī)會。這正是Stratio和我們的大數(shù)據(jù)平臺可以幫助的地方。
作為該場景的一個(gè)案例,我們近期實(shí)現(xiàn)了一個(gè)統(tǒng)一實(shí)時(shí)的監(jiān)控平臺,用于全世界31個(gè)國家、51,000,000客戶端的多國銀行操作團(tuán)隊(duì)。該銀行希望保證在線渠道之間的高品質(zhì)服務(wù),因此需要連續(xù)監(jiān)控客戶端活動來檢查服務(wù)響應(yīng)時(shí)間以及識別潛在問題。為了構(gòu)建該應(yīng)用,我們使用了下面的技術(shù):
Apache Flume整合日志數(shù)據(jù)
Apache Spark實(shí)時(shí)處理日志事件
MongoDB持久化日志數(shù)據(jù)、處理事件以及重要性能指標(biāo) (KPI)
整合的重要性能指標(biāo)允許銀行實(shí)現(xiàn)分析客戶端及系統(tǒng)行為的目標(biāo),用于提高客戶體驗(yàn)。收集原始的日志數(shù)據(jù)允許銀行在一個(gè)服務(wù)失敗之后,立即使用由提供了完整可追溯能力、用于識別問題根本原因的分析來重新構(gòu)建用戶會話。
并不是只有金融服務(wù)公司看到了分析日志及社交流的機(jī)遇。我們也已經(jīng)為保險(xiǎn)和電商領(lǐng)域的客戶實(shí)現(xiàn)了類似的項(xiàng)目。
為什么MongoDB對這個(gè)項(xiàng)目來說是非常合適的選擇?
我們需要一個(gè)能夠?yàn)槲覀兲峁╇S時(shí)在線可用性、高性能以及線性可擴(kuò)展性的數(shù)據(jù)庫。此外,我們也需要一個(gè)完全動態(tài)的模式來支撐大容量的、快速改變的、半結(jié)構(gòu)化及非結(jié)構(gòu)化的JSON數(shù)據(jù),它們從各種類型的日志、點(diǎn)擊流以及社交網(wǎng)絡(luò)中獲取。當(dāng)我們評估該項(xiàng)目的需求時(shí),MongoDB是最合適的選擇。
在這種類型的項(xiàng)目之下,我們也發(fā)現(xiàn)數(shù)據(jù)池(來自于多個(gè)應(yīng)用的數(shù)據(jù)中心倉庫)不斷在使用中增長。MongoDB的動態(tài)模式是對這種用戶案例類型而言非常合適的選擇,因?yàn)槲覀儾⒉荒茴A(yù)測我們需要管理的數(shù)據(jù)結(jié)構(gòu)類型。
在你的項(xiàng)目中是否使用了其它的數(shù)據(jù)庫?
為了從多個(gè)應(yīng)用中收集和調(diào)整數(shù)據(jù),我們的大數(shù)據(jù)平臺可以支持一系列數(shù)據(jù)庫和搜索引擎。這些數(shù)據(jù)中的每一個(gè)都有它們各自的優(yōu)勢,其中的一些也可以提供MongoDB的實(shí)用性和性能。
然而,如果一個(gè)應(yīng)用隨著新功能的增加而快速演變,而且正在生成多重結(jié)構(gòu)的數(shù)據(jù),然后MongoDB的動態(tài)模式為我們提供了一個(gè)高度敏捷和靈活的數(shù)據(jù)庫層來進(jìn)行構(gòu)建。
此外,部署一個(gè)應(yīng)用進(jìn)入到開發(fā)需要一個(gè)綜合的、企業(yè)級別的操作平臺,用于安排應(yīng)用流和主動監(jiān)控。MongoDB Cloud Manager為我們提供了這種工具。
你能描述一個(gè)典型的MongoDB和Spark應(yīng)用嗎?
我們已經(jīng)在Stratio大數(shù)據(jù)平臺中將MongoDB部署于不同需求的多個(gè)項(xiàng)目中。在一些情況下,MongoDB與其它數(shù)據(jù)庫一起使用,因此可能會部署在一個(gè)單一的復(fù)制集中。
在其它項(xiàng)目中,MongoDB是一個(gè)多帶帶的數(shù)據(jù)源,經(jīng)常運(yùn)行在一個(gè)分片集群中。
你能分享一些關(guān)于客戶擴(kuò)展他們MongoDB和Stratio Spark基礎(chǔ)設(shè)施的最佳實(shí)踐嗎?
這里有一些對系統(tǒng)性能有重大影響的因素:
基于Spark分析工作流的讀取模式選擇一個(gè)合適的分區(qū)策略。在這里,MongoDB為我們提供了非常大的靈活性,我們可以支持hash以及基于范圍的分片來滿足大范圍的應(yīng)用模式及查詢模式。
確保你已經(jīng)為每個(gè)節(jié)點(diǎn)配置了足夠的內(nèi)存。作為最佳實(shí)踐,MongoDB工作集(即索引以及最頻繁讀取的數(shù)據(jù))應(yīng)該被存儲在RAM中。同樣地,給Spark足夠的內(nèi)存對性能而言非常重要,因?yàn)樗苊饬嗽诘?jì)算的過程中將數(shù)據(jù)序列化到磁盤中。
設(shè)計(jì)你的架構(gòu)以保證即使是在擴(kuò)展集群的情況下,也可以在MongoDB和Spark進(jìn)程之間維護(hù)數(shù)據(jù)的局部性。
圖1:使用MongoDB復(fù)制集用于數(shù)據(jù)局部性并且將分析和操作性工作負(fù)載分離
你的客戶使用Spark和MongoDB處理什么類型的查詢和分析?他們正在使用什么API?
從Spark Streaming到機(jī)器學(xué)習(xí)算法及SparkSQL的所有,隨著用戶案例的變化而變化。Stratio的SparkSQL MongoDB連接件實(shí)現(xiàn)了PrunedFilteredScan API而不是TableScan API。這就意味著,除了MongoDB的查詢映射,我們可以避免掃描整個(gè)集合,而其它數(shù)據(jù)庫并不會出現(xiàn)這種情況。
對于MongoDB和Spark之間的SQL集成,Stratio大數(shù)據(jù)平臺提供了一個(gè)實(shí)現(xiàn)了Spark 數(shù)據(jù)框架API的SparkSQL數(shù)據(jù)源。該連接件,全部是由Scala語言實(shí)現(xiàn)的,目前支持Spark 1.3 (目前已經(jīng)被更新到了Spark 1.4,幾周之前發(fā)布)以及MongoDB 3.0。為什么選擇該實(shí)現(xiàn)版本呢?因?yàn)槌耸褂肧QL語法為復(fù)雜分析提供更高等級的抽象之外,它允許能夠?qū)崿F(xiàn)Spark相同API不同數(shù)據(jù)源集合的集成。
一旦數(shù)據(jù)存入MongoDB,我們提供一個(gè)ODBC/JDBC連接件,用于與其它類似于Tableau和QlikView之類的任何商務(wù)智能工具。我們也使用了連接件與我們自己定制的數(shù)據(jù)可視化工具集成,用于創(chuàng)建儀表盤和報(bào)表。
圖2:Stratio數(shù)據(jù)可視化-創(chuàng)建報(bào)告、儀表盤以及微型站點(diǎn)
你的客戶是如何衡量使用MongoDB及Stratio大數(shù)據(jù)平臺的影響?
轉(zhuǎn)化為洞察力的時(shí)間以及進(jìn)入市場的時(shí)間都是很重要的維度。MongoDB以及Stratio大數(shù)據(jù)平臺都已經(jīng)進(jìn)行了集成并且處于企業(yè)就緒狀態(tài)。因此,顧客避免浪費(fèi)時(shí)間在安裝、配置及監(jiān)控系統(tǒng)方面。他們可以僅僅是使用新的和有趣的方法開始分析數(shù)據(jù)。
搭建在開源軟件上,運(yùn)行于商業(yè)硬件上,該平臺也會通過專利技術(shù)進(jìn)行極大的成本縮減。
對于那些正在考慮使用Spark開發(fā)下一個(gè)項(xiàng)目的用戶,你有什么建議?
學(xué)習(xí)Scala。Scala是Spark的母語。即使有Java和Python的API,大部分Spark開發(fā)都使用Scala——一個(gè)面向功能及對象的語言。
注意防止數(shù)據(jù)頻繁移動。一個(gè)好的分割策略及RDD緩存使用,以及避免不必要的行為操作,應(yīng)該已經(jīng)足夠?qū)崿F(xiàn)良好的性能。
考慮好序列化策略。如果你知道(或者懷疑)數(shù)據(jù)不能夠完全放到RAM中。你可以使用可用的序列化策略(例如,MEMORY, MEMORY_SER, DISK)進(jìn)行實(shí)驗(yàn),以實(shí)現(xiàn)最佳性能。
應(yīng)用程序的包管理。在部署應(yīng)用時(shí),比較棘手的一類問題與JAR配置及classpath管理相關(guān)。強(qiáng)烈推薦使用一個(gè)良好的插件,用于生成一個(gè)使用傳遞依賴的配置。
Steve和團(tuán)隊(duì)-非常感謝你花時(shí)間與MongoDB和Apache Spark社區(qū)分享你的看法和見解。
想要了解更多關(guān)于使用MongoDB和Apache Spark的信息?閱讀我們新的白皮書:
了解更多關(guān)于MongoDB和Spark的信息
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/18808.html
摘要:插入兩條數(shù)據(jù)建立全文索引需要注意的是這里使用關(guān)鍵詞來代表全文索引,我們在這里就不建立數(shù)據(jù)模型了。全文索引查找表示要在全文索引中查東西。全文索引在工作還是經(jīng)常使用的,比如博客文章的搜索,長文件的關(guān)鍵詞搜索,這些都需要使用全文索引來進(jìn)行。 索引 在認(rèn)識索引的之前我們先建立一張表,并往其中插入200萬條數(shù)據(jù)。 // test.js //生成隨機(jī)數(shù) function GetRandomNum(...
摘要:雙刃劍的學(xué)習(xí)和避坑是一把雙刃劍,它對數(shù)據(jù)結(jié)構(gòu)的要求并不高。第二某些銀行顯示的金額不是實(shí)時(shí)的。第三步創(chuàng)建封裝類的管理類,針對不同的實(shí)體類,需要配置不同的。 雙刃劍MongoDB的學(xué)習(xí)和避坑 MongoDB 是一把雙刃劍,它對數(shù)據(jù)結(jié)構(gòu)的要求并不高。數(shù)據(jù)通過key-value的形式存儲,而value的值可以是字符串,也可以是文檔。所以我們在使用的過程中非常方便。正是這種方便給我們埋下了一顆顆...
摘要:總體介紹在互聯(lián)網(wǎng)金融行業(yè)一百多億其實(shí)也算不上大平臺,也就是二級陣營吧,其實(shí)每次的架構(gòu)升級都是隨著業(yè)務(wù)重大推進(jìn)而伴隨的,在前一代系統(tǒng)架構(gòu)上遇到的問題,業(yè)務(wù)開發(fā)過程中積累一些優(yōu)秀的開發(fā)案例,在下一代系統(tǒng)開發(fā)中就會大力推進(jìn)架構(gòu)升級。 回想起從公司成立敲出的第一行代碼算起到現(xiàn)在也快三年了,平臺的技術(shù)架構(gòu),技術(shù)體系也算是經(jīng)歷了四次比較重大的升級轉(zhuǎn)化(目前第四代架構(gòu)體系正在進(jìn)行中),臨近年底也想抽...
摘要:總體介紹在互聯(lián)網(wǎng)金融行業(yè)一百多億其實(shí)也算不上大平臺,也就是二級陣營吧,其實(shí)每次的架構(gòu)升級都是隨著業(yè)務(wù)重大推進(jìn)而伴隨的,在前一代系統(tǒng)架構(gòu)上遇到的問題,業(yè)務(wù)開發(fā)過程中積累一些優(yōu)秀的開發(fā)案例,在下一代系統(tǒng)開發(fā)中就會大力推進(jìn)架構(gòu)升級。 回想起從公司成立敲出的第一行代碼算起到現(xiàn)在也快三年了,平臺的技術(shù)架構(gòu),技術(shù)體系也算是經(jīng)歷了四次比較重大的升級轉(zhuǎn)化(目前第四代架構(gòu)體系正在進(jìn)行中),臨近年底也想抽...
摘要:微軟已經(jīng)很久沒有支持開源社區(qū)了,這也是很多公司不采用的原因之一。當(dāng)然微軟總是致力于提供無的工具簡單的語法和良好的教程,他們最近也意識到,開源可以為提供更多的創(chuàng)新和業(yè)務(wù)。 得益于CTO、CEO和CDO們積極的推動,IT基礎(chǔ)設(shè)施正在向云環(huán)境遷移,底層架構(gòu)師則在熱烈討論圍繞著云原生應(yīng)用的SaaS、PaaS和微服務(wù)架構(gòu),而開發(fā)者們正在大顯身手,努力探索云計(jì)算的魔盒,找出什么是對業(yè)務(wù)有價(jià)值的,什...
閱讀 1440·2021-11-24 09:39
閱讀 1413·2021-11-04 16:12
閱讀 2779·2021-09-24 09:47
閱讀 3399·2021-09-01 10:50
閱讀 1538·2019-08-30 15:55
閱讀 1483·2019-08-30 15:43
閱讀 701·2019-08-30 11:08
閱讀 3638·2019-08-23 18:33