回覆列表
-
1 # 極簡生活工作間
-
2 # 啊窩額
1.整體架構
通常情況下,一個常見的資料平臺,整個資料處理的過程可以分為以下幾個步驟:
2.資料採集子系統:
資料採集子系統的話一共是三類:採集前端作業系統還有後端日誌和業務資料;
3.資料接入子系統:
不管是用什麼方式辦法採集的,但是資料都是透過HTTP API傳送給系統的。
4.資料模型:
5.資料匯入與儲存:
6.資料查詢子系統:
也就是接受客戶透過UI介面或者API發起的查詢請求,webserver並不做其他的處理,而是將這些查詢的請求直接發給QueryEngine的模組,模組把查詢請求翻譯成SQL並且在Impala中發起查詢。
7.元資料與監控:
儲存元資料的有很多比如Mysql還有Zookeeper來儲存,還有Schema唯獨字典等等資訊 ,還需要查詢快取的工具Redis;
8.資料預測:
以上就是十億的資料如何做到秒查,查詢之後會對使用者分析;大資料最後我們都會找到使用者行為進行分類,打標籤等等。根據使用者的行為預測將來某個其他行為的機率。
-
3 # 馬拉愛跑
if(固定查詢)
這樣最簡單,按SQL對資料庫或者模型做最佳化
但缺陷是不靈活,需求一變就要重新設計
else
把分析用到的欄位放在一張表上,這叫逆規範化,減少對CPU和IO的消耗,也是最便宜的
最後想辦法更換資料庫,比如ClickHouse,比Oracle快至少一個量級,聽說未來是基於GPU的資料庫,還能提高一個量級
以上說的都是單節點的體系架構,你要是有錢買100個節點搞平行計算,方法還有更多
一是靠硬體,這個成本較高。
二是大資料框架技術,這個有一定學習曲線。
三設計思路,回覆結果要提前生成,儲存在某處。要想提前生成的回覆保證一定的時效性,就要有後臺一直不斷的更新回覆。應該還是大資料框架的基本思路吧。