手把手教你設(shè)計大數(shù)據(jù)流水線
在數(shù)據(jù)架構(gòu)中,數(shù)據(jù)流水線一般以數(shù)據(jù)為起點,以洞見為終點。如何從起點到終點,取決于一系列的因素。圖1展示了一個數(shù)據(jù)架構(gòu)下的數(shù)據(jù)流水線。
圖1 大數(shù)據(jù)架構(gòu)設(shè)計中的數(shù)據(jù)流水線
如圖1所示,大數(shù)據(jù)流水線的標(biāo)準(zhǔn)工作流程包括以下步驟:
1)通過合適的工具收集數(shù)據(jù)(攝取)。
2)持久化存儲數(shù)據(jù)。
3)數(shù)據(jù)處理或分析。從存儲中獲取數(shù)據(jù),對其進行操作,然后將處理后的數(shù)據(jù)再次存儲。
4)數(shù)據(jù)被其他處理/分析工具使用,或者被同一工具再次處理,從數(shù)據(jù)中獲得進一步的結(jié)果。
5)為了使結(jié)果對業(yè)務(wù)用戶有用,使用商業(yè)智能(BI)工具將結(jié)果可視化,或者將結(jié)果輸入機器學(xué)習(xí)算法中進行預(yù)測。
6)一旦將合理的結(jié)果呈現(xiàn)給用戶,這就為他們提供了對數(shù)據(jù)的洞見,然后他們可以采用這些數(shù)據(jù)進行進一步的業(yè)務(wù)決策。
你在流水線中部署的工具決定了獲得結(jié)果的時間,也就是從數(shù)據(jù)被創(chuàng)建到能從中獲得洞見之間的延遲。在考慮延遲的同時,設(shè)計數(shù)據(jù)架構(gòu)的最佳方法是確定如何平衡吞吐量與成本,因為更高的性能和隨之而來的低延遲通常會導(dǎo)致更高的成本。
大數(shù)據(jù)處理流水線設(shè)計
許多大數(shù)據(jù)架構(gòu)所犯的關(guān)鍵性錯誤之一是,試圖用一個工具包辦數(shù)據(jù)流水線的多個階段的數(shù)據(jù)處理。用一個服務(wù)器機群來端到端地處理從數(shù)據(jù)存儲、轉(zhuǎn)換到數(shù)據(jù)可視化的整個流水線可能是最簡單,但它也是最容易發(fā)生故障的。這種緊耦合的大數(shù)據(jù)架構(gòu)通常不能根據(jù)你的需求提供吞吐量和成本的最佳平衡。
建議數(shù)據(jù)架構(gòu)師對流水線進行解耦,特別是將存儲和處理分為多個階段,這樣做有很多好處,包括提高容錯能力。例如,如果在第二輪處理中出了問題,或者專門用于處理該任務(wù)的硬件出現(xiàn)故障,不必從流水線的起點重新開始,系統(tǒng)可以從第二個存儲階段恢復(fù)。將存儲與各個處理層解耦,使你有能力對多個數(shù)據(jù)存儲進行讀寫。
圖2說明了設(shè)計大數(shù)據(jù)架構(gòu)流水線時需要考慮的各種工具和流程。
為大數(shù)據(jù)架構(gòu)進行工具選型時,應(yīng)該考慮以下幾點:
- 數(shù)據(jù)結(jié)構(gòu)。
- 最大可接受的延遲。
- 最低可接受的吞吐量。
- 系統(tǒng)終端用戶的典型訪問模式。
圖2 大數(shù)據(jù)架構(gòu)設(shè)計中的工具與流程
數(shù)據(jù)結(jié)構(gòu)會影響數(shù)據(jù)處理工具以及存儲位置的選擇。數(shù)據(jù)的順序及要存儲和檢索的數(shù)據(jù)對象的大小也是必不可少要考慮的因素。獲得結(jié)果的時間取決于解決方案如何權(quán)衡延遲、吞吐量和成本。
用戶訪問模式是另一個需要考慮的重要因素。有些作業(yè)需要定期快速連接許多相關(guān)的表,有些作業(yè)則需要每天或按更低頻率使用存儲的數(shù)據(jù)。有些作業(yè)需要比較來自各種數(shù)據(jù)源的數(shù)據(jù),而有些作業(yè)只需要從一個非結(jié)構(gòu)化表中提取數(shù)據(jù)。了解終端用戶最常使用數(shù)據(jù)的方式將有助于確定大數(shù)據(jù)架構(gòu)的廣度和深度。接下來,我們將更加深入地探討大數(shù)據(jù)架構(gòu)中的每個流程和涉及的工具。
本文摘編自《解決方案架構(gòu)師修煉之道》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111694441)轉(zhuǎn)載請保留文章出處。