Pulsar Reporting~Ebay開源基于大數(shù)據(jù)的可視化框架:Pulsar Reporting

Ebay開源基于大數(shù)據(jù)的可視化框架:Pulsar Reporting - ebay的專欄 - 博客頻道 - CSDN.NET http://blog.csdn.net/ebay/article/details/50417403

作者:汪明明,王巧玲

ebay又新添了一個開源項目PulsarReporting – 基于大數(shù)據(jù)的可視化框架

Pulsar作為一個實時和近實時大數(shù)據(jù)分析處理系統(tǒng),包含了Pulsar Pipeline和Pulsar Reporting. 在今年三月, eBay Pulsar團(tuán)隊開源了實時大數(shù)據(jù)分析平臺– Pulsar Pipeline,作為一個實時大數(shù)據(jù)分析平臺,PulsarPipeline可以對海量數(shù)據(jù)進(jìn)行實時收集,處理和分析,從而使eBay海量的數(shù)據(jù)實時分析成為可能;然而Pulsar又面臨一個新的挑戰(zhàn),就是大數(shù)據(jù)的實時可視化。用戶的需求就是Pulsar團(tuán)隊的動力,經(jīng)過半年多的努力,eBay Pulsar團(tuán)隊研發(fā)了一個新的基于大數(shù)據(jù)的可視化框架– Pulsar Reporting


Pulsar Reporting
Pulsar Reporting 是一個基于大數(shù)據(jù)的可擴(kuò)展和可定制的可視化平臺, 用戶通過Pulsar 可以提供更為清晰直觀的數(shù)據(jù)洞察力,將錯綜復(fù)雜的數(shù)據(jù)和數(shù)據(jù)之間的關(guān)系,通過圖形的形式呈現(xiàn)出來,從而給用戶帶來實時的洞察力和有效的決策力。同時Pulsar Reporting 也提供了非常友好的數(shù)據(jù)交互體驗以及從宏觀到微觀的靈活切換,從而為用戶對數(shù)據(jù)進(jìn)行實時多角度分析和可視化成為可能。

主要特點

? 實時數(shù)據(jù)可視化 – 基于實時數(shù)據(jù)生成報表,并支持定期刷新
? 可視化報表編輯器 – 通過可視化界面生成自定義報表,且無需任何編程
? 豐富的圖形庫 – 可以創(chuàng)建各種圖形報表:線圖,餅圖,柱狀圖,趨勢圖等
? Reporting API支持– 支持標(biāo)準(zhǔn)化SQL腳本和結(jié)構(gòu)化JSON格式
? 動態(tài)數(shù)據(jù)源管理 – 支持‘熱插拔’增加和刪除數(shù)據(jù)源
? 基于Angular JS的UI框架 – 易于增加和擴(kuò)展現(xiàn)有的圖形庫
? 基于BootStrap的響應(yīng)式設(shè)計 – 可以支持不同的終端設(shè)備,如手機(jī),平板等

使用場景
Pulsar Reporting框架作為Pulsar生態(tài)系統(tǒng)的一個部分,使得Pulsar可以提供一個端到端的實時大數(shù)據(jù)分析解決方案,包括從后端的數(shù)據(jù)收集,數(shù)據(jù)流處理分析到前端的數(shù)據(jù)實時展現(xiàn)。Pulsar Pipeline具有每秒百萬級流量的處理能力,而數(shù)據(jù)可視化則是最好的途徑去直觀且有效得展現(xiàn)大數(shù)據(jù)的魅力。然而基于大數(shù)據(jù)進(jìn)行實時分析并進(jìn)一步為決策者提供有用的數(shù)據(jù)報表并非一件易事,Puslar Reporting正好解決這方面的困擾;它允許用戶通過Pulsar Reporting簡單便捷的界面來制定他們所需的報表而無需考慮后端復(fù)雜的數(shù)據(jù)處理和前段的界面展現(xiàn)的問題;另一方面,Reporting強(qiáng)大的API,允許開發(fā)人員自由得擴(kuò)展現(xiàn)有的數(shù)據(jù)報表,從而定制自己特色的報表。

體系架構(gòu)
在Pulsar Reporting,來自Pulsar Pipeline的原數(shù)據(jù)和session數(shù)據(jù),通過Pulsar Kafka通道中指定的topics流入到Kafka集群,然后再通過Kafka topics分別注入到Druid的原數(shù)據(jù)和Session數(shù)據(jù)表中,而數(shù)據(jù)導(dǎo)入Druid之前,數(shù)據(jù)預(yù)先經(jīng)過秒級粒度的聚合,從而保證在可視化階段能達(dá)到實時秒級的響應(yīng)。而且在Pulsar Reporting中,我們也支持Reporting API – 一組抽象的數(shù)據(jù)分析和查詢接口,用戶可以通過調(diào)用相應(yīng)的接口來獲取處理過的原數(shù)據(jù)和Session數(shù)據(jù),并生成不同維度的報表。圖中紅色部分就是Pulsar Reporting的主要功能模塊。


