實時分析設計

今天起牀刷牙時腦子忽然冒出來,雖然如今不搞這塊但好的東西應該記錄下來算法

 

1.瓶頸存在優化數據庫

a) 將分析時間打散緩存

b) 每次數據入庫/數據收集時馬上分析網絡

c) 將變動的結果存儲入庫異步

d) 將結果緩存起來,查詢時優先查緩存 -> 數據倉庫 -> 建立數據實例測試

e) 新統計任務補過去數據時,在CPU 低峯期異步執行優化

f) 將分析過的數據設置已分析標誌,防重複處理 如加版本號匹配過濾spa

 

2.數據來源(不管何種方式,應儘可能給每條數據加分析標誌)設計

a) 推送get

b) 數據庫

c) 本地文件

d) 網絡拉取數據

 

設計流程已有,這只是簡單的處理業務分析,已經知足大多公司業務需求。

我我的是比較傾向配置大於約定的,爲何?

當業務邏輯很複雜時,用配置來簡化邏輯會節省大量的工做量這就是LINUX 設計精髓

甚至能夠作到加一條配置記錄至關加一個功能,連一行代碼都不會寫

任務標識

任務名稱

共享任務標識

父任務標識

異步執行表達式

key邏輯

init邏輯

reduce邏輯

1

測試1

test1

 

 

return getString(source,"date");

return {"date": key,a:0,b:0};

ret.a+=getInt(source,"a");

2

測試2

test1

 

 

return getString(source,"date");

return {"date": key,a:0,b:0};

ret.b+=getInt(source,"b");

3

測試3

test2

test1

 

return getString(source,"date");

return {"date": key,c:0};

ret.c+=getInt(source,"a");
ret.c+=getInt(source,"b");

 

Mr 算法因爲其特性,決定他關聯分析不了,全部出現父任務設計

以數據驅動工做方式比邏輯驅動方式更直觀,但二者相結合效果更佳.

於2015-6-15 完

相關文章
相關標籤/搜索