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