標籤:上傳 sql nbsp caller 估算 timestamp com sql語句 統計
公司對客戶開放多個系統,運營人員想要瞭解客戶使用各個系統的情況,在此之前,資料平台團隊已經建設好了統一的Kafka訊息通道。
為了保證架構能夠滿足業務可能的擴張後的效能要求,選用storm來處理各個應用系統上傳到kafka中的埋點資料並在Mysql中匯聚。
埋點資料上報的格式為json,會上報類似如下的資料
{ "account": "001", "accountName": "旺財寶", "subaccount": "001", "subaccountName": "caller001", "timestamp": 1474625187000, "eventType": "phone", "eventTags": [ { "name": "incoming", "value": 1 }, { "name": "missed", "value": 1 }, { "name": "edited", "value": 1 } ]}
最終通過Storm,在Mysql中匯聚成如下格式
| account |
account_name |
subaccount |
subaccount_name |
event_type |
event_tag |
start_time |
end_time |
count |
| 001 |
旺財寶 |
|
|
phone |
incoming |
2016/9/23 18:00:00 |
2016/9/23 18:59:59 |
53 |
| 001 |
旺財寶 |
|
|
phone |
missed |
2016/9/23 18:00:00 |
2016/9/23 18:59:59 |
53
|
通過web封裝sql語句來作各個業務情境的查詢:如某帳號一段時間內某事件發生的次數,所有帳號一段時間的各個事件發生的次數,或者某事件高發的時間段等等。
之前考慮了最終結果存到哪裡:有這樣幾個待選,Redis,HBase,MongoDB,Mysql。經過估算髮現一年的資料量可能不到一千萬,在這個數量級,Mysql可以橫著走了。
基於storm,kafka,mysql的即時統計系統