回憶下演算法的幾個特徵:
有窮性(finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
確切性(definiteness)
演算法的每一步驟必須有確切的定義;
輸入項(input)
乙個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
輸出項(output)
乙個演算法有乙個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
可行性(effectiveness)
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之為有效性)。
作為乙個系統,顯然類似
輸入/輸出
可以理解為業務方需求:他們給我們怎樣的資料或者接入系統,我們應當如何處理後輸出給他們
系統要是可行的/確定的,即是能夠滿足需求的,可能要依賴其它系統,但是一定是要滿足輸入輸出的;在此基礎上去追求穩定性
,安全性
,可靠性
等等
如下圖,反映了我們的資料處理服務中間層系統
kafka實時流或hive表 通過druid
集群形成druid datasource;或者是外部直接的注入mysql,es等儲存系統
到資料服務後形成所謂物理表
的概念
(這期間要提供可配置的任務提交,修改,回跑等等一系列任務相關的操作)
物理表還是比較底層的,支援多表的join,字段提取,自定義等等 構成邏輯表
概念, 普通使用者對其可見(即使用者所做的資料分析都是針對這個邏輯表的)
由於不同給使用者,即使是同一表,也會擁有不同的許可權;所以乙個二維表資料是要加上一些行
和列
控制的,形成有特定許可權的模板
概念
模板有了,就可以查了,這保證使用者能看到資料,且是安全
的;
關於資料我們提供兩種返回:一是直接返回給業務方;另一種是直接借助視覺化平台,讓使用者自主分析;而這兩種都是有模板控制許可權的,這裡分別稱為了查詢模板資料模型
,許可權模板資料模型
;兩者都是控制對資料的檢視/獲取許可權的,輸出不一樣,不同的叫法而已
輸入:業務方實時或離線資料,自身儲存
輸出:有許可權控制的可多維分析操作的資料分析系統(直接讓你能對輸入進行分析處理);或者是直接返回有許可權控制的查詢資料(業務方怎麼處理返回的資料是業務方自己的事情)
資料處理方法總結
讀取資料 data pd.read csv print data.head 10 處理資料 1.縮小資料,查詢資料篩選,query相當於sql語句,進行條件查詢 data data.query x 1.0 x 1.25 y 2.5 y 2.75 2.處理時間處理 time value pd.to d...
海量資料處理方法總結
適用範圍 第k大,中位數,不重複或重複的數字 基本原理及要點 因為元素範圍很大,不能利用直接定址表,所以通過多次劃分,逐步確定範圍,然後最後在乙個可以接受的範圍內進行。可以通過多次縮小,雙層只是乙個例子。擴充套件 問題例項 1 2.5億個整數中找出不重複的整數的個數,記憶體空間不足以容納這2.5億個...
海量資料處理分析總結
海量的資料處理問題,對其進行處理是一項艱鉅而複雜的任務。原因有以下幾個方面 一 資料量過大,資料中什麼情況都可能存在。如果說有10條資料,那麼大不了每條去逐一檢查,人為處理,如果有上百條資料,也可以考慮,如果資料上到千萬級別,甚至過億,那不是手工能解決的了,必須通過工具或者程式進行處理,尤其海量的資...