今天起牀刷牙時腦子忽然冒出來,雖然如今不搞這塊但好的東西應該記錄下來算法
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"); |
Mr 算法因爲其特性,決定他關聯分析不了,全部出現父任務設計
以數據驅動工做方式比邏輯驅動方式更直觀,但二者相結合效果更佳.
於2015-6-15 完