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