案例分析
? 作為實時大數(shù)據(jù)處理可視化平臺,Pulsar Reporting提供了豐富的API來支持對網(wǎng)站性能的分析需求
a) 網(wǎng)站活躍用戶分析:現(xiàn)在以網(wǎng)站活躍用戶分析為例,通過基于SQL接口,分析指定時間內(nèi)基于流量來源(Traffic Source)維度的網(wǎng)站活躍用戶指標(biāo);包括基于指定流量來源(Traffic Source)維度的新用戶比率(New Session Rate), 用戶瀏覽的總頁面數(shù)(Total Pages),總活躍用戶數(shù)(Total Sessions)以及總活躍用戶停留時間(Total Sesssion Duration). 以下是實現(xiàn)細(xì)節(jié),僅供參考。

Endpoint: http://<API_Server>/prapi/v2/sql
Method: POST
Body: {"sql" : "SELECT (count(session) - sum(retvisitor)) * 1.0 / count(session) newSessionRate, sum(sessionDuration) * 1000 totalSessionDurations, count(session) sessions, sum(sessionDuration) totalSessions, sum(totalpagect) totalPages, country, trafficSource FROM pulsar_session WHERE site=0 and country='usa' GROUP BY country, trafficSource ORDER BY sum(totalpagect) ASC limit 20",
"intervals": "2015-11-11 03:00:32/2015-11-18 01:00:32",
"granularity": "day"}

返回結(jié)果:
[
{
"timestamp": "2015-11-11 03:00:32",
"result":
{
"sessions": 28465,
"trafficsource": "Social Media",
"newsessionrate": 0.7841,
"totalpages": 70911,
"totalsessions": 419763,
"totalsessiondurations": 419747000,
"country": "usa"
}
},
{
"timestamp": "2015-11-11 03:00:32",
"result":
{
"sessions": 40,
"trafficsource": "Paid Campaign",
"newsessionrate": 0.9840,
"totalpages": 51,
"totalsessions": 2631,
"totalsessiondurations": 226000,
"country": "usa"
}
},
……
]

a) 網(wǎng)站瀏覽量分析:作為商業(yè)網(wǎng)站,網(wǎng)站瀏覽量是一個關(guān)鍵的指標(biāo)來衡量一個網(wǎng)站的活躍程度,接下來介紹如何通過結(jié)構(gòu)化的Json接口來獲取基于流量來源(Traffic Source)分類的網(wǎng)站瀏覽量的分析。以下是實現(xiàn)細(xì)節(jié),僅供參考。
Endpoint: http://<API_Server>/prapi/v2/realtime
Method: POST
Body: {"metrics" : [ "pageviews" ], "dimensions" : [ "trafficsource" ], "filter" : "site=0" }

返回結(jié)果:
[
{
"timestamp": "2015-11-17 19:38:20",
"result":
{
"pageviews": 272393,
"totaldwell": 670162705,
"trafficsource": "Direct"
}
},
{
"timestamp": "2015-11-17 19:38:20",
"result":
{
"pageviews": 186139,
"totaldwell": 781712501,
"trafficsource": "Referral"
}
},
……
]

? Pulsar Reporting也提供了可視化編輯工具來幫助用戶快速生成基于特定需求的分析報表集。用戶可以通過Reports Creator來訂制自己的報表集;在可訂制報表頁面,用戶首先創(chuàng)建自己的報表集:


在創(chuàng)建的報表集內(nèi),根據(jù)業(yè)務(wù)需求制定報表:



最后通過調(diào)整報表的布局,就能看到下面類似的報表集了。

后續(xù)計劃
繼往開來,Pulsarteam將繼續(xù)完善Pulsar Reporting,以下是我們未完成的功能:
1. Pathing圖和漏斗圖
2. 報表輸出管理
3. 更多數(shù)據(jù)源支持

同時我們也期待有更多的項目能采用我們Pulsar Reporting去解決大數(shù)據(jù)的可視化問題,并熱切期待您的貢獻(xiàn)。了解更多Pulsar Reporting,請訪問http://gopulsar.io/html/reporting.html。

關(guān)于作者
? 汪明明,PulsarReporting Commiter和架構(gòu)師
? 王巧玲,PulsarReporting 產(chǎn)品經(jīng)理
Pulsar團(tuán)隊

參考資料
? Pulsar Reporting技術(shù)文檔: http://gopulsar.io/html/reporting.html
? Pulsar Reporting源碼: https://github.com/pulsarIO/pulsar-reporting-ui
? Pulsar技術(shù)文檔: http://gopulsar.io/
? Pulsar Pipeline技術(shù)文檔: http://gopulsar.io/html/pipeline.html
? eBay techblog: http://www.ebaytechblog.com/2015/11/05/announcing-pulsar-reporting-near-real-time-metrics-reporting-framework/
? Druid:http://druid.io/
? Kafka:http://kafka.apache.org/
? JSON:http://www.json.org/
? Hadoophttp://hadoop.apache.org/
? AngularJShttps://angularjs.org/
? AngularBootstrap: https://angular-ui.github.io/bootstrap/
? Boostrap:http://getbootstrap.com/
? jQuery: https://jquery.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容