可能很多用戶還不知道,咱們上個月中旬就已經對外發布了離線數據分析功能。用戶能夠用它來作什麼,它適用於哪些應用場景,有沒有應用實例?若要回答這些問題,首先讓咱們看看部分用戶曾經向咱們提出過的一些痛點或需求。爲了對用戶數據保密,後面提到的應用名字與數據均爲虛構。html
相信上面的例子對不少用戶來說都不陌生,它揭示的痛點無非是大量的數據沒法經過便捷的手段進行分析。考慮到用戶的需求,咱們開發了支持 SQL-like 查詢的離線數據分析服務。用戶要作的不過是按照咱們的 離線數據分析使用指南 開啓離線數據分析服務,輸入合法的 SQL 語句便可分析數據。順便說一下,這個服務後端核心組件爲 Spark SQL 與 Parquet。ios
接下來,就以咱們的工單系統爲例子,介紹如何利用離線數據分析服務來解決咱們平常工做中遇到的一些問題。固然,爲了更好地瞭解工單系統內部的結構,你能夠訪問 這裏 的源代碼。git
首先讓咱們看看整個界面:github
接下來就讓咱們針對一些統計指標分析工單系統數據:sql
統計不一樣平臺類型(type)的工單數量,並按大小排序數據庫
select count(*) as count
, type from Ticket where type is not null group by type order by count
descapache
結果如圖所示(若是圖中文字不夠清晰,請點擊查看大圖):後端
統計每一個工單(Ticket)各有多少條回覆(Thread),並按回複數大小排序網絡
select Ticket.objectId, Ticket.title, count(Thread.content) as count
from Ticket inner join Thread where Ticket.objectId=Thread.ticket.objectId group by Thread.content, Ticket.objectId, Ticket.title order by count
descapp
結果如圖所示:
若想知曉 iOS 平臺的每條工單各有多少條回覆,只需把上面的 SQL 語句作簡單修改:
select Ticket.objectId, Ticket.title, count(Thread.content) as `count` from Ticket inner join Thread where Ticket.objectId=Thread.ticket.objectId and Ticket.type='ios' group by Thread.content, Ticket.objectId, Ticket.title order by `count` desc
注:slackName 其實就是這個工程師的用戶名,由於咱們還使用 Slack 來實時接收消息。
select count(distinct Ticket.objectId) as `count`, Admin.slackName from Ticket inner join Thread inner join Admin where Thread.ticket.objectId = Ticket.objectId and Admin.cid = Thread.cid and Admin.slackName is not null and unix_timestamp(Ticket.createdAt) > unix_timestamp('2014-12-01T00:00:00.000Z') group by Admin.slackName order by `count` desc
結果如圖所示:
select count(distinct Thread.objectId) as count
, Admin.slackName from Ticket inner join Thread inner join Admin where Thread.ticket.objectId = Ticket.objectId and Admin.cid = Thread.cid and Admin.slackName is not null group by Admin.slackName order by count
desc
結果如圖所示:
substr(createdAt, 1, 10) 用來獲取回覆的日期(yyyy-MM-dd)select count(*) as count
, substr(createdAt, 1, 10) as date from Thread group by substr(createdAt, 1, 10) order by date desc
結果如圖所示:
考慮到本文篇幅有限,就再也不列舉其餘查詢示例。若是您在使用離線數據分析服務的過程當中遇到各類各樣的問題,均可以經過工單或者郵件向咱們反饋,咱們會及時處理相關問題